IModelStore defines the methods for storing and processing Realtime Models when offline.
Gets and increments the value id prefix for a given model.
The model id to get and increment the prefix for.
The claimed value id prefix.
Indicates that the model creation process has completed. This can happen when online and the server responds, or as part of the resync process.
The id of the model that was created.
Completes the deletion of the model by removing the deleted flag on the model.
The id of the model to complete the deletion for.
Deletes the offline record of the model.
The id of the model to delete.
Gets all current model meta data records in the system.
All meta data records.
Gets the model creation data for a model that is currently in progress of creation, or null if a model with that id is not being created.
The id of the model to get the creation data of.
The IModelCreationData for this model or null if it is not set.
Gets the model meta data for the specified model or null if meta data for the model does not exist.
The id of the model to get the meta data for.
The model meta data for the model or null if no record exists.
Gets the current state for a locally available model. The method will return null for a model that does not exist or is not available locally.
The id of the model to get the state of.
The model state for the given model id, or null if the model is not available locally.
Gets all model records for models that require synchronization to the server.
Model meta data for models that are deletes, created, or uncommitted.
Gets a model records for models that are subscribed.
All meta data entries for models with the subscribed flag set.
Begins the process of creating a model. This happens when the client creates the model, but before the server acknowledges the creation. This could be when the client is offline or even when online since the process with the server is async.
The data the capture how the model was created.
The meta data record created by this operation.
Initiates the deletion of a model. This will remove the local model data but leave the model marked as deletion until the model deletion is confirmed.
The id of the model to delete.
Determines if a model record exists for the specified model id. This does not imply that the model is subscribed, or available.
The id of the model to check.
True if a meta data record exists; false otherwise.
Processes a new local operation. The modelId will be read from the local operation. The local operation operation will be stored. The model meta data will be updated to indicate that the model has uncommitted changes and the lastSequenceNumber number will be updated in the model details. The syncRequired flag will also be updated appropriately.
The local operation to process.
Updates the model state based on an update. Updates can either contain a data update or a permission update.
The update to apply.
Processes a local operation acknowledgment from the server. This will remove the corresponding local operation and store the new server operation, which is essentially the version of the local operation that was (potentially) transformed such that it now represents the version of the local operation that the server executed. The uncommitted and syncRequired flags will be updated appropriately if this ack means that there are no more outstanding changes in the model.
The id of the model that received the ack.
The sequence number of the local operation that was acknowledged.
The server operation to store in place of the local operation.
Processes a new server operation for a model. The modelId is inferred from the id in the serverOp. The localOps passed in are the new local operations that are the result of their transformation against the new server operation. Not the modelId of the localOperations must al match the modelId of the serverOp. This operation will update the modified time and version of the model meta data. The new server operation will be stored.
The new server operation to process.
The transformed local operations to store.
Sets the models state. This will merge the state of the model with any existing meta data records for the model.
The model state to set.
Updates an offline models snapshot. This only applies to models that are locally available.
The id of the model to set the snapshot for.
The new version of the snapshot.
The current sequence number for the local client.
The data of the model at the version.
Adds and or removes subscriptions. If no model record exists it will be created. If the record exists, the subscribed flags will be modified. If a model is already subscribe and it is subscribed again, the operation will be a no-op for that model. If the model does not exist or is not subscribed and is asked to be unsubscribed it will be a no-op for that model.
The set of model ids to subscribe.
The set of model ids to unsubscribe.