ditto / live.ditto

Package live.ditto

Types

Ditto

Ditto is the entry point for accessing Ditto-related functionality.

class Ditto

DittoAttachment

Represents an attachment and can be used to insert the associated attachment into a document at a specific key.

class DittoAttachment : Closeable

DittoAttachmentFetcher

These objects are returned by calls to fetchAttachment on DittoCollections.

class DittoAttachmentFetcher

DittoAttachmentFetchEvent

The different events that can occur in relation to an attachment fetch.

sealed class DittoAttachmentFetchEvent

DittoAttachmentFetchEventHandler

Typically this will only be used if interacting with the SDK from Java. You can call fetchAttachment with an attachment token and an object that implements this interface.

interface DittoAttachmentFetchEventHandler

DittoAttachmentFetchEventType

The different types of DittoAttachmentFetchEvent.

enum class DittoAttachmentFetchEventType

DittoAttachmentToken

Serves as a token for a specific attachment that you can pass to a call to fetchAttachment on a DittoCollection.

class DittoAttachmentToken

DittoBluetoothLeConfig

data class DittoBluetoothLeConfig

DittoCallback

The callback property of Ditto instances can be set to be an object that implements this interface.

interface DittoCallback

DittoCollection

A reference to a collection in a DittoStore.

class DittoCollection

DittoConditionSource

enum class DittoConditionSource

DittoConnect

data class DittoConnect

DittoDependencies

An interface describing the dependencies required to initialise a Ditto instance.

interface DittoDependencies

DittoDocument

A document belonging to a DittoCollection with an inner value.

class DittoDocument

DittoDocumentID

An identifier for a DittoDocument.

data class DittoDocumentID

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. You obtain a DittoDocumentPath by subscripting a DittoDocument and you can then further subscript a DittoDocumentPath to further specify the key of the document that you want to get the value of.

class DittoDocumentPath

DittoHttpListenConfig

data class DittoHttpListenConfig

DittoIdentity

The various identity configurations that you can use when initializing a Ditto instance.

sealed class DittoIdentity

DittoLanConfig

data class DittoLanConfig

DittoListen

data class DittoListen

DittoLiveQuery

The type that is returned when calling observe on a DittoCollection object. It handles the logic for calling the event handler that is provided to the observe call.

class DittoLiveQuery

DittoLiveQueryCallback

Typically this will only be used if interacting with the SDK from Java. You can call observe or observeLocal with an object that implements this interface.

interface DittoLiveQueryCallback

DittoLiveQueryEvent

Describes the different types of event that you can receive when dealing with live queries.

sealed class DittoLiveQueryEvent

DittoLiveQueryMove

Describes the index in a list of documents that a document was previously found at (from) and the index that it can now be found at (to).

data class DittoLiveQueryMove

DittoLiveQueryWithNextSignalCallback

Typically this will only be used if interacting with the SDK from Java. You can call observeWithNextSignal or observeLocalWithNextSignal with an object that implements this interface.

interface DittoLiveQueryWithNextSignalCallback

DittoLogCallback

Typically this will only be used if interacting with the SDK from Java. You can call setCustomLogCallback with an object that implements this interface.

interface DittoLogCallback

DittoLogger

Main singleton (global instance) to tweak the behavior of Ditto's logging infrastructure.

object DittoLogger

DittoMutableDocument

This is used as part of update operations for documents. It provides access to updating a document through a subscript-based API. A subscript operation returns a DittoMutableDocumentPath that you can then use to chain further subscript operations to in order to access nested values in a document. Once you've defined the path to a key in a document that you'd like to update, by using subscripts, then you can use the functionality defined on DittoMutableDocumentPath to perform the desired document update(s). Note that objects of this type should only be used within the scope of the update closure that they are provided in.

class DittoMutableDocument

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.

class DittoMutableDocumentPath

DittoMutableDocumentsUpdater

Typically this will only be used if interacting with the SDK from Java. You can call update with an object that implements this interface.

interface DittoMutableDocumentsUpdater

DittoPeersObserver

A token returned by observePeers(). Call close() to unsubscribe this handler.

class DittoPeersObserver : Closeable

DittoPeersObserverCallback

Typically this will only be used if interacting with the SDK from Java. You can call observePeers on a Ditto instance with an object that implements this interface.

interface DittoPeersObserverCallback

DittoPeerToPeer

data class DittoPeerToPeer

DittoPendingCursorOperation

These objects are returned when using find-like functionality on DittoCollections. They allow chaining of further query-related functions to do things like add a limit to the number of documents you want returned or specify how you want the documents to be sorted and ordered. You can either call exec on the object to get an array of DittoDocuments as an immediate return value, or you can establish either a live query or a subscription, which both work over time. A live query, established by calling observe, will notify you every time there's an update to a document that matches the query you provided in the preceding find-like call. A subscription, established by calling subscribe, will act as a signal to other peers that the device connects to that you would like to receive updates from them about documents that match the query you provided in the preceding find-like call. Calling observe will generate both a subscription and a live query at the same time. If you'd like to only observe local changes then you can call observeLocal. Update and remove functionality is also exposed through this object.

