Documentation ¶
Overview ¶
Package kvproto provides a wrapper that simplifies the storing and retrieving of proto-modelled data into/from a key-value data store.
Index ¶
- func NewWatchResp(serializer keyval.Serializer, resp keyval.BytesWatchResp) datasync.ProtoWatchResp
- type ProtoWrapper
- func (db *ProtoWrapper) Close() error
- func (db *ProtoWrapper) Delete(key string, opts ...datasync.DelOption) (existed bool, err error)
- func (db *ProtoWrapper) GetValue(key string, reqObj proto.Message) (found bool, revision int64, err error)
- func (db *ProtoWrapper) ListKeys(prefix string) (keyval.ProtoKeyIterator, error)
- func (db *ProtoWrapper) ListValues(key string) (keyval.ProtoKeyValIterator, error)
- func (db *ProtoWrapper) NewBroker(prefix string) keyval.ProtoBroker
- func (db *ProtoWrapper) NewTxn() keyval.ProtoTxn
- func (db *ProtoWrapper) NewWatcher(prefix string) keyval.ProtoWatcher
- func (db *ProtoWrapper) Put(key string, value proto.Message, opts ...datasync.PutOption) error
- func (db *ProtoWrapper) Watch(resp func(datasync.ProtoWatchResp), closeChan chan string, keys ...string) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewWatchResp ¶
func NewWatchResp(serializer keyval.Serializer, resp keyval.BytesWatchResp) datasync.ProtoWatchResp
NewWatchResp initializes proto watch response from raw WatchResponse <resp>.
Types ¶
type ProtoWrapper ¶
type ProtoWrapper struct {
// contains filtered or unexported fields
}
ProtoWrapper is a decorator which allows to read/write proto file modelled data. It marshals/unmarshals go structures to slice of bytes and vice versa behind the scenes.
func NewProtoWrapper ¶
func NewProtoWrapper(db keyval.CoreBrokerWatcher, serializer ...keyval.Serializer) *ProtoWrapper
NewProtoWrapper initializes proto decorator. The default serializer is used - SerializerProto.
func NewProtoWrapperWithSerializer ¶
func NewProtoWrapperWithSerializer(db keyval.CoreBrokerWatcher, serializer keyval.Serializer) *ProtoWrapper
NewProtoWrapperWithSerializer initializes proto decorator with the specified serializer.
func (*ProtoWrapper) Close ¶
func (db *ProtoWrapper) Close() error
Close closes underlying connection to ETCD. Beware: if the connection is shared among multiple instances, this might unintentionally cancel the connection for them.
func (*ProtoWrapper) GetValue ¶
func (db *ProtoWrapper) GetValue(key string, reqObj proto.Message) (found bool, revision int64, err error)
GetValue retrieves one key-value item from the datastore. The item is identified by the provided <key>.
If the item was found, its value is unmarshaled and placed in the <reqObj> message buffer and the function returns <found> as *true*. If the object was not found, the function returns <found> as *false*. Function also returns the revision of the latest modification. Any encountered error is returned in <err>.
func (*ProtoWrapper) ListKeys ¶
func (db *ProtoWrapper) ListKeys(prefix string) (keyval.ProtoKeyIterator, error)
ListKeys returns an iterator that allows to traverse all keys that share the given <prefix> from data store.
func (*ProtoWrapper) ListValues ¶
func (db *ProtoWrapper) ListValues(key string) (keyval.ProtoKeyValIterator, error)
ListValues retrieves an iterator for elements stored under the provided <key>.
func (*ProtoWrapper) NewBroker ¶
func (db *ProtoWrapper) NewBroker(prefix string) keyval.ProtoBroker
NewBroker creates a new instance of the proxy that shares the underlying connection and allows to read/edit key-value pairs.
func (*ProtoWrapper) NewTxn ¶
func (db *ProtoWrapper) NewTxn() keyval.ProtoTxn
NewTxn creates a new Data Broker transaction. A transaction can hold multiple operations that are all committed to the data store together. After a transaction has been created, one or more operations (put or delete) can be added to the transaction before it is committed.
func (*ProtoWrapper) NewWatcher ¶
func (db *ProtoWrapper) NewWatcher(prefix string) keyval.ProtoWatcher
NewWatcher creates a new instance of the proxy that shares the underlying connection and allows subscribing for watching of the changes.
func (*ProtoWrapper) Put ¶
Put writes the provided key-value item into the data store. It returns an error if the item could not be written, nil otherwise.
func (*ProtoWrapper) Watch ¶
func (db *ProtoWrapper) Watch(resp func(datasync.ProtoWatchResp), closeChan chan string, keys ...string) error
Watch subscribes for changes in datastore associated with any of the <keys>. Callback <resp> is used for delivery of watch events. Channel <closeChan> is used to close key-related goroutines Any encountered error is returned as well