# Packages

Package msg contains: - the definition of PROTOBUF structures and gRPC service, - helpers for mapping between PROTOBUF structures & the datasync_api.go.

# Functions

AggregateDone can be reused to avoid repetitive code that triggers a slice of events and waits until it is finished.
NewChange creates a new instance of Change.
NewChangeBytes creates a new instance of NewChangeBytes.
NewDoneChannel creates a new instance of DoneChannel.
NewKeyVal creates a new instance of KeyVal.
NewKeyValBytes creates a new instance of KeyValBytes.
NewKVIterator creates a new instance of KVIterator.
NewLatestRev is a constructor.
NewRegistry creates reusable registry of subscriptions for a particular datasync plugin.
NewResyncEventDB creates a new instance of ResyncEventDB using the given map of iterators.

# Variables

PropagateChangesTimeout defines timeout used during change propagation after which it will return an error.

# Structs

Adapter implements datasync.TransportAdapter but allows the Watch/ Put functions to be optionally implemented.
Change represents a single Key-value pair plus changeType.
ChangeEvent is a simple structure that implements interface datasync.ChangeEvent.
ChangeResp represents single change in the change event.
DoneCallback is a small reusable part that is embedded to other events using composition.
DoneChannel is a small reusable part that is embedded to other events using composition.
KeyVal represents a single key-value pair.
KeyValBytes represents a single key-value pair.
KVIterator is a simple in memory implementation of data.Iterator.
PrevRevisions maintains the map of keys & values with revision.
Registry of subscriptions and latest revisions.
ResyncEventDB implements the interface datasync.ResyncEvent (see comments in there).
Subscription represents single subscription for Registry.
WatchDataReg implements interface datasync.WatchDataRegistration.