class DittoPendingCursorOperation

DittoPendingIDSpecificOperation

These objects are returned when using findByID functionality on DittoCollections. You can either call exec on the object to get an immediate return value, or you can establish either a live query or a subscription, which both work over time. A live query, established by calling observe, will notify you every time there's an update to the document with the ID you provided in the preceding findByID call. A subscription, established by calling subscribe, will act as a signal to other peers that you would like to receive updates from them about the document with the ID you provided in the preceding findByID call. Calling observe will generate both a subscription and a live query at the same time. If you'd like to only observe local changes then you can call observeLocal. Update and remove functionality is also exposed through this object. Update and remove functionality is also exposed through this object.

class DittoPendingIDSpecificOperation

DittoRemotePeer

A summary snapshot of the types of connections currently active to a remote Ditto peer.

class DittoRemotePeer

DittoScopedWriteTransaction

DittoScopedWriteTransaction exposes functionality that allows you to perform multiple operations on the store within a single write transaction.

class DittoScopedWriteTransaction

DittoSignalNext

typealias DittoSignalNext = () -> Unit

DittoSignalNextCallback

The interface that you must implement with the third parameter provided to observeWithNextSignal and observeLocalWithNextSignal calls.

interface DittoSignalNextCallback

DittoSingleDocumentLiveQueryCallback

Typically this will only be used if interacting with the SDK from Java. You can call observe or observeLocal with an object that implements this interface.

interface DittoSingleDocumentLiveQueryCallback

DittoSingleDocumentLiveQueryEvent

Provides information about a live query event relating to a single document live query.

class DittoSingleDocumentLiveQueryEvent

DittoSingleDocumentLiveQueryWithNextSignalCallback

Typically this will only be used if interacting with the SDK from Java. You can call observeWithNextSignal or observeLocalWithNextSignal with an object that implements this interface.

interface DittoSingleDocumentLiveQueryWithNextSignalCallback

DittoSingleMutableDocumentUpdater

Typically this will only be used if interacting with the SDK from Java. You can call update with an object that implements this interface.

interface DittoSingleMutableDocumentUpdater

DittoSortDirection

Describes the direction when sorting a query.

enum class DittoSortDirection

DittoStore

Provides access to DittoCollections and a write transaction API.

class DittoStore

DittoSubscription

While DittoSubscription objects remain in scope they ensure that documents in the collection specified and that match the query provided will try to be kept up-to-date with the latest changes from remote peers.

class DittoSubscription : Closeable

DittoTcpListenConfig

data class DittoTcpListenConfig

DittoTransportCondition

enum class DittoTransportCondition

DittoTransportConfig

A configuration object specifying which network transports Ditto should use to sync data.

data class DittoTransportConfig

DittoTransportDiagnostics

class DittoTransportDiagnostics

DittoTransportSnapshot

class DittoTransportSnapshot

DittoUpdateResult

Describes the result of an update operation performed on a DittoMutableDocument.

sealed class DittoUpdateResult

DittoWriteTransaction

DittoWriteTransaction exposes functionality that allows you to perform multiple operations on the store within a single write transaction. You must use the scoped function to get collection-scoped access to the write transaction object, which will then allow you to perform insert, update, remove or evict operations using the write transaction.

class DittoWriteTransaction

DittoWriteTransactionHandler

Typically this will only be used if interacting with the SDK from Java. You can call write on a DittoStore instance with an object that implements this interface.

interface DittoWriteTransactionHandler

DittoWriteTransactionPendingCursorOperation

These objects are returned when using findByID functionality on DittoScopedWriteTransactions. You can use them to perform updates on a document and remove or evict a document.

class DittoWriteTransactionPendingCursorOperation

DittoWriteTransactionPendingIDSpecificOperation

These objects are returned when using findByID functionality on DittoScopedWriteTransactions. You can use them to perform updates on a document and remove or evict a document.

class DittoWriteTransactionPendingIDSpecificOperation

DittoWriteTransactionResult

Describes one part of the result of a write transaction.

sealed class DittoWriteTransactionResult

DocumentPathSanitizer

object DocumentPathSanitizer

Status

class Status

Exceptions

DittoError

All errors that are thrown by the Ditto SDK are wrapped as a DittoError. It wraps multiple different types of error that each have an associated reason.

sealed class DittoError : Throwable

LMDBError

data class LMDBError : Throwable

Functions

getObjectMapper

fun getObjectMapper(): ObjectMapper

tryReadCBORBytes

fun <T : Any> tryReadCBORBytes(bytes: ByteArray, objectReader: ObjectReader): T?