Provides an interface to specify a path to a key in a document that you can then call various update functions on. More...
Public Member Functions | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
Protected Member Functions | |
| AbstractDocumentPath (CDocument_t const *document, DocumentId id, std::string initial_path) | |
Constructs a new initial AbstractDocumentPath for a document. | |
| AbstractDocumentPath (const AbstractDocumentPath *document_path, std::string key) | |
Constructs a new AbstractDocumentPath from an existing AbstractDocumentPath by appending a path. | |
| AbstractDocumentPath (const AbstractDocumentPath *document_path, std::size_t index) | |
Constructs a new AbstractDocumentPath from an existing AbstractDocumentPath by appending an index. | |
| AbstractDocumentPath (const AbstractDocumentPath *document_path) | |
| Copy constructor. | |
| template<typename T> | |
| 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 corresponding default value. | |
| 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. | |
| template<typename T> | |
| std::shared_ptr< T > | get_mut_object_or_default (json_callback json_cb, PathAccessorType path_type) const |
Protected Attributes | |
| CDocument_t const * | document |
| DocumentId | id |
| std::string | path |
Provides an interface to specify a path to a key in a document that you can then call various update functions on.
|
protected |
Constructs a new initial AbstractDocumentPath for a document.
| [in] | document | A pointer to the Rust CDocument_t. |
| [in] | id | The ID of the Document to which this path corresponds. |
| [in] | initial_path | The key for the initial path into the document. This must always be a string key (i.e. a map key) rather than an array index as every top level Document is a map. The initial_path will be sanitized within the constructor. |
|
protected |
Constructs a new AbstractDocumentPath from an existing AbstractDocumentPath by appending a path.
| [in] | documentPath | The existing document path. |
| [in] | key | The path component to append. It will be sanitized internally |
|
protected |
Constructs a new AbstractDocumentPath from an existing AbstractDocumentPath by appending an index.
| [in] | documentPath | The existing document path. |
| [in] | key | The path component to append. |
|
protected |
Copy constructor.
| document_path |
| bool ditto::AbstractDocumentPath::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.
bool. The return value will be false if the key was invalid or the value was not a boolean type. | double ditto::AbstractDocumentPath::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.
double. The return value will be 0 if the key was invalid or the value was not a numeric type. | float ditto::AbstractDocumentPath::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.
float. The return value will be 0 if the key was invalid or the value was not a numeric type. | int ditto::AbstractDocumentPath::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.
int. The return value will be 0 if the key was invalid or the value was not a numeric type. | json ditto::AbstractDocumentPath::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.
nlohmann::json object. The return value will be a nullptr if the key was invalid.
|
protected |
Helper function to retrieve crdt objects.
This is done here because safer_ffi_utils in not included within Ditto.h.
| T |
| json_cb | callback to check if the retrieved json value has the right typing. If no callback is provided - nullptr - this check is simply skipped. |
| path_type | expected type at path |
|
protected |
Get the primitive stored at a given path or the corresponding default value.
| T | type wanted |
| default_value | default value T if it cannot be retrieved from the document. |
| std::string ditto::AbstractDocumentPath::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.
std::string. The return value will be an empty string if the key was invalid or the value was not a string. | AbstractDocumentPath ditto::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.
| [in] | index | the index of the array that you wish to access in the key previously specified with the preceding subscripting. |
| AbstractDocumentPath ditto::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.
| [in] | path | the next part of the path needed to get to the key in the document you wish to update. |