watcher

package
v2.5.1+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 6, 2019 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Aggregator

type Aggregator struct {
	infra.PluginDeps

	Resync   *resync.Plugin
	Local    *syncbase.Registry
	Watchers []datasync.KeyValProtoWatcher
	// contains filtered or unexported fields
}

Aggregator is an adapter that allows multiple watchers (KeyValProtoWatcher) to be aggregated in one. Watch request is delegated to all of them.

func NewPlugin

func NewPlugin(opts ...Option) *Aggregator

NewPlugin creates a new Plugin with the provides Options

func (*Aggregator) Init

func (p *Aggregator) Init() error

func (*Aggregator) Watch

func (p *Aggregator) Watch(
	resyncName string,
	changeChan chan datasync.ChangeEvent,
	resyncChan chan datasync.ResyncEvent,
	keyPrefixes ...string,
) (datasync.WatchRegistration, error)

Watch subscribes to every transport available within transport aggregator and also subscribes to localclient (local.Registry). The function implements KeyValProtoWatcher.Watch().

type Option

type Option func(*Aggregator)

Option is a function that acts on a Plugin to inject Dependencies or configuration

func UseWatchers

func UseWatchers(watchers ...datasync.KeyValProtoWatcher) Option

UseWatchers returns option that sets watchers.

type WatchRegistration

type WatchRegistration struct {
	Registrations []datasync.WatchRegistration
}

WatchRegistration is adapter that allows multiple registrations (WatchRegistration) to be aggregated in one. Close operation is applied collectively to all included registration.

func (*WatchRegistration) Close

func (wa *WatchRegistration) Close() error

Close every registration under the aggregator. This function implements WatchRegistration.Close().

func (*WatchRegistration) Register

func (wa *WatchRegistration) Register(resyncName, keyPrefix string) error

Register new key for all available aggregator objects. Call Register(keyPrefix) on specific registration to add the key from that registration only

func (*WatchRegistration) Unregister

func (wa *WatchRegistration) Unregister(keyPrefix string) error

Unregister closed registration of specific key under all available aggregator objects. Call Unregister(keyPrefix) on specific registration to remove the key from that registration only

Source Files

  • aggregator.go

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL