Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrCanceled = errors.New("canceled")
View Source
var LockerTypes = []string{
"consul",
"k8s",
"redis",
}
View Source
var Lockers = map[string]Initializer{}
Functions ¶
func DecodeConfig ¶
func DecodeConfig(src, dst interface{}) error
func Register ¶
func Register(name string, initFn Initializer)
Types ¶
type Initializer ¶
type Initializer func() Locker
type Locker ¶
type Locker interface {
// Init initialises the locker data, with the given configuration read from flags/files.
Init(context.Context, map[string]interface{}, ...Option) error
// Stop is called when the locker instance is called. It should unlock all acquired locks.
Stop() error
SetLogger(*log.Logger)
// Lock acquires a lock on given key.
Lock(context.Context, string, []byte) (bool, error)
// KeepLock maintains the lock on the target.
KeepLock(context.Context, string) (chan struct{}, chan error)
// IsLocked replys if the target given as string is currently locked or not.
IsLocked(context.Context, string) (bool, error)
// Unlock unlocks the target log.
Unlock(context.Context, string) error
// Register registers this instance in the registry. It must also maintain the registration (called in a goroutine from the main). ServiceRegistration.ID contains the ID of the service to register.
Register(context.Context, *ServiceRegistration) error
// Deregister removes this instance from the registry. This looks like it's not called.
Deregister(string) error
// GetServices must return the gnmic instances.
GetServices(ctx context.Context, serviceName string, tags []string) ([]*Service, error)
// WatchServices must push all existing discovered gnmic instances
// into the provided channel.
WatchServices(ctx context.Context, serviceName string, tags []string, ch chan<- []*Service, dur time.Duration) error
// List returns all locks that start with prefix string,
// indexed by the lock name. Could be target locks or leader lock. It must return a map of matching keys to instance name.
List(ctx context.Context, prefix string) (map[string]string, error)
}
Click to show internal directories.
Click to hide internal directories.