pkg syncbase, const DeleteChange ChangeType
pkg syncbase, const PutChange ChangeType
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 (*InvalidScanStream) Advance() bool
pkg syncbase, method (*InvalidScanStream) Cancel()
pkg syncbase, method (*InvalidScanStream) Err() error
pkg syncbase, method (*InvalidScanStream) Key() string
pkg syncbase, method (*InvalidScanStream) Value(interface{}) 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, wire.Id, string, watch.ResumeMarker) (WatchStream, error)
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 InvalidScanStream struct
pkg syncbase, type InvalidScanStream struct, Error error
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
