Ditto  1.0.18-alpha2
Classes | Enumerations
DittoSDK Namespace Reference

Classes

class  Ditto
 The entrypoint to the Ditto SDK. More...
 
class  DittoAuthenticator
 Provides access to authentication information and methods for logging on to Ditto Cloud. Relevant when using an OnlineWithAuthentication or an Online identity. More...
 
struct  BusMessage
 
class  DittoBus
 Send and receive messages with remote Ditto peers in the mesh. More...
 
class  DittoBusCtx
 
class  DittoConnect
 
class  DittoError
 Used to represent all Ditto-related errors that aren't thrown as exceptions. More...
 
class  DittoException
 An exception that is thrown when Ditto encounters an error. More...
 
class  DittoExperimental
 Upcoming SDK features made available for prototyping. More...
 
class  DittoGlobal
 
class  DittoHandleWrapper
 Provides a GC object to hold the Rust pointer so disposes can be out of order Same pattern as in C++, Cocoa and (most recently) Android.
 
class  DittoHttpListenConfig
 
struct  DittoIdentity
 Used to identify a given peer in your network. In practice a peer may be a user, a device, or it might be some other entity in your system. More...
 
class  DittoLanConfig
 
class  DittoListen
 
class  DittoLogger
 Class with static methods to customize the logging behavior from Ditto.
 
class  DittoLogLevelHelper
 
class  DittoPeerToPeer
 
class  DittoTcpListenConfig
 
class  DittoTransportConfig
 A configuration object specifying which network transports Ditto should use to sync data. More...
 
class  ErrorHelpers
 
class  FfiHelpers
 
interface  IDittoAuthenticationDelegate
 Provides feedback to the developer about Ditto authentication status. More...
 
class  LogHelpers
 
class  LoginProvider
 
class  LoginProviderCtx
 
class  ValidityListener
 
class  ValidityListenerCtx
 
class  CBORHelpers
 
class  DittoAttachment
 A reference to a binary attachment file. More...
 
class  DittoAttachmentFetcher
 These objects are returned by calls to DittoCollection.FetchAttachment(DittoAttachmentToken, Action<DittoAttachmentFetchEvent>). More...
 
class  DittoAttachmentFetcherCtx
 
class  DittoAttachmentFetchEvent
 A representation of the events that can occur in relation to an attachment fetch. More...
 
class  DittoAttachmentToken
 Serves as a token for a specific attachment that you can pass to a call to DittoCollection.FetchAttachment(DittoAttachmentToken, Action<DittoAttachmentFetchEvent>). More...
 
class  DittoCollection
 A reference to a collection in a DittoStore. More...
 
class  DittoCollectionsEvent
 Provides information about the changes that have occurred in relation to an event delivered when observing the collections in a DittoStore. It contains information about the collections that are known about as well as the collections that were previously known about in the previous event, along with information about what collections have been inserted, deleted, updated, or moved since the last event. More...
 
class  DittoDocument
 A document in a DittoCollection. More...
 
class  DittoDocumentID
 An identifier for a DittoDocument More...
 
class  DittoDocumentIDCBORConverter
 
class  DittoDocumentIDPath
 Provides an interface to specify a path to a key in a document ID that you can then call a function on to get the value at the specified key as a specific type. More...
 
class  DittoDocumentPath
 Provides an interface to specify a path to a key in a document that you can then call a function on to get the value at the specified key as a specific type. More...
 
class  DittoLiveQuery
 A reference to a Live Query. The live query will respond to any changes relevant to the query that occur in the device's data store. Do not instantiate this by itself. The live query will keep the handler informed of all changes so long as it is not garbage collected or disposed. More...
 
class  DittoLiveQueryCtx
 The meat of the LiveQuery logic / object. This object is the one that handles callbacks from Rust.
 
class  DittoLiveQueryEvent
 Describes events delivered by a DittoLiveQuery. More...
 
class  DittoLiveQueryMove
 An object that describes how a document's position in a live query's list of matching documents has changed since the previous live query event. More...
 
class  DittoMutableDocument
 A special reference to a DittoDocument that can be used to perform mutation on a document. Do not instantiate directly. This reference should never leave the scope of the lambda provided as part of a call to DittoPendingCursorOperation.Update(Action<List<DittoMutableDocument>>) or DittoPendingIDSpecificOperation.Update(Action<DittoMutableDocument>) and should not be used across different threads. More...
 
class  DittoMutableDocumentPath
 Provides an interface to specify a path to a key in a document that you can then call various update functions on. You obtain a DittoMutableDocumentPath by subscripting a DittoMutableDocument and you can then further subscript a DittoMutableDocumentPath to further specify the key of the document that you want to update. More...
 
class  DittoPendingCollectionsOperation
 These objects are returned when calling collections() Collections() on DittoStore. More...
 
class  DittoPendingCursorOperation
 These objects are returned when using find-like functionality on DittoCollection objects. More...
 
