Ditto 4.13.1
 
Loading...
Searching...
No Matches
ditto::DittoConfig Struct Reference

Configuration options for initializing a Ditto instance. More...

Classes

class  Connect
 Specifies how this instance discovers and connects to peers, including network settings and authentication options. More...
 
struct  Experimental
 Experimental features configuration. More...
 
class  ServerConnect
 Server connection configuration. More...
 
class  SmallPeersOnlyConnect
 Small peers only connection configutation. More...
 

Public Member Functions

 DittoConfig ()=default
 Constructor for an empty configuration.
 
 DittoConfig (const DittoConfig &other)=default
 
 DittoConfig (DittoConfig &&other)=default
 
DittoConfigoperator= (const DittoConfig &other)=default
 
DittoConfigoperator= (DittoConfig &&other)=default
 
DittoConfigset_database_id (std::string database_id) noexcept
 Set the unique identifier for the Ditto instance.
 
DittoConfigset_persistence_directory (std::string persistence_directory) noexcept
 Set the directory that will be used to persist Ditto data.
 
DittoConfigset_connect (std::shared_ptr< Connect > connect) noexcept
 Set the connection configuration.
 
DittoConfigset_server_connect (std::string url) noexcept
 Set the connection configuration to server mode.
 
DittoConfigset_small_peers_only_connect (std::string private_key="") noexcept
 Set the connection configuration to small peers only mode.
 
DittoConfigset_experimental (Experimental exp) noexcept
 Set the experimental features configuration.
 

Static Public Member Functions

static DittoConfig default_config ()
 Get a usable default configuration.
 
static std::string default_database_id () noexcept
 Returns the default identifier for a Ditto instance.
 

Public Attributes

std::string database_id
 The unique identifier for the Ditto instance.
 
std::shared_ptr< Connectconnect
 Connection configuration for this Ditto instance.
 
Experimental experimental
 Experimental features configuration for this Ditto instance.
 
std::string persistence_directory
 the directory that will be used to persist Ditto data
 

Detailed Description

Configuration options for initializing a Ditto instance.

DittoConfig encapsulates all the parameters required to configure a Ditto instance, including identity, connectivity, persistence, and experimental features.

Data members are public, but convenience functions are provided to support builder-style chaining, such as this example:

auto config = DittoConfig::default_config()
                .set_database_id("my-app-uuid")
                .set_connect(DittoConfig::Connect::server("https://api.ditto.live"))
                .set_persistence_directory("/tmp/myapp/persist");
auto ditto = Ditto::open(config);

Member Function Documentation

◆ default_config()

static DittoConfig ditto::DittoConfig::default_config ( )
static

Get a usable default configuration.

Returns
a DittoConfig with default offline identity and default persistence directory

◆ default_database_id()

static std::string ditto::DittoConfig::default_database_id ( )
staticnoexcept

Returns the default identifier for a Ditto instance.

This identifier is used when no explicit ID is provided. It is typically a constant UUID string that ensures a predictable default value. In most cases, you should provide your own unique identifier to avoid conflicts when syncing with other peers.

◆ set_connect()

DittoConfig & ditto::DittoConfig::set_connect ( std::shared_ptr< Connect > connect)
noexcept

Set the connection configuration.

Returns
a reference to this object, useful for chaining calls

◆ set_database_id()

DittoConfig & ditto::DittoConfig::set_database_id ( std::string database_id)
noexcept

Set the unique identifier for the Ditto instance.

Returns
a reference to this object, useful for chaining calls

◆ set_experimental()

DittoConfig & ditto::DittoConfig::set_experimental ( Experimental exp)
noexcept

Set the experimental features configuration.

Returns
a reference to this object, useful for chaining calls

◆ set_persistence_directory()

DittoConfig & ditto::DittoConfig::set_persistence_directory ( std::string persistence_directory)
noexcept

Set the directory that will be used to persist Ditto data.

Returns
a reference to this object. useful for chaining calls

◆ set_server_connect()

DittoConfig & ditto::DittoConfig::set_server_connect ( std::string url)
noexcept

Set the connection configuration to server mode.

Parameters
urlThe server URL to connect to
Returns
a reference to this object, useful for chaining calls

◆ set_small_peers_only_connect()

DittoConfig & ditto::DittoConfig::set_small_peers_only_connect ( std::string private_key = "")
noexcept

Set the connection configuration to small peers only mode.

Parameters
private_keyOptional private key for encryption (empty string means no encryption)
Returns
a reference to this object, useful for chaining calls

Member Data Documentation

◆ database_id

std::string ditto::DittoConfig::database_id

The unique identifier for the Ditto instance.

This must be a valid UUID string. You can find the ID in the Ditto portal, or provide your own if you only need to sync with a small set of peers.