Classes
The following classes are available globally.
-
An Objective-C compatible equivalent to
DittoIdentity
.The identity configurations that you can use when initializing a
DittoKit
instance are:- development: An identity to be used while in development when you want to control either or both of the app name and the site ID of the peer.
- production: The identity to use when in production. This accepts a certificate bundle, which includes identity information, as a base 64 encoded string.
Declaration
Swift
@objc public class DittoIdentityObjC : NSObject
-
See moreDittoKit
is the entry point for accessing Ditto-related functionality.Declaration
Swift
@objc public class DittoKit : NSObject
-
Undocumented
See moreDeclaration
Swift
public class PeersTableViewController : UITableViewController
-
A token returned by
observePeers()
. Retain this object to continue receiving callback updates.Declaration
Swift
public class PeersObserver
-
Undocumented
See moreDeclaration
Swift
@objc public class DittoTransportDiagnostics : NSObject, Codable
-
Undocumented
See moreDeclaration
Swift
@objc public class DittoTransportSnapshot : NSObject, Codable
-
A summary snapshot of the types of connections currently active to a remote Ditto peer.
See moreDeclaration
Swift
@objc public class RemotePeer : NSObject, Codable
-
A reference to a collection in a
See moreDittoStore
.Declaration
Swift
@objc public class DittoCollection : NSObject
-
Configuration for the database backend that
See moreDittoStore
uses. Currently this is LMDB.Declaration
Swift
@objc public class DittoDBConfig : NSObject
-
A document belonging to a
See moreDittoCollection
with an inner value.Declaration
Swift
@objc public class DittoDocument : NSObject
-
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
See moreDittoDocumentPath
by subscripting aDittoDocument
and you can then further subscript aDittoDocumentPath
to further specify the key of the document that you want to get the value of.Declaration
Swift
@objcMembers @objc public class DittoDocumentPath : NSObject
-
The type that is returned when calling when calling
See moreobserve
orobserveLocal
on aDittoPendingCursorOperation
object. It handles the logic for calling the event handler that is provided toobserve
orobserveLocal
calls.DittoLiveQuery
objects must be kept in scope for as long as you with to have your event handler be called when there is an update to a document matching the query you provide.Declaration
Swift
@objc public class DittoLiveQuery : NSObject
-
Represents a change to a document by providing a value representing the document’s old state and a value representing the document’s new state. If it is the first time that one of these events is delivered for a
See moreDittoSingleDocumentLiveQuery
then theisInitial
value will betrue
and thenewDocument
value will be populated, if there existed a document with the relevant ID. If there is no matching document found then botholdDocument
andnewDocument
will benil
. If the document exists and is removed at a later date then an event will be delivered whereoldDocument
will be the most recent version of the document andnewDocument
will benil
. Similarly, if there was no document with the relevant ID and a document with the ID is later added then an event will be delivered whereoldDocument
isnil
andnewDocument
will be the document as it was just inserted.Declaration
Swift
@objc public class DittoSingleDocumentLiveQueryEvent : NSObject
-
An Objective-C compatible equivalent to
DittoLiveQueryEvent
. It describes the different types of event that you can receive when dealing with live queries.- initial: The first event that will be delivered and it will only be delivered once.
- update: This event will be delivered each time the results of the provided query change. It contains information about the set of documents that previously matched the query before the update, along with information about what documents have been inserted, deleted, updated, or moved, as part of the set of matching documents.
- error: This event will be delivered if there’s an error in relation to a live query.
You can switch on the
See moretype
and then get the value of the event as the appropriate type using the relevant function out of:asInitialEvent
,asUpdateEvent
, andasErrorEvent
.Declaration
Swift
@objc public class DittoLiveQueryEventObjC : NSObject
-
Represents the initial event that will be the value of an
DittoLiveQueryEventObjC
when itstype
isinitial
andasInitialEvent
is called on it.Declaration
Swift
@objc public class DittoLiveQueryInitialEvent : NSObject, DittoLiveQueryEventValueObjC
-
Represents an update event that will be the value of an
See moreDittoLiveQueryEventObjC
when itstype
isupdate
andasUpdateEvent
is called on it.Declaration
Swift
@objc public class DittoLiveQueryUpdateEvent : NSObject, DittoLiveQueryEventValueObjC
-
Represents the initial event that will be the value of an
See moreDittoLiveQueryEventObjC
when itstype
iserror
andasErrorEvent
is called on it.Declaration
Swift
@objc public class DittoLiveQueryErrorEvent : NSObject, DittoLiveQueryEventValueObjC
-
Represents how a document has moved in the list of matching documents as part of a live query update event.
See moreDeclaration
Swift
@objc public class DittoLiveQueryMove : NSObject
-
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
See moreDittoMutableDocumentPath
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 onDittoMutableDocumentPath
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.Declaration
Swift
@objc public class DittoMutableDocument : NSObject
-
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
See moreDittoMutableDocumentPath
by subscripting aDittoMutableDocument
and you can then further subscript aDittoMutbaleDocumentPath
to further specify the key of the document that you want to update.Declaration
Swift
@objcMembers @objc public class DittoMutableDocumentPath : NSObject
-
An Objective-C compatible equivalent to
DittoUpdateResult
. Describes the result of an update operation performed on aDittoMutableDocument
.- set: Describes the
set
update that was performed. - removed: Describes the
remove
update that was performed. - replacedWithCounter: Describes the
replaceWithCounter
update that was performed. - incremented: Describes the
increment
update that was performed. - replacedText: Describes the
replaceText
update that was performed. - pushed: Describes the
push
update that was performed. - popped: Describes the
pop
update that was performed.
You can switch on the
type
and then get the value of the result as the appropriate type using the relevant function out of:asSet
asRemoved
asReplacedWithCounter
asIncremented
asReplacedText
asPushed
asPopped
Declaration
Swift
@objc public class DittoUpdateResultObjC : NSObject
- set: Describes the
-
Represents the update result that will be the value of a
See moreDittoUpdateResultObjC
when itstype
isset
andasSet
is called on it.Declaration
Swift
@objc public class DittoUpdateResultSet : NSObject, DittoUpdateResultValueObjC
-
Represents the update result that will be the value of a
See moreDittoUpdateResultObjC
when itstype
isremoved
andasRemoved
is called on it.Declaration
Swift
@objc public class DittoUpdateResultRemoved : NSObject, DittoUpdateResultValueObjC
-
Represents the update result that will be the value of a
See moreDittoUpdateResultObjC
when itstype
isreplacedWithCounter
andasReplacedWithCounter
is called on it.Declaration
Swift
@objc public class DittoUpdateResultReplacedWithCounter : NSObject, DittoUpdateResultValueObjC
-
Represents the update result that will be the value of a
See moreDittoUpdateResultObjC
when itstype
isincremented
andasIncremented
is called on it.Declaration
Swift
@objc public class DittoUpdateResultIncremented : NSObject, DittoUpdateResultValueObjC
-
Represents the update result that will be the value of a
See moreDittoUpdateResultObjC
when itstype
isreplacedText
andasReplacedText
is called on it.Declaration
Swift
@objc public class DittoUpdateResultReplacedText : NSObject, DittoUpdateResultValueObjC
-
Represents the update result that will be the value of a
See moreDittoUpdateResultObjC
when itstype
ispushed
andasPushed
is called on it.Declaration
Swift
@objc public class DittoUpdateResultPushed : NSObject, DittoUpdateResultValueObjC
-
Represents the update result that will be the value of a
See moreDittoUpdateResultObjC
when itstype
ispopped
andasPopped
is called on it.Declaration
Swift
@objc public class DittoUpdateResultPopped : NSObject, DittoUpdateResultValueObjC
-
These objects are returned when using
See morefind
-like functionality onDittoCollection
s. 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 callexec
on the object to get an array ofDittoDocument
s 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 callingobserve
, will notify you every time there’s an update to a document that matches the query you provided in the precedingfind
-like call. A subscription, established by callingsubscribe
, 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 precedingfind
-like call. Callingobserve
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 callobserveLocal
. Update and remove functionality is also exposed through this object.Declaration
Swift
@objc public class DittoPendingCursorOperation : NSObject, QuerySorting, QueryObserving, QueryInstructing
-
These objects are returned when using
See morefindByID
functionality onDittoCollection
s. You can either callexec
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 callingobserve
, will notify you every time there’s an update to the document with the ID you provided in the precedingfindByID
call. A subscription, established by callingsubscribe
, 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 precedingfindByID
call. Callingobserve
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 callobserveLocal
. Update and remove functionality is also exposed through this object.Declaration
Swift
@objc public class DittoPendingIDSpecificOperation : NSObject, DocumentObserving, DocumentInstructing
-
See moreDittoStore
provides access toDittoCollection
s and a write transaction API.Declaration
Swift
@objc public class DittoStore : NSObject
-
While
See moreDittoSubscription
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.Declaration
Swift
@objc public class DittoSubscription : NSObject
-
A document belonging to a
See moreDittoCollection
with an inner typed value.Declaration
Swift
public class DittoTypedDocument<T> where T : Decodable
-
See moreDittoWriteTransaction
exposes functionality that allows you to perform multiple operations on the store within a single write transaction. You must use thescoped
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.Declaration
Swift
@objc public class DittoWriteTransaction : NSObject
-
See moreDittoScopedWriteTransaction
exposes functionality that allows you to perform multiple operations on the store within a single write transaction.Declaration
Swift
@objc public class DittoScopedWriteTransaction : NSObject
-
An Objective-C compatible equivalent to
DittoWriteTransactionResult
. Describes the result of a write transaction operation.- inserted: Describes a document that has been inserted, referencing its ID and the collection it was inserted into.
- updated: Describes a document that has been updated, referencing its ID and the collection it belongs to.
- evicted: Describes a document that has been evicted, referencing its ID and the collection it belonged to.
- removed: Describes a document that has been removed, referencing its ID and the collection it belonged to.
You can switch on the
type
and then get the value of the result as the appropriate type using the relevant function out of:asInserted
asUpdated
asEvicted
asRemoved
Declaration
Swift
@objc public class DittoWriteTransactionResultObjC : NSObject
-
Represents the write transaction result that will be the value of a
See moreDittoWriteTransactionResultObjC
when itstype
isinserted
andasInserted
is called on it.Declaration
Swift
@objc public class DittoWriteTransactionResultInserted : NSObject, DittoWriteTransactionResultValueObjC
-
Represents the write transaction result that will be the value of a
See moreDittoWriteTransactionResultObjC
when itstype
isupdated
andasUpdated
is called on it.Declaration
Swift
@objc public class DittoWriteTransactionResultUpdated : NSObject, DittoWriteTransactionResultValueObjC
-
Represents the write transaction result that will be the value of a
See moreDittoWriteTransactionResultObjC
when itstype
isevicted
andasEvicted
is called on it.Declaration
Swift
@objc public class DittoWriteTransactionResultEvicted : NSObject, DittoWriteTransactionResultValueObjC
-
Represents the write transaction result that will be the value of a
See moreDittoWriteTransactionResultObjC
when itstype
isremoved
andasRemoved
is called on it.Declaration
Swift
@objc public class DittoWriteTransactionResultRemoved : NSObject, DittoWriteTransactionResultValueObjC
-
These objects are returned when using
See morefind
andfindAll
functionality onDittoScopedWriteTransaction
s. You can use them to perform updates on documents and remove or evcit documents.Declaration
Swift
@objc public class DittoWriteTransactionPendingCursorOperation : NSObject, QuerySorting, QueryInstructing
-
These objects are returned when using
See morefindByID
functionality onDittoScopedWriteTransaction
s. You can use them to perform updates on a document and remove or evcit a document.Declaration
Swift
@objc public class DittoWriteTransactionPendingIDSpecificOperation : NSObject, DocumentInstructing