Ditto 3.0.3-alpha2
Public Member Functions | List of all members
ditto::DocumentPath Class Reference

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...

#include <DocumentPath.hpp>

Inheritance diagram for ditto::DocumentPath:
ditto::AbstractDocumentPath

Public Member Functions

DocumentPath operator[] (std::string key)
 
DocumentPath operator[] (std::size_t index)
 
std::shared_ptr< AttachmentTokenget_attachment_token () const
 Returns the value at the previously specified key in the document as a std::shared_ptr<AttachmentToken>. If the key was invalid the return value will be a nullptr. More...
 
std::shared_ptr< Counterget_counter () const
 Returns the value at the previously specified key in the document as a std::shared_ptr<Counter>. If the key was invalid the return value will be a nullptr. More...
 
std::shared_ptr< Registerget_register () const
 Returns the value at the previously specified key in the document as a std::shared_ptr<Register>. If the key was invalid the return value will be a nullptr. More...
 
std::shared_ptr< Rgaget_rga () const DITTO_DEPRECATED
 Returns the value at the previously specified key in the document as a std::shared_ptr<Rga>. If the key was invalid the return value will be a nullptr. More...
 
- Public Member Functions inherited from ditto::AbstractDocumentPath
nlohmann::json get_json (PathAccessorType path_type) const
 
AbstractDocumentPath operator[] (std::string path)
 Used to specify a path to a key in the document that you can subscript further to access a nested key in the document and eventually perform an update operation on. More...
 
AbstractDocumentPath operator[] (std::size_t index)
 Used to specify an index in the array at the preceding key-path specified through the subscripting defined previously. You can subscript the return value further to access a further nested key in the document and eventually perform an update operation. More...
 
std::string get_string_value () const
 Returns the value at the previously specified key in the document as a std::string. If the key was invalid a default value of an empty string will be returned. More...
 
int get_int_value () const
 Returns the value at the previously specified key in the document as an int. If the key was invalid a default value of 0 will be returned. More...
 
double get_double_value () const
 Returns the value at the previously specified key in the document as a double. If the key was invalid a default value of 0 will be returned. More...
 
float get_float_value () const
 Returns the value at the previously specified key in the document as a float. If the key was invalid a default value of 0 will be returned. More...
 
bool get_bool_value () const
 Returns the value at the previously specified key in the document as a bool. If the key was invalid a default value of false will be returned. More...
 
nlohmann::json get_json () const
 Returns the value at the previously specified key in the document as a nlohmann::json object. If the key was invalid the return value will be a nullptr. More...
 

Additional Inherited Members

- Protected Member Functions inherited from ditto::AbstractDocumentPath
 AbstractDocumentPath (CDocument_t const *document, DocumentId id, std::string initial_path)
 Constructs a new initial AbstractDocumentPath for a document. More...
 
 AbstractDocumentPath (const AbstractDocumentPath *document_path, std::string key)
 Constructs a new AbstractDocumentPath from an existing AbstractDocumentPath by appending a path. More...
 
 AbstractDocumentPath (const AbstractDocumentPath *document_path, std::size_t index)
 Constructs a new AbstractDocumentPath from an existing AbstractDocumentPath by appending an index. More...
 
 AbstractDocumentPath (const AbstractDocumentPath *document_path)
 Copy constructor. More...
 
template<typename T >
get_primitive_or_default (T default_value, json_callback json_cb, PathAccessorType path_type) const
 Get the primitive stored at a given path or the correspondign default value. More...
 
template<typename T >
std::shared_ptr< T > get_object_or_default (json_callback json_cb, PathAccessorType path_type) const
 Helper function to retrieve crdt objects. More...
 
template<typename T >
std::shared_ptr< T > get_mut_object_or_default (json_callback json_cb, PathAccessorType path_type) const
 
- Protected Attributes inherited from ditto::AbstractDocumentPath
CDocument_t const * document
 
DocumentId id
 
std::string path
 

Detailed Description

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

Member Function Documentation

◆ get_attachment_token()

std::shared_ptr< AttachmentToken > ditto::DocumentPath::get_attachment_token ( ) const

Returns the value at the previously specified key in the document as a std::shared_ptr<AttachmentToken>. If the key was invalid the return value will be a nullptr.

Returns
The value at the path specified by the document subscripting as a std::shared_ptr<AttachmentToken>. The return value will be a nullptr if the key was invalid or the value was not an AttachmentToken object.

◆ get_counter()

std::shared_ptr< Counter > ditto::DocumentPath::get_counter ( ) const

Returns the value at the previously specified key in the document as a std::shared_ptr<Counter>. If the key was invalid the return value will be a nullptr.

Returns
The value at the path specified by the document subscripting as a std::shared_ptr<Counter>. The return value will be a nullptr if the key was invalid or the value was not a Counter object.

◆ get_register()

std::shared_ptr< Register > ditto::DocumentPath::get_register ( ) const

Returns the value at the previously specified key in the document as a std::shared_ptr<Register>. If the key was invalid the return value will be a nullptr.

Returns
The value at the path specified by the document subscripting as a std::shared_ptr<Register>. The return value will be a nullptr if the key was invalid or the value was not a Register object.

◆ get_rga()

std::shared_ptr< Rga > ditto::DocumentPath::get_rga ( ) const

Returns the value at the previously specified key in the document as a std::shared_ptr<Rga>. If the key was invalid the return value will be a nullptr.

Returns
The value at the path specified by the document subscripting as a std::shared_ptr<Rga>. The return value will be a nullptr if the key was invalid or the value was not a Rga object.