Documentation ¶
Index ¶
- Constants
- type Document
- func (d *Document) ActorID() *time.ActorID
- func (d *Document) ApplyChangePack(pack *change.Pack) error
- func (d *Document) Checkpoint() change.Checkpoint
- func (d *Document) CreateChangePack() *change.Pack
- func (d *Document) GarbageCollect(ticket *time.Ticket) int
- func (d *Document) GarbageLen() int
- func (d *Document) HasLocalChanges() bool
- func (d *Document) InternalDocument() *InternalDocument
- func (d *Document) IsAttached() bool
- func (d *Document) Key() key.Key
- func (d *Document) Marshal() string
- func (d *Document) Root() *proxy.ObjectProxy
- func (d *Document) RootObject() *json.Object
- func (d *Document) SetActor(actor *time.ActorID)
- func (d *Document) SetStatus(status statusType)
- func (d *Document) Update(updater func(root *proxy.ObjectProxy) error, msgAndArgs ...interface{}) error
- type InternalDocument
- func (d *InternalDocument) ActorID() *time.ActorID
- func (d *InternalDocument) ApplyChangePack(pack *change.Pack) error
- func (d *InternalDocument) ApplyChanges(changes ...*change.Change) error
- func (d *InternalDocument) Checkpoint() change.Checkpoint
- func (d *InternalDocument) CreateChangePack() *change.Pack
- func (d *InternalDocument) GarbageCollect(ticket *time.Ticket) int
- func (d *InternalDocument) GarbageLen() int
- func (d *InternalDocument) HasLocalChanges() bool
- func (d *InternalDocument) IsAttached() bool
- func (d *InternalDocument) Key() key.Key
- func (d *InternalDocument) Lamport() uint64
- func (d *InternalDocument) Marshal() string
- func (d *InternalDocument) Root() *json.Root
- func (d *InternalDocument) RootObject() *json.Object
- func (d *InternalDocument) SetActor(actor *time.ActorID)
- func (d *InternalDocument) SetStatus(status statusType)
Constants ¶
const ( // Detached means that the document is not attached to the client. // The actor of the ticket is created without being assigned. Detached statusType = iota // Attached means that this document is attached to the client. // The actor of the ticket is created with being assigned by the client. Attached )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Document ¶
type Document struct {
// contains filtered or unexported fields
}
Document represents a document accessible to the user.
How document works: The operations are generated by the proxy while executing user's command on the clone. Then the operations will apply the changes into the base json root. This is to protect the base json from errors that may occur while user edit the document.
func (*Document) ActorID ¶ added in v0.2.2
ActorID returns ID of the actor currently editing the document.
func (*Document) ApplyChangePack ¶
ApplyChangePack applies the given change pack into this document.
func (*Document) Checkpoint ¶
func (d *Document) Checkpoint() change.Checkpoint
Checkpoint returns the checkpoint of this document.
func (*Document) CreateChangePack ¶
CreateChangePack creates pack of the local changes to send to the server.
func (*Document) GarbageCollect ¶
GarbageCollect purge elements that were removed before the given time.
func (*Document) GarbageLen ¶
GarbageLen returns the count of removed elements.
func (*Document) HasLocalChanges ¶
HasLocalChanges returns whether this document has local changes or not.
func (*Document) InternalDocument ¶ added in v0.1.11
func (d *Document) InternalDocument() *InternalDocument
InternalDocument returns the internal document.
func (*Document) IsAttached ¶
IsAttached returns the whether this document is attached or not.
func (*Document) Root ¶ added in v0.1.3
func (d *Document) Root() *proxy.ObjectProxy
Root returns the proxy of the root object.
func (*Document) RootObject ¶
RootObject returns the root object.
func (*Document) SetActor ¶
SetActor sets actor into this document. This is also applied in the local changes the document has.
type InternalDocument ¶
type InternalDocument struct {
// contains filtered or unexported fields
}
InternalDocument represents a document in MongoDB and contains logical clocks.
func NewInternalDocument ¶
func NewInternalDocument(k key.Key) *InternalDocument
NewInternalDocument creates a new instance of InternalDocument.
func NewInternalDocumentFromSnapshot ¶
func NewInternalDocumentFromSnapshot( k key.Key, serverSeq uint64, lamport uint64, snapshot []byte, ) (*InternalDocument, error)
NewInternalDocumentFromSnapshot creates a new instance of InternalDocument with the snapshot.
func (*InternalDocument) ActorID ¶ added in v0.2.2
func (d *InternalDocument) ActorID() *time.ActorID
ActorID returns ID of the actor currently editing the document.
func (*InternalDocument) ApplyChangePack ¶
func (d *InternalDocument) ApplyChangePack(pack *change.Pack) error
ApplyChangePack applies the given change pack into this document.
func (*InternalDocument) ApplyChanges ¶ added in v0.2.3
func (d *InternalDocument) ApplyChanges(changes ...*change.Change) error
ApplyChanges applies remote changes to the document.
func (*InternalDocument) Checkpoint ¶
func (d *InternalDocument) Checkpoint() change.Checkpoint
Checkpoint returns the checkpoint of this document.
func (*InternalDocument) CreateChangePack ¶
func (d *InternalDocument) CreateChangePack() *change.Pack
CreateChangePack creates pack of the local changes to send to the server.
func (*InternalDocument) GarbageCollect ¶
func (d *InternalDocument) GarbageCollect(ticket *time.Ticket) int
GarbageCollect purge elements that were removed before the given time.
func (*InternalDocument) GarbageLen ¶
func (d *InternalDocument) GarbageLen() int
GarbageLen returns the count of removed elements.
func (*InternalDocument) HasLocalChanges ¶
func (d *InternalDocument) HasLocalChanges() bool
HasLocalChanges returns whether this document has local changes or not.
func (*InternalDocument) IsAttached ¶
func (d *InternalDocument) IsAttached() bool
IsAttached returns the whether this document is attached or not.
func (*InternalDocument) Key ¶
func (d *InternalDocument) Key() key.Key
Key returns the key of this document.
func (*InternalDocument) Lamport ¶ added in v0.2.4
func (d *InternalDocument) Lamport() uint64
Lamport returns the Lamport clock of this document.
func (*InternalDocument) Marshal ¶
func (d *InternalDocument) Marshal() string
Marshal returns the JSON encoding of this document.
func (*InternalDocument) Root ¶ added in v0.2.1
func (d *InternalDocument) Root() *json.Root
Root returns the root of this document.
func (*InternalDocument) RootObject ¶
func (d *InternalDocument) RootObject() *json.Object
RootObject returns the root object.
func (*InternalDocument) SetActor ¶
func (d *InternalDocument) SetActor(actor *time.ActorID)
SetActor sets actor into this document. This is also applied in the local changes the document has.
func (*InternalDocument) SetStatus ¶ added in v0.1.1
func (d *InternalDocument) SetStatus(status statusType)
SetStatus sets the status of this document.