pkg syncbase, const DeleteChange ChangeType
pkg syncbase, const PutChange ChangeType
pkg syncbase, func NewDiscovery(*context.T) (discovery.T, error)
pkg syncbase, func NewService(string) Service
pkg syncbase, func NewValue(*context.T, interface{}) (*Value, error)
pkg syncbase, func Prefix(string) PrefixRange
pkg syncbase, func Range(string, string) RowRange
pkg syncbase, func RunInBatch(*context.T, Database, wire.BatchOptions, func(BatchDatabase) error) error
pkg syncbase, func SingleRow(string) RowRange
pkg syncbase, func ToWatchChange(watch.Change) WatchChange
pkg syncbase, func UUID() string
pkg syncbase, method (*Conflict) VDLRead(vdl.Decoder) error
pkg syncbase, method (*ConflictRow) VDLRead(vdl.Decoder) error
pkg syncbase, method (*ConflictRowSet) VDLRead(vdl.Decoder) error
pkg syncbase, method (*ConflictScanSet) VDLRead(vdl.Decoder) error
pkg syncbase, method (*Discovery) Advertise(*context.T, *discovery.Advertisement, []security.BlessingPattern) (<-chan struct{}, error)
pkg syncbase, method (*Discovery) Scan(*context.T, string) (<-chan discovery.Update, error)
pkg syncbase, method (*Resolution) VDLRead(vdl.Decoder) error
pkg syncbase, method (*ResolvedRow) VDLRead(vdl.Decoder) error
pkg syncbase, method (*Value) Get(interface{}) error
pkg syncbase, method (*Value) VDLRead(vdl.Decoder) error
pkg syncbase, method (*WatchChange) Value(interface{}) error
pkg syncbase, method (Conflict) VDLIsZero() bool
pkg syncbase, method (Conflict) VDLWrite(vdl.Encoder) error
pkg syncbase, method (ConflictRow) VDLIsZero() bool
pkg syncbase, method (ConflictRow) VDLWrite(vdl.Encoder) error
pkg syncbase, method (ConflictRowSet) VDLIsZero() bool
pkg syncbase, method (ConflictRowSet) VDLWrite(vdl.Encoder) error
pkg syncbase, method (ConflictScanSet) VDLIsZero() bool
pkg syncbase, method (ConflictScanSet) VDLWrite(vdl.Encoder) error
pkg syncbase, method (Resolution) VDLIsZero() bool
pkg syncbase, method (Resolution) VDLWrite(vdl.Encoder) error
pkg syncbase, method (ResolvedRow) VDLIsZero() bool
pkg syncbase, method (ResolvedRow) VDLWrite(vdl.Encoder) error
pkg syncbase, method (Value) VDLIsZero() bool
pkg syncbase, method (Value) VDLWrite(vdl.Encoder) error
pkg syncbase, type BatchDatabase interface { Abort, Collection, CollectionForId, Commit, Exec, FullName, GetResumeMarker, Id, ListCollections }
pkg syncbase, type BatchDatabase interface, Abort(*context.T) error
pkg syncbase, type BatchDatabase interface, Collection(*context.T, string) Collection
pkg syncbase, type BatchDatabase interface, CollectionForId(wire.Id) Collection
pkg syncbase, type BatchDatabase interface, Commit(*context.T) error
pkg syncbase, type BatchDatabase interface, Exec(*context.T, string, ...interface{}) ([]string, ResultStream, error)
pkg syncbase, type BatchDatabase interface, FullName() string
pkg syncbase, type BatchDatabase interface, GetResumeMarker(*context.T) (watch.ResumeMarker, error)
pkg syncbase, type BatchDatabase interface, Id() wire.Id
pkg syncbase, type BatchDatabase interface, ListCollections(*context.T) ([]wire.Id, error)
pkg syncbase, type Blob interface { Commit, Delete, Fetch, Get, Keep, Pin, Put, Ref, Size, Unpin }
pkg syncbase, type Blob interface, Commit(*context.T) error
pkg syncbase, type Blob interface, Delete(*context.T) error
pkg syncbase, type Blob interface, Fetch(*context.T, uint64) (BlobStatus, error)
pkg syncbase, type Blob interface, Get(*context.T, int64) (BlobReader, error)
pkg syncbase, type Blob interface, Keep(*context.T, uint64) error
pkg syncbase, type Blob interface, Pin(*context.T) error
pkg syncbase, type Blob interface, Put(*context.T) (BlobWriter, error)
pkg syncbase, type Blob interface, Ref() wire.BlobRef
pkg syncbase, type Blob interface, Size(*context.T) (int64, error)
pkg syncbase, type Blob interface, Unpin(*context.T) error
pkg syncbase, type BlobReader interface { Advance, Cancel, Err, Value }
pkg syncbase, type BlobReader interface, Advance() bool
pkg syncbase, type BlobReader interface, Cancel()
pkg syncbase, type BlobReader interface, Err() error
pkg syncbase, type BlobReader interface, Value() []byte
pkg syncbase, type BlobStatus interface { Advance, Cancel, Err, Value }
pkg syncbase, type BlobStatus interface, Advance() bool
pkg syncbase, type BlobStatus interface, Cancel()
pkg syncbase, type BlobStatus interface, Err() error
pkg syncbase, type BlobStatus interface, Value() wire.BlobFetchStatus
pkg syncbase, type BlobWriter interface { Close, Send }
pkg syncbase, type BlobWriter interface, Close() error
pkg syncbase, type BlobWriter interface, Send([]byte) error
pkg syncbase, type ChangeType uint32
pkg syncbase, type Collection interface { Create, Delete, DeleteRange, Destroy, Exists, FullName, Get, GetPermissions, Id, Put, Row, Scan, SetPermissions }
pkg syncbase, type Collection interface, Create(*context.T, access.Permissions) error
pkg syncbase, type Collection interface, Delete(*context.T, string) error
pkg syncbase, type Collection interface, DeleteRange(*context.T, RowRange) error
pkg syncbase, type Collection interface, Destroy(*context.T) error
pkg syncbase, type Collection interface, Exists(*context.T) (bool, error)
pkg syncbase, type Collection interface, FullName() string
pkg syncbase, type Collection interface, Get(*context.T, string, interface{}) error
pkg syncbase, type Collection interface, GetPermissions(*context.T) (access.Permissions, error)
pkg syncbase, type Collection interface, Id() wire.Id
pkg syncbase, type Collection interface, Put(*context.T, string, interface{}) error
pkg syncbase, type Collection interface, Row(string) Row
pkg syncbase, type Collection interface, Scan(*context.T, RowRange) ScanStream
pkg syncbase, type Collection interface, SetPermissions(*context.T, access.Permissions) error
pkg syncbase, type Conflict struct
pkg syncbase, type Conflict struct, Batches map[uint64]syncbase.BatchInfo
pkg syncbase, type Conflict struct, ReadSet *ConflictRowSet
pkg syncbase, type Conflict struct, ScanSet *ConflictScanSet
pkg syncbase, type Conflict struct, WriteSet *ConflictRowSet
pkg syncbase, type ConflictResolver interface { OnConflict }
pkg syncbase, type ConflictResolver interface, OnConflict(*context.T, *Conflict) Resolution
pkg syncbase, type ConflictRow struct
pkg syncbase, type ConflictRow struct, AncestorValue Value
pkg syncbase, type ConflictRow struct, BatchIds []uint64
pkg syncbase, type ConflictRow struct, Key string
pkg syncbase, type ConflictRow struct, LocalValue Value
pkg syncbase, type ConflictRow struct, RemoteValue Value
pkg syncbase, type ConflictRowSet struct
pkg syncbase, type ConflictRowSet struct, ByBatch map[uint64][]ConflictRow
pkg syncbase, type ConflictRowSet struct, ByKey map[string]ConflictRow
pkg syncbase, type ConflictScanSet struct
pkg syncbase, type ConflictScanSet struct, ByBatch map[uint64][]syncbase.ScanOp
pkg syncbase, type Database interface, BeginBatch(*context.T, wire.BatchOptions) (BatchDatabase, error)
pkg syncbase, type Database interface, Blob(wire.BlobRef) Blob
pkg syncbase, type Database interface, Close()
pkg syncbase, type Database interface, Collection(*context.T, string) Collection
pkg syncbase, type Database interface, CollectionForId(wire.Id) Collection
pkg syncbase, type Database interface, Create(*context.T, access.Permissions) error
pkg syncbase, type Database interface, CreateBlob(*context.T) (Blob, error)
pkg syncbase, type Database interface, Destroy(*context.T) error
pkg syncbase, type Database interface, EnforceSchema(*context.T) error
pkg syncbase, type Database interface, Exec(*context.T, string, ...interface{}) ([]string, ResultStream, error)
pkg syncbase, type Database interface, Exists(*context.T) (bool, error)
pkg syncbase, type Database interface, FullName() string
pkg syncbase, type Database interface, GetResumeMarker(*context.T) (watch.ResumeMarker, error)
pkg syncbase, type Database interface, Id() wire.Id
pkg syncbase, type Database interface, ListCollections(*context.T) ([]wire.Id, error)
pkg syncbase, type Database interface, ListSyncgroups(*context.T) ([]wire.Id, error)
pkg syncbase, type Database interface, PauseSync(*context.T) error
pkg syncbase, type Database interface, ResumeSync(*context.T) error
pkg syncbase, type Database interface, Syncgroup(*context.T, string) Syncgroup
pkg syncbase, type Database interface, SyncgroupForId(wire.Id) Syncgroup
pkg syncbase, type Database interface, Watch(*context.T, watch.ResumeMarker, []wire.CollectionRowPattern) WatchStream
pkg syncbase, type Database interface, unexported methods
pkg syncbase, type DatabaseHandle interface { Collection, CollectionForId, Exec, FullName, GetResumeMarker, Id, ListCollections }
pkg syncbase, type DatabaseHandle interface, Collection(*context.T, string) Collection
pkg syncbase, type DatabaseHandle interface, CollectionForId(wire.Id) Collection
pkg syncbase, type DatabaseHandle interface, Exec(*context.T, string, ...interface{}) ([]string, ResultStream, error)
pkg syncbase, type DatabaseHandle interface, FullName() string
pkg syncbase, type DatabaseHandle interface, GetResumeMarker(*context.T) (watch.ResumeMarker, error)
pkg syncbase, type DatabaseHandle interface, Id() wire.Id
pkg syncbase, type DatabaseHandle interface, ListCollections(*context.T) ([]wire.Id, error)
pkg syncbase, type Discovery struct
pkg syncbase, type PrefixRange interface { Limit, Prefix, Start }
pkg syncbase, type PrefixRange interface, Limit() string
pkg syncbase, type PrefixRange interface, Prefix() string
pkg syncbase, type PrefixRange interface, Start() string
pkg syncbase, type Resolution struct
pkg syncbase, type Resolution struct, ResultSet map[string]ResolvedRow
pkg syncbase, type ResolvedRow struct
pkg syncbase, type ResolvedRow struct, Key string
pkg syncbase, type ResolvedRow struct, Result *Value
pkg syncbase, type ResultStream interface { Advance, Cancel, Err, Result, ResultCount }
pkg syncbase, type ResultStream interface, Advance() bool
pkg syncbase, type ResultStream interface, Cancel()
pkg syncbase, type ResultStream interface, Err() error
pkg syncbase, type ResultStream interface, Result(int, interface{}) error
pkg syncbase, type ResultStream interface, ResultCount() int
pkg syncbase, type Row interface { Delete, Exists, FullName, Get, Key, Put }
pkg syncbase, type Row interface, Delete(*context.T) error
pkg syncbase, type Row interface, Exists(*context.T) (bool, error)
pkg syncbase, type Row interface, FullName() string
pkg syncbase, type Row interface, Get(*context.T, interface{}) error
pkg syncbase, type Row interface, Key() string
pkg syncbase, type Row interface, Put(*context.T, interface{}) error
pkg syncbase, type RowRange interface { Limit, Start }
pkg syncbase, type RowRange interface, Limit() string
pkg syncbase, type RowRange interface, Start() string
pkg syncbase, type ScanStream interface { Advance, Cancel, Err, Key, Value }
pkg syncbase, type ScanStream interface, Advance() bool
pkg syncbase, type ScanStream interface, Cancel()
pkg syncbase, type ScanStream interface, Err() error
pkg syncbase, type ScanStream interface, Key() string
pkg syncbase, type ScanStream interface, Value(interface{}) error
pkg syncbase, type Schema struct
pkg syncbase, type Schema struct, Metadata wire.SchemaMetadata
pkg syncbase, type Schema struct, Resolver ConflictResolver
pkg syncbase, type Service interface, Database(*context.T, string, *Schema) Database
pkg syncbase, type Service interface, DatabaseForId(wire.Id, *Schema) Database
pkg syncbase, type Service interface, FullName() string
pkg syncbase, type Service interface, ListDatabases(*context.T) ([]wire.Id, error)
pkg syncbase, type Service interface, unexported methods
pkg syncbase, type Stream interface { Advance, Cancel, Err }
pkg syncbase, type Stream interface, Advance() bool
pkg syncbase, type Stream interface, Cancel()
pkg syncbase, type Stream interface, Err() error
pkg syncbase, type Syncgroup interface { Create, Destroy, Eject, GetMembers, GetSpec, Id, Join, Leave, SetSpec }
pkg syncbase, type Syncgroup interface, Create(*context.T, wire.SyncgroupSpec, wire.SyncgroupMemberInfo) error
pkg syncbase, type Syncgroup interface, Destroy(*context.T) error
pkg syncbase, type Syncgroup interface, Eject(*context.T, string) error
pkg syncbase, type Syncgroup interface, GetMembers(*context.T) (map[string]wire.SyncgroupMemberInfo, error)
pkg syncbase, type Syncgroup interface, GetSpec(*context.T) (wire.SyncgroupSpec, string, error)
pkg syncbase, type Syncgroup interface, Id() wire.Id
pkg syncbase, type Syncgroup interface, Join(*context.T, string, []string, wire.SyncgroupMemberInfo) (wire.SyncgroupSpec, error)
pkg syncbase, type Syncgroup interface, Leave(*context.T) error
pkg syncbase, type Syncgroup interface, SetSpec(*context.T, wire.SyncgroupSpec, string) error
pkg syncbase, type Value struct
pkg syncbase, type Value struct, Selection syncbase.ValueSelection
pkg syncbase, type Value struct, State syncbase.ValueState
pkg syncbase, type Value struct, Val *vom.RawBytes
pkg syncbase, type Value struct, WriteTs time.Time
pkg syncbase, type WatchChange struct
pkg syncbase, type WatchChange struct, ChangeType ChangeType
pkg syncbase, type WatchChange struct, Collection wire.Id
pkg syncbase, type WatchChange struct, Continued bool
pkg syncbase, type WatchChange struct, FromSync bool
pkg syncbase, type WatchChange struct, ResumeMarker watch.ResumeMarker
pkg syncbase, type WatchChange struct, Row string
pkg syncbase, type WatchStream interface { Advance, Cancel, Change, Err }
pkg syncbase, type WatchStream interface, Advance() bool
pkg syncbase, type WatchStream interface, Cancel()
pkg syncbase, type WatchStream interface, Change() WatchChange
pkg syncbase, type WatchStream interface, Err() error