class  DittoPendingIDSpecificOperation
 These objects are returned when using DittoCollection.FindById(string) functionality. More...
 
class  DittoScopedWriteTransaction
 Exposes functionality that allows you to perform multiple operations on the store within a single write transaction. More...
 
class  DittoSingleDocumentLiveQueryEvent
 Provides information about a live query event relating to a single document live query. More...
 
class  DittoStore
 A class encompassing functionality relating to the embedded storage. This is not a class you instantiate directly. Instead you access DittoStore objects using Ditto.Store. More...
 
class  DittoSubscription
 A reference to a subscription to data with other remote peers. You do not instantiate DittoSubscription objects directly. Instead they are created by calling DittoPendingCursorOperation.Subscribe or DittoPendingIDSpecificOperation.Subscribe. More...
 
class  DittoUpdateResult
 Provides information about a successful update operation on a document. More...
 
class  DittoWriteStrategyExtensions
 
class  DittoWriteTransaction
 Exposes functionality that allows you to perform multiple operations on the store within a single write transaction. More...
 
class  DittoWriteTransactionPendingCursorOperation
 These objects are returned when using DittoScopedWriteTransaction.Find(string), DittoScopedWriteTransaction.Find(string, Dictionary<string, object>), or DittoScopedWriteTransaction.FindAll. More...
 
class  DittoWriteTransactionPendingIDSpecificOperation
 These objects are returned when using DittoScopedWriteTransaction.FindById(string) functionality. More...
 
class  DittoWriteTransactionResult
 Provides information about the result of an operation on a document that was part of a write transaction. More...
 
class  DocumentHandleWrapper
 
class  DocumentHelpers
 
class  DocumentOperator
 
class  DocumentPath
 
class  DocumentPathSanitizer
 
class  RCHandle
 Store an IDisposable object in a reference-counted wrapper, in a way that can be shared over FFI.
 
class  PathComponentHelpers
 
class  QueryOperator
 
class  SortDirectionHelper
 

Enumerations

enum class  DittoIdentityType {
  Development , OfflinePlayground , Online , OnlineWithAuthentication ,
  OnlinePlayground , SharedKey , Manual
}
 The identity types you can use with Ditto. More...
 
enum class  DittoLogLevel {
  Error = 1 , Warning = 2 , Info = 3 , Debug = 4 ,
  Verbose = 5
}
 The different log levels that Ditto supports. More...
 
enum class  DittoSortDirection { Ascending = 1 , Descending = 2 }
 Describes the lexicographic or numeric sorting direction for a query. More...
 
enum class  DittoWriteStrategy { Merge = 1 , Overwrite = 2 , InsertIfAbsent = 3 , InsertDefaultIfAbsent = 4 }
 Defines the various strategies available when inserting a document into a collection. More...
 

Enumeration Type Documentation

◆ DittoIdentityType

The identity types you can use with Ditto.

  • Development: (Deprecated - use OfflinePlayground instead) Develop peer-to-peer apps with no cloud connection. This mode offers no security and must only be used for development.
  • OfflinePlayground: Develop peer-to-peer apps with no cloud connection. This mode offers no security and must only be used for development.
  • Online: (Deprecated - use OnlineWithAuthentication instead) Run Ditto in secure production mode, logging on to Ditto Cloud or on on-premises authentication server. User permissions are centrally managed.
  • OnlineWithAuthentication: Run Ditto in secure production mode, logging on to Ditto Cloud or on on-premises authentication server.User permissions are centrally managed.
  • OnlinePlayground: Test a Ditto Cloud app without authentication ("Playground mode"). This mode offers no security and must only be used for development.
  • SharedKey: A mode where any device is trusted provided they know the secret key.This is a simplistic authentication model normally only suitable for private apps where users and devices are both trusted.
  • Manual: A manually-provided certificate identity.This accepts a base64-encoded bundle.

◆ DittoLogLevel

The different log levels that Ditto supports.

◆ DittoSortDirection

Describes the lexicographic or numeric sorting direction for a query.

Enumerator
Ascending 

Informs the query to return values sorted in a lexicographic or numeric ascending order.

Descending 

Informs the query to return values sorted in a lexicographic or numeric descending order.

◆ DittoWriteStrategy

Defines the various strategies available when inserting a document into a collection.

Enumerator
Merge 

An existing document will be merged with the document being inserted, if there is a pre-existing document.

Overwrite 

An existing document will be overwritten. This can be thought of as first removing the existing document completely and then inserting the new document in its place, if there is a pre-existing document.

InsertIfAbsent 

Insert the document only if there is not already a document with the same ID in the store. If there is already a document in the store with the same ID then this will be a no-op.

InsertDefaultIfAbsent 

Insert the document, with its contents treated as default data, only if there is not already a document with the same ID in the store. If there is already a document in the store with the same ID then this will be a no-op. Use this strategy if you want to insert default data for a given document ID, which you want to treat as common initial data amongst all peers and that you expect to be mutated or overwritten in due course.