Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrIteratorDone may be thrown by list iterators to stop iteration. ErrIteratorDone = errors.New("accord: iterator done") // ErrInvalidHandle returned by the backend if the handle cannot be used or has expired. ErrInvalidHandle = errors.New("accord: invalid handle") )
Functions ¶
This section is empty.
Types ¶
type Backend ¶
type Backend interface {
// Acquire acquires a new named resource handle within namespace until exp time.
Acquire(ctx context.Context, owner, namespace, name string, exp time.Time, metadata map[string]string) (*HandleData, error)
// Renew renews a handle with a specific exp time and returns the updated handle.
Renew(ctx context.Context, owner string, handleID uuid.UUID, exp time.Time, metadata map[string]string) error
// Done marks the resource as done.
Done(ctx context.Context, owner string, handleID uuid.UUID, metadata map[string]string) error
// Get retrieves handle data by ID.
Get(ctx context.Context, handleID uuid.UUID) (*HandleData, error)
// List iterates over done resources within a namespace
List(ctx context.Context, req *rpc.ListRequest, iter Iterator) error
// Ping pings the backend connection.
Ping() error
// Close closes the backend connection.
Close() error
}
Backend represents a storage/persistent backend for handle information.
type HandleData ¶
type HandleData struct {
ID uuid.UUID // a unique identifier
Namespace string // the namespace of the handle
Name string // the name of the handle
Owner string // last/current owner identifier
ExpTime time.Time // expiration time
DoneTime time.Time // done time
NumAcquired int // number of times acquired
Metadata map[string]string // custom metadata
}
HandleData is retrieved by the backend.
func (*HandleData) IsDone ¶
func (h *HandleData) IsDone() bool
IsDone indicates when a resource is marked as done.
func (*HandleData) UpdateMetadata ¶
func (h *HandleData) UpdateMetadata(meta map[string]string)
UpdateMetadata merged metadata.
type Iterator ¶
type Iterator func(*HandleData) error
Iterator function. Return ErrIteratorDone to cancel gracefully.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package direct implements a backend wrapper which allows to connect clients to a backend directly bypassing grpc servers.
|
Package direct implements a backend wrapper which allows to connect clients to a backend directly bypassing grpc servers. |
|
Package mock implements an in-memory mock backend for testing.
|
Package mock implements an in-memory mock backend for testing. |
|
Package postgres implements a postgres-based backend for storing state.
|
Package postgres implements a postgres-based backend for storing state. |
Click to show internal directories.
Click to hide internal directories.