|
void | obx_version (int *major, int *minor, int *patch) |
| Return the version of the library as ints. Pointers may be null. More...
|
|
bool | obx_version_is_at_least (int major, int minor, int patch) |
| Check if the version of the library is equal to or higher than the given version ints. More...
|
|
const char * | obx_version_string (void) |
| Return the version of the library to be printed. The format may change in any future release; only use for information purposes. More...
|
|
const char * | obx_version_core_string (void) |
| Return the version of the ObjectBox core to be printed. The format may change in any future release; only use for information purposes. More...
|
|
bool | obx_has_feature (OBXFeature feature) |
| Checks whether the given feature is available in the currently loaded library. More...
|
|
bool | obx_supports_bytes_array (void) |
| Check whether functions returning OBX_bytes_array are fully supported (depends on build, invariant during runtime) More...
|
|
bool | obx_supports_time_series (void) |
| Check whether time series functions are available in the version of this library. More...
|
|
obx_err | obx_remove_db_files (char const *directory) |
| Delete the store files from the given directory. More...
|
|
bool | obx_last_error_pop (obx_err *out_error, const char **out_message) |
| Return the error status on the current thread and clear the error state. The buffer returned in out_message is valid only until the next call into ObjectBox. More...
|
|
obx_err | obx_last_error_code (void) |
| The last error raised by an ObjectBox API call on the current thread, or OBX_SUCCESS if no error occurred yet. Note that API calls do not clear this error code (also true for this method). Thus, if you receive an error from this, it's usually a good idea to call obx_last_error_clear() to clear the error state (or use obx_last_error_pop()) for future API calls. More...
|
|
const char * | obx_last_error_message (void) |
| The error message string attached to the error returned by obx_last_error_code(). Like obx_last_error_code(), this is bound to the current thread, and this call does not clear the error state. The buffer returned is valid only until the next call into ObjectBox. More...
|
|
obx_err | obx_last_error_secondary (void) |
| The underlying error for the error returned by obx_last_error_code(). Where obx_last_error_code() may be a generic error like OBX_ERROR_STORAGE_GENERAL, this will give a further underlying and possibly platform-specific error code. More...
|
|
void | obx_last_error_clear (void) |
| Clear the error state on the current thread; e.g. obx_last_error_code() will now return OBX_SUCCESS. Note that clearing the error state does not happen automatically; API calls set the error state when they produce an error, but do not clear it on success. See also: obx_last_error_pop() to retrieve the error state and clear it. More...
|
|
bool | obx_last_error_set (obx_err code, obx_err secondary, const char *message) |
| Set the last error code and test - reserved for internal use from generated code. More...
|
|
OBX_model * | obx_model (void) |
| Create an (empty) data meta model which is to be consumed by obx_opt_model(). More...
|
|
obx_err | obx_model_free (OBX_model *model) |
| Only call when not calling obx_store_open() (which will free it internally) More...
|
|
obx_err | obx_model_error_code (OBX_model *model) |
| To minimise the amount of error handling code required when building a model, the first error is stored and can be obtained here. All the obx_model_XXX functions are null operations after the first model error has occurred. More...
|
|
const char * | obx_model_error_message (OBX_model *model) |
| To minimise the amount of error handling code required when building a model, the first error is stored and can be obtained here. All the obx_model_XXX functions are null operations after the first model error has occurred. More...
|
|
obx_err | obx_model_entity (OBX_model *model, const char *name, obx_schema_id entity_id, obx_uid entity_uid) |
| Starts the definition of a new entity type for the meta data model. After this, call obx_model_property() to add properties to the entity type. More...
|
|
obx_err | obx_model_entity_flags (OBX_model *model, OBXEntityFlags flags) |
| Refine the definition of the entity declared by the most recent obx_model_entity() call, specifying flags. More...
|
|
obx_err | obx_model_property (OBX_model *model, const char *name, OBXPropertyType type, obx_schema_id property_id, obx_uid property_uid) |
| Starts the definition of a new property for the entity type of the last obx_model_entity() call. More...
|
|
obx_err | obx_model_property_flags (OBX_model *model, OBXPropertyFlags flags) |
| Refine the definition of the property declared by the most recent obx_model_property() call, specifying flags. More...
|
|
obx_err | obx_model_property_relation (OBX_model *model, const char *target_entity, obx_schema_id index_id, obx_uid index_uid) |
| Refine the definition of the property declared by the most recent obx_model_property() call, declaring it a relation. More...
|
|
obx_err | obx_model_property_index_id (OBX_model *model, obx_schema_id index_id, obx_uid index_uid) |
| Refine the definition of the property declared by the most recent obx_model_property() call, adding an index. More...
|
|
obx_err | obx_model_relation (OBX_model *model, obx_schema_id relation_id, obx_uid relation_uid, obx_schema_id target_id, obx_uid target_uid) |
| Add a standalone relation between the active entity and the target entity to the model. More...
|
|
void | obx_model_last_entity_id (OBX_model *, obx_schema_id entity_id, obx_uid entity_uid) |
| Set the highest ever known entity id in the model. Should always be equal to or higher than the last entity id of the previous version of the model. More...
|
|
void | obx_model_last_index_id (OBX_model *model, obx_schema_id index_id, obx_uid index_uid) |
| Set the highest ever known index id in the model. Should always be equal to or higher than the last index id of the previous version of the model. More...
|
|
void | obx_model_last_relation_id (OBX_model *model, obx_schema_id relation_id, obx_uid relation_uid) |
| Set the highest every known relation id in the model. Should always be equal to or higher than the last relation id of the previous version of the model. More...
|
|
obx_err | obx_model_entity_last_property_id (OBX_model *model, obx_schema_id property_id, obx_uid property_uid) |
| Set the highest ever known property id in the entity. Should always be equal to or higher than the last property id of the previous version of the entity. More...
|
|
OBX_store_options * | obx_opt () |
| Create a default set of store options. More...
|
|
obx_err | obx_opt_directory (OBX_store_options *opt, const char *dir) |
| Set the store directory on the options. The default is "objectbox". More...
|
|
void | obx_opt_max_db_size_in_kb (OBX_store_options *opt, size_t size_in_kb) |
| Set the maximum db size on the options. The default is 1Gb. More...
|
|
void | obx_opt_file_mode (OBX_store_options *opt, unsigned int file_mode) |
| Set the file mode on the options. The default is 0644 (unix-style) More...
|
|
void | obx_opt_max_readers (OBX_store_options *opt, unsigned int max_readers) |
| Set the maximum number of readers on the options. "Readers" are an finite resource for which we need to define a maximum number upfront. The default value is enough for most apps and usually you can ignore it completely. However, if you get the OBX_ERROR_MAX_READERS_EXCEEDED error, you should verify your threading. For each thread, ObjectBox uses multiple readers. Their number (per thread) depends on number of types, relations, and usage patterns. Thus, if you are working with many threads (e.g. in a server-like scenario), it can make sense to increase the maximum number of readers. Note: The internal default is currently around 120. So when hitting this limit, try values around 200-500. More...
|
|
obx_err | obx_opt_model (OBX_store_options *opt, OBX_model *model) |
| Set the model on the options. The default is no model. NOTE: the model is always freed by this function, including when an error occurs. More...
|
|
obx_err | obx_opt_model_bytes (OBX_store_options *opt, const void *bytes, size_t size) |
| Set the model on the options copying the given bytes. The default is no model. More...
|
|
obx_err | obx_opt_model_bytes_direct (OBX_store_options *opt, const void *bytes, size_t size) |
| Like obx_opt_model_bytes BUT WITHOUT copying the given bytes. Thus, you must keep the bytes available until after the store is created. More...
|
|
void | obx_opt_validate_on_open (OBX_store_options *opt, size_t page_limit, bool leaf_level) |
| When the DB is opened initially, ObjectBox can do a consistency check on the given amount of pages. Reliable file systems already guarantee consistency, so this is primarily meant to deal with unreliable OSes, file systems, or hardware. Thus, usually a low number (e.g. 1-20) is sufficient and does not impact startup performance significantly. To completely disable this you can pass 0, but we recommend a setting of at least 1. Note: ObjectBox builds upon ACID storage, which guarantees consistency given that the file system is working correctly (in particular fsync). More...
|
|
void | obx_opt_put_padding_mode (OBX_store_options *opt, OBXPutPaddingMode mode) |
| Don't touch unless you know exactly what you are doing: Advanced setting typically meant for language bindings (not end users). See OBXPutPaddingMode description. More...
|
|
void | obx_opt_read_schema (OBX_store_options *opt, bool value) |
| Advanced setting meant only for special scenarios: setting to false causes opening the database in a limited, schema-less mode. If you don't know what this means exactly: ignore this flag. Defaults to true. More...
|
|
void | obx_opt_use_previous_commit (OBX_store_options *opt, bool value) |
| Advanced setting recommended to be used together with read-only mode to ensure no data is lost. Ignores the latest data snapshot (committed transaction state) and uses the previous snapshot instead. When used with care (e.g. backup the DB files first), this option may also recover data removed by the latest transaction. Defaults to false. More...
|
|
void | obx_opt_read_only (OBX_store_options *opt, bool value) |
| Open store in read-only mode: no schema update, no write transactions. Defaults to false. More...
|
|
void | obx_opt_debug_flags (OBX_store_options *opt, OBXDebugFlags flags) |
| Configure debug logging. Defaults to NONE. More...
|
|
void | obx_opt_async_max_queue_length (OBX_store_options *opt, size_t value) |
| Maximum of async elements in the queue before new elements will be rejected. Hitting this limit usually hints that async processing cannot keep up; data is produced at a faster rate than it can be persisted in the background. In that case, increasing this value is not the only alternative; other values might also optimize throughput. For example, increasing maxInTxDurationMicros may help too. More...
|
|
void | obx_opt_async_throttle_at_queue_length (OBX_store_options *opt, size_t value) |
| Producers (AsyncTx submitter) is throttled when the queue size hits this. More...
|
|
void | obx_opt_async_throttle_micros (OBX_store_options *opt, uint32_t value) |
| Sleeping time for throttled producers on each submission. More...
|
|
void | obx_opt_async_max_in_tx_duration (OBX_store_options *opt, uint32_t micros) |
| Maximum duration spent in a transaction before AsyncQ enforces a commit. This becomes relevant if the queue is constantly populated at a high rate. More...
|
|
void | obx_opt_async_max_in_tx_operations (OBX_store_options *opt, uint32_t value) |
| Maximum operations performed in a transaction before AsyncQ enforces a commit. This becomes relevant if the queue is constantly populated at a high rate. More...
|
|
void | obx_opt_async_pre_txn_delay (OBX_store_options *opt, uint32_t delay_micros) |
| Before the AsyncQ is triggered by a new element in queue to starts a new run, it delays actually starting the transaction by this value. This gives a newly starting producer some time to produce more than one a single operation before AsyncQ starts. Note: this value should typically be low to keep latency low and prevent accumulating too much operations. More...
|
|
void | obx_opt_async_pre_txn_delay4 (OBX_store_options *opt, uint32_t delay_micros, uint32_t delay2_micros, size_t min_queue_length_for_delay2) |
| Before the AsyncQ is triggered by a new element in queue to starts a new run, it delays actually starting the transaction by this value. This gives a newly starting producer some time to produce more than one a single operation before AsyncQ starts. Note: this value should typically be low to keep latency low and prevent accumulating too much operations. More...
|
|
void | obx_opt_async_post_txn_delay (OBX_store_options *opt, uint32_t delay_micros) |
| Similar to preTxDelay but after a transaction was committed. One of the purposes is to give other transactions some time to execute. In combination with preTxDelay this can prolong non-TX batching time if only a few operations are around. More...
|
|
void | obx_opt_async_post_txn_delay4 (OBX_store_options *opt, uint32_t delay_micros, uint32_t delay2_micros, size_t min_queue_length_for_delay2) |
| Similar to preTxDelay but after a transaction was committed. One of the purposes is to give other transactions some time to execute. In combination with preTxDelay this can prolong non-TX batching time if only a few operations are around. More...
|
|
void | obx_opt_async_minor_refill_threshold (OBX_store_options *opt, size_t queue_length) |
| Numbers of operations below this value are considered "minor refills". More...
|
|
void | obx_opt_async_minor_refill_max_count (OBX_store_options *opt, uint32_t value) |
| If non-zero, this allows "minor refills" with small batches that came in (off by default). More...
|
|
void | obx_opt_async_max_tx_pool_size (OBX_store_options *opt, size_t value) |
| Default value: 10000, set to 0 to deactivate pooling. More...
|
|
void | obx_opt_async_object_bytes_max_cache_size (OBX_store_options *opt, uint64_t value) |
| Total cache size; default: ~ 0.5 MB. More...
|
|
void | obx_opt_async_object_bytes_max_size_to_cache (OBX_store_options *opt, uint64_t value) |
| Maximal size for an object to be cached (only cache smaller ones) More...
|
|
void | obx_opt_free (OBX_store_options *opt) |
| Free the options. Note: Only free unused options, obx_store_open() frees the options internally. More...
|
|
OBX_store * | obx_store_open (OBX_store_options *opt) |
| Note: the given options are always freed by this function, including when an error occurs. More...
|
|
OBX_store * | obx_store_wrap (void *core_store) |
| For stores created outside of this C API, e.g. via C++ or Java, this is how you can use it via C too. Like this, it is OK to use the same store instance (same database) from multiple languages in parallel. Note: the store's life time will still be managed outside of the C API; thus ensure that store is not closed while calling any C function on it. Once you are done with the C specific OBX_store, call obx_store_close() to free any C related resources. This, however, will not close the "core store". More...
|
|
obx_schema_id | obx_store_entity_id (OBX_store *store, const char *entity_name) |
| Look for an entity with the given name in the model and return its Entity ID. More...
|
|
obx_schema_id | obx_store_entity_property_id (OBX_store *store, obx_schema_id entity_id, const char *property_name) |
| Return the property id from the property name or 0 if the name is not found. More...
|
|
bool | obx_store_await_async_completion (OBX_store *store) |
| Await for all (including future) async submissions to be completed (the async queue becomes idle for a moment). More...
|
|
bool | obx_store_await_async_submitted (OBX_store *store) |
| Await for previously submitted async operations to be completed (the async queue does not have to become idle). More...
|
|
obx_err | obx_store_debug_flags (OBX_store *store, OBXDebugFlags flags) |
| Configure debug logging. More...
|
|
bool | obx_store_opened_with_previous_commit (OBX_store *store) |
|
obx_err | obx_store_close (OBX_store *store) |
|
OBX_txn * | obx_txn_write (OBX_store *store) |
| Create a write transaction (read and write). Transaction creation can be nested (recursive), however only the outermost transaction is relevant on the DB level. More...
|
|
OBX_txn * | obx_txn_read (OBX_store *store) |
| Create a read transaction (read only). Transaction creation can be nested (recursive), however only the outermost transaction is relevant on the DB level. More...
|
|
obx_err | obx_txn_success (OBX_txn *txn) |
| "Finish" this write transaction successfully and close it, performing a commit if this is the top level transaction and all inner transactions (if any) were also successful (obx_txn_success() was called on them). Because this also closes the given transaction, the given OBX_txn pointer must not be used afterwards. More...
|
|
obx_err | obx_txn_close (OBX_txn *txn) |
| Close (free) the transaction (read or write); the given OBX_txn pointer must not be used afterwards. While this is the only way to release read transactions, this call is also an alternative to call obx_txn_success() on write transactions. In combination with obx_txn_mark_success(), this potentially commits or aborts a write transaction on the DB: 1) If it's an outermost TX and all (inner) TXs were marked successful, this commits the transaction. 2) If this transaction was not marked successful, this aborts the transaction (even if it's an inner TX). If an error is returned (e.g., a commit failed because DB is full), you can assume that the transaction was closed. More...
|
|
obx_err | obx_txn_abort (OBX_txn *txn) |
| Abort the underlying transaction immediately and thus frees DB resources. Only obx_txn_close() is allowed to be called on the transaction after calling this. More...
|
|
obx_err | obx_txn_mark_success (OBX_txn *txn, bool wasSuccessful) |
| Mark the given write transaction as successful or failed. You can call this method multiple times with different values before calling obx_txn_close() on the transaction. More...
|
|
OBX_cursor * | obx_cursor (OBX_txn *txn, obx_schema_id entity_id) |
|
obx_err | obx_cursor_close (OBX_cursor *cursor) |
|
obx_id | obx_cursor_id_for_put (OBX_cursor *cursor, obx_id id_or_zero) |
| Call this when putting an object to generate/prepare an ID for it. More...
|
|
obx_err | obx_cursor_put (OBX_cursor *cursor, obx_id id, const void *data, size_t size) |
| Puts the given object data using the given ID. A "put" in ObjectBox follows "insert or update" semantics; New objects (no pre-existing object for given ID) are inserted while existing objects are replaced/updated. More...
|
|
obx_err | obx_cursor_put4 (OBX_cursor *cursor, obx_id id, const void *data, size_t size, OBXPutMode mode) |
| Like put obx_cursor_put(), but takes an additional parameter (4th parameter) for choosing a put mode. More...
|
|
obx_err | obx_cursor_put_new (OBX_cursor *cursor, obx_id id, const void *data, size_t size) |
| An optimized version of obx_cursor_put() if you can ensure that the given ID is not used yet. Typically used right after getting a new ID via obx_cursor_id_for_put(). WARNING: using this incorrectly (an object with the given ID already exists) may result in inconsistent data (e.g. indexes do not get updated). More...
|
|
obx_err | obx_cursor_insert (OBX_cursor *cursor, obx_id id, const void *data, size_t size) |
| Convenience for obx_cursor_put4() with OBXPutMode_INSERT. More...
|
|
obx_err | obx_cursor_update (OBX_cursor *cursor, obx_id id, const void *data, size_t size) |
| Convenience for obx_cursor_put4() with OBXPutMode_UPDATE. More...
|
|
obx_id | obx_cursor_put_object (OBX_cursor *cursor, void *data, size_t size) |
| FB ID slot must be present; new entities must prepare the slot using the special value OBX_ID_NEW. Alternatively, you may also pass 0 to indicate a new entity if you are aware that FlatBuffers builders typically skip zero values by default. Thus, you have to "force" writing the zero in FlatBuffers. More...
|
|
obx_id | obx_cursor_put_object4 (OBX_cursor *cursor, void *data, size_t size, OBXPutMode mode) |
|
obx_err | obx_cursor_get (OBX_cursor *cursor, obx_id id, const void **data, size_t *size) |
|
OBX_bytes_array * | obx_cursor_get_all (OBX_cursor *cursor) |
| Get all objects as bytes. For larger quantities, it's recommended to iterate using obx_cursor_first and obx_cursor_next. However, if the calling overhead is high (e.g., for language bindings), this method helps. More...
|
|
obx_err | obx_cursor_first (OBX_cursor *cursor, const void **data, size_t *size) |
|
obx_err | obx_cursor_next (OBX_cursor *cursor, const void **data, size_t *size) |
|
obx_err | obx_cursor_seek (OBX_cursor *cursor, obx_id id) |
|
obx_err | obx_cursor_current (OBX_cursor *cursor, const void **data, size_t *size) |
|
obx_err | obx_cursor_remove (OBX_cursor *cursor, obx_id id) |
|
obx_err | obx_cursor_remove_all (OBX_cursor *cursor) |
|
obx_err | obx_cursor_count (OBX_cursor *cursor, uint64_t *count) |
| Count the number of available objects. More...
|
|
obx_err | obx_cursor_count_max (OBX_cursor *cursor, uint64_t max_count, uint64_t *out_count) |
| Count the number of available objects up to the specified maximum. More...
|
|
obx_err | obx_cursor_is_empty (OBX_cursor *cursor, bool *out_is_empty) |
| Return true if there is no object available (false if at least one object is available) More...
|
|
OBX_bytes_array * | obx_cursor_backlinks (OBX_cursor *cursor, obx_schema_id entity_id, obx_schema_id property_id, obx_id id) |
|
OBX_id_array * | obx_cursor_backlink_ids (OBX_cursor *cursor, obx_schema_id entity_id, obx_schema_id property_id, obx_id id) |
|
obx_err | obx_cursor_rel_put (OBX_cursor *cursor, obx_schema_id relation_id, obx_id source_id, obx_id target_id) |
|
obx_err | obx_cursor_rel_remove (OBX_cursor *cursor, obx_schema_id relation_id, obx_id source_id, obx_id target_id) |
|
OBX_id_array * | obx_cursor_rel_ids (OBX_cursor *cursor, obx_schema_id relation_id, obx_id source_id) |
|
obx_err | obx_cursor_ts_min_max (OBX_cursor *cursor, obx_id *out_min_id, int64_t *out_min_value, obx_id *out_max_id, int64_t *out_max_value) |
| Time series: get the limits (min/max time values) over all objects. More...
|
|
obx_err | obx_cursor_ts_min_max_range (OBX_cursor *cursor, int64_t range_begin, int64_t range_end, obx_id *out_min_id, int64_t *out_min_value, obx_id *out_max_id, int64_t *out_max_value) |
| Time series: get the limits (min/max time values) over objects within the given time range. More...
|
|
OBX_box * | obx_box (OBX_store *store, obx_schema_id entity_id) |
| Get access to the box for the given entity. A box may be used across threads. Boxes are shared instances and managed by the store so there's no need to close/free them manually. More...
|
|
OBX_store * | obx_box_store (OBX_box *box) |
| Get access to the store this box belongs to - utility for when you only have access to the box variable but need some store method, such as starting a transaction. This doesn't produce a new instance of OBX_store, just gives you back the same pointer you've created this box with. In other words, don't close the returned store separately. More...
|
|
obx_err | obx_box_contains (OBX_box *box, obx_id id, bool *out_contains) |
| Check whether a given object exists in the box. More...
|
|
obx_err | obx_box_contains_many (OBX_box *box, const OBX_id_array *ids, bool *out_contains) |
| Check whether this box contains objects with all of the IDs given. More...
|
|
obx_err | obx_box_get (OBX_box *box, obx_id id, const void **data, size_t *size) |
| Fetch a single object from the box; must be called inside a (reentrant) transaction. The exposed data comes directly from the OS to allow zero-copy access, which limits the data lifetime: More...
|
|
OBX_bytes_array * | obx_box_get_many (OBX_box *box, const OBX_id_array *ids) |
| Fetch multiple objects for the given IDs from the box; must be called inside a (reentrant) transaction. More...
|
|
OBX_bytes_array * | obx_box_get_all (OBX_box *box) |
| Fetch all objects from the box; must be called inside a (reentrant) transaction. NOTE: don't call this in 32 bit mode! Use obx_box_visit_all() instead. More...
|
|
obx_err | obx_box_visit_many (OBX_box *box, const OBX_id_array *ids, obx_data_visitor *visitor, void *user_data) |
| Read given objects from the database in a single transaction. Call the visitor() on each object, passing user_data, object data & size as arguments. The given visitor must return true to keep receiving results, false to cancel. If an object is not found, the visitor() is still called, passing NULL as data and a 0 as size. More...
|
|
obx_err | obx_box_visit_all (OBX_box *box, obx_data_visitor *visitor, void *user_data) |
| Read all objects in a single transaction. Calls the visitor() on each object, passing visitor_arg, object data & size as arguments. The given visitor must return true to keep receiving results, false to cancel. More...
|
|
obx_id | obx_box_id_for_put (OBX_box *box, obx_id id_or_zero) |
| Prepares an ID for insertion: pass in 0 (zero) to reserve a new ID or an existing ID to check/prepare it. More...
|
|
obx_err | obx_box_ids_for_put (OBX_box *box, uint64_t count, obx_id *out_first_id) |
| Reserve the given number of (new) IDs for insertion; a bulk version of obx_box_id_for_put(). More...
|
|
obx_err | obx_box_put (OBX_box *box, obx_id id, const void *data, size_t size) |
| Put the given object using the given ID synchronously; note that the ID also must match the one present in data. More...
|
|
obx_err | obx_box_insert (OBX_box *box, obx_id id, const void *data, size_t size) |
| Convenience for obx_box_put5() with OBXPutMode_INSERT. More...
|
|
obx_err | obx_box_update (OBX_box *box, obx_id id, const void *data, size_t size) |
| Convenience for obx_cursor_put4() with OBXPutMode_UPDATE. More...
|
|
obx_err | obx_box_put5 (OBX_box *box, obx_id id, const void *data, size_t size, OBXPutMode mode) |
| Put the given object using the given ID synchronously; note that the ID also must match the one present in data. More...
|
|
obx_id | obx_box_put_object (OBX_box *box, void *data, size_t size) |
| FB ID slot must be present in the given data; new entities must have an ID value of zero or OBX_ID_NEW. More...
|
|
obx_id | obx_box_put_object4 (OBX_box *box, void *data, size_t size, OBXPutMode mode) |
| FB ID slot must be present in the given data; new entities must have an ID value of zero or OBX_ID_NEW. More...
|
|
obx_err | obx_box_put_many (OBX_box *box, const OBX_bytes_array *objects, const obx_id *ids, OBXPutMode mode) |
| Put all given objects in the database in a single transaction. If any of the individual objects failed to put, none are put and an error is returned, equivalent to calling obx_box_put_many5() with fail_on_id_failure=true. More...
|
|
obx_err | obx_box_put_many5 (OBX_box *box, const OBX_bytes_array *objects, const obx_id *ids, OBXPutMode mode, bool fail_on_id_failure) |
| Like obx_box_put_many(), but with an additional flag indicating how to treat ID failures with OBXPutMode_INSERT and OBXPutMode_UPDATE. More...
|
|
obx_err | obx_box_remove (OBX_box *box, obx_id id) |
| Remove a single object will return OBX_NOT_FOUND if an object with the given ID doesn't exist. More...
|
|
obx_err | obx_box_remove_many (OBX_box *box, const OBX_id_array *ids, uint64_t *out_count) |
| Remove all given objects from the database in a single transaction. Note that this method will not fail if the object is not found (e.g. already removed). In case you need to strictly check whether all of the objects exist before removing them, execute obx_box_contains_ids() and obx_box_remove_ids() inside a single write transaction. More...
|
|
obx_err | obx_box_remove_all (OBX_box *box, uint64_t *out_count) |
| Remove all objects and set the out_count the the number of removed objects. More...
|
|
obx_err | obx_box_is_empty (OBX_box *box, bool *out_is_empty) |
| Check whether there are any objects for this entity and updates the out_is_empty accordingly. More...
|
|
obx_err | obx_box_count (OBX_box *box, uint64_t limit, uint64_t *out_count) |
| Count the number of objects in the box, up to the given maximum. You can pass limit=0 to count all objects without any limitation. More...
|
|
OBX_id_array * | obx_box_get_backlink_ids (OBX_box *box, obx_schema_id property_id, obx_id id) |
| Fetch IDs of all objects that link back to the given object (ID) using the given relation property (ID). Note: This method refers to "property based relations" unlike the "stand-alone relations" (see obx_box_rel_*). More...
|
|
obx_err | obx_box_rel_put (OBX_box *box, obx_schema_id relation_id, obx_id source_id, obx_id target_id) |
| Insert a standalone relation entry between two objects. More...
|
|
obx_err | obx_box_rel_remove (OBX_box *box, obx_schema_id relation_id, obx_id source_id, obx_id target_id) |
| Remove a standalone relation entry between two objects. See obx_box_rel_put() for parameters documentation. More...
|
|
OBX_id_array * | obx_box_rel_get_ids (OBX_box *box, obx_schema_id relation_id, obx_id id) |
| Fetch IDs of all objects in this Box related to the given object (typically from another Box). Used for a stand-alone relation and its "regular" direction; this Box represents the target of the relation. More...
|
|
OBX_id_array * | obx_box_rel_get_backlink_ids (OBX_box *box, obx_schema_id relation_id, obx_id id) |
| Fetch IDs of all objects in this Box related to the given object (typically from another Box). Used for a stand-alone relation and its "backlink" direction; this Box represents the source of the relation. More...
|
|
obx_err | obx_box_ts_min_max (OBX_box *box, obx_id *out_min_id, int64_t *out_min_value, obx_id *out_max_id, int64_t *out_max_value) |
| Time series: get the limits (min/max time values) over all objects. More...
|
|
obx_err | obx_box_ts_min_max_range (OBX_box *box, int64_t range_begin, int64_t range_end, obx_id *out_min_id, int64_t *out_min_value, obx_id *out_max_id, int64_t *out_max_value) |
| Time series: get the limits (min/max time values) over objects within the given time range. More...
|
|
OBX_async * | obx_async (OBX_box *box) |
| Note: DO NOT close this OBX_async; its lifetime is tied to the OBX_box instance. More...
|
|
obx_err | obx_async_put (OBX_async *async, obx_id id, const void *data, size_t size) |
| Put asynchronously with standard put semantics (insert or update). More...
|
|
obx_err | obx_async_put5 (OBX_async *async, obx_id id, const void *data, size_t size, OBXPutMode mode) |
| Put asynchronously using the given mode. More...
|
|
obx_err | obx_async_insert (OBX_async *async, obx_id id, const void *data, size_t size) |
| Put asynchronously with inserts semantics (won't put if object already exists). More...
|
|
obx_err | obx_async_update (OBX_async *async, obx_id id, const void *data, size_t size) |
| Put asynchronously with update semantics (won't put if object is not yet present). More...
|
|
obx_id | obx_async_put_object (OBX_async *async, void *data, size_t size) |
| Reserve an ID, which is returned immediately for future reference, and put asynchronously. Note: of course, it can NOT be guaranteed that the entity will actually be put successfully in the DB. More...
|
|
obx_id | obx_async_insert_object (OBX_async *async, void *data, size_t size) |
| Reserve an ID, which is returned immediately for future reference, and insert asynchronously. Note: of course, it can NOT be guaranteed that the entity will actually be inserted successfully in the DB. More...
|
|
obx_err | obx_async_remove (OBX_async *async, obx_id id) |
| Remove asynchronously. More...
|
|
OBX_async * | obx_async_create (OBX_box *box, uint64_t enqueue_timeout_millis) |
| Create a custom OBX_async instance that has to be closed using obx_async_close(). Note: for standard tasks, prefer obx_box_async() giving you a shared instance that does not have to be closed. More...
|
|
obx_err | obx_async_close (OBX_async *async) |
| Close a custom OBX_async instance created with obx_async_create(). More...
|
|
OBX_query_builder * | obx_query_builder (OBX_store *store, obx_schema_id entity_id) |
| Create a query builder which is used to collect conditions using the obx_qb_* functions. Once all conditions are applied, use obx_query() to build a OBX_query that is used to actually retrieve data. Use obx_qb_close() to close (free) the query builder. More...
|
|
obx_err | obx_qb_close (OBX_query_builder *builder) |
| Close the query builder; note that OBX_query objects outlive their builder and thus are not affected by this call. More...
|
|
obx_err | obx_qb_error_code (OBX_query_builder *builder) |
| To minimise the amount of error handling code required when building a query, the first error is stored in the query and can be obtained here. All the obx_qb_XXX functions are null operations after the first query error has occurred. More...
|
|
const char * | obx_qb_error_message (OBX_query_builder *builder) |
| To minimise the amount of error handling code required when building a query, the first error is stored in the query and can be obtained here. All the obx_qb_XXX functions are null operations after the first query error has occurred. More...
|
|
obx_qb_cond | obx_qb_null (OBX_query_builder *builder, obx_schema_id property_id) |
| Add null check to the query. More...
|
|
obx_qb_cond | obx_qb_not_null (OBX_query_builder *builder, obx_schema_id property_id) |
| Add not-null check to the query. More...
|
|
obx_qb_cond | obx_qb_equals_string (OBX_query_builder *builder, obx_schema_id property_id, const char *value, bool case_sensitive) |
|
obx_qb_cond | obx_qb_not_equals_string (OBX_query_builder *builder, obx_schema_id property_id, const char *value, bool case_sensitive) |
|
obx_qb_cond | obx_qb_contains_string (OBX_query_builder *builder, obx_schema_id property_id, const char *value, bool case_sensitive) |
|
obx_qb_cond | obx_qb_starts_with_string (OBX_query_builder *builder, obx_schema_id property_id, const char *value, bool case_sensitive) |
|
obx_qb_cond | obx_qb_ends_with_string (OBX_query_builder *builder, obx_schema_id property_id, const char *value, bool case_sensitive) |
|
obx_qb_cond | obx_qb_greater_than_string (OBX_query_builder *builder, obx_schema_id property_id, const char *value, bool case_sensitive) |
|
obx_qb_cond | obx_qb_greater_or_equal_string (OBX_query_builder *builder, obx_schema_id property_id, const char *value, bool case_sensitive) |
|
obx_qb_cond | obx_qb_less_than_string (OBX_query_builder *builder, obx_schema_id property_id, const char *value, bool case_sensitive) |
|
obx_qb_cond | obx_qb_less_or_equal_string (OBX_query_builder *builder, obx_schema_id property_id, const char *value, bool case_sensitive) |
|
obx_qb_cond | obx_qb_in_strings (OBX_query_builder *builder, obx_schema_id property_id, const char *const values[], size_t count, bool case_sensitive) |
| Note that all string values are copied and thus do not need to be maintained by the calling code. More...
|
|
obx_qb_cond | obx_qb_any_equals_string (OBX_query_builder *builder, obx_schema_id property_id, const char *value, bool case_sensitive) |
| For OBXPropertyType_StringVector - matches if at least one vector item equals the given value. More...
|
|
obx_qb_cond | obx_qb_equals_int (OBX_query_builder *builder, obx_schema_id property_id, int64_t value) |
|
obx_qb_cond | obx_qb_not_equals_int (OBX_query_builder *builder, obx_schema_id property_id, int64_t value) |
|
obx_qb_cond | obx_qb_greater_than_int (OBX_query_builder *builder, obx_schema_id property_id, int64_t value) |
|
obx_qb_cond | obx_qb_greater_or_equal_int (OBX_query_builder *builder, obx_schema_id property_id, int64_t value) |
|
obx_qb_cond | obx_qb_less_than_int (OBX_query_builder *builder, obx_schema_id property_id, int64_t value) |
|
obx_qb_cond | obx_qb_less_or_equal_int (OBX_query_builder *builder, obx_schema_id property_id, int64_t value) |
|
obx_qb_cond | obx_qb_between_2ints (OBX_query_builder *builder, obx_schema_id property_id, int64_t value_a, int64_t value_b) |
|
obx_qb_cond | obx_qb_in_int64s (OBX_query_builder *builder, obx_schema_id property_id, const int64_t values[], size_t count) |
| Note that all values are copied and thus do not need to be maintained by the calling code. More...
|
|
obx_qb_cond | obx_qb_not_in_int64s (OBX_query_builder *builder, obx_schema_id property_id, const int64_t values[], size_t count) |
| Note that all values are copied and thus do not need to be maintained by the calling code. More...
|
|
obx_qb_cond | obx_qb_in_int32s (OBX_query_builder *builder, obx_schema_id property_id, const int32_t values[], size_t count) |
| Note that all values are copied and thus do not need to be maintained by the calling code. More...
|
|
obx_qb_cond | obx_qb_not_in_int32s (OBX_query_builder *builder, obx_schema_id property_id, const int32_t values[], size_t count) |
| Note that all values are copied and thus do not need to be maintained by the calling code. More...
|
|
obx_qb_cond | obx_qb_greater_than_double (OBX_query_builder *builder, obx_schema_id property_id, double value) |
|
obx_qb_cond | obx_qb_greater_or_equal_double (OBX_query_builder *builder, obx_schema_id property_id, double value) |
|
obx_qb_cond | obx_qb_less_than_double (OBX_query_builder *builder, obx_schema_id property_id, double value) |
|
obx_qb_cond | obx_qb_less_or_equal_double (OBX_query_builder *builder, obx_schema_id property_id, double value) |
|
obx_qb_cond | obx_qb_between_2doubles (OBX_query_builder *builder, obx_schema_id property_id, double value_a, double value_b) |
|
obx_qb_cond | obx_qb_equals_bytes (OBX_query_builder *builder, obx_schema_id property_id, const void *value, size_t size) |
|
obx_qb_cond | obx_qb_greater_than_bytes (OBX_query_builder *builder, obx_schema_id property_id, const void *value, size_t size) |
|
obx_qb_cond | obx_qb_greater_or_equal_bytes (OBX_query_builder *builder, obx_schema_id property_id, const void *value, size_t size) |
|
obx_qb_cond | obx_qb_less_than_bytes (OBX_query_builder *builder, obx_schema_id property_id, const void *value, size_t size) |
|
obx_qb_cond | obx_qb_less_or_equal_bytes (OBX_query_builder *builder, obx_schema_id property_id, const void *value, size_t size) |
|
obx_qb_cond | obx_qb_all (OBX_query_builder *builder, const obx_qb_cond conditions[], size_t count) |
| Combine conditions[] to a new condition using operator AND (all). More...
|
|
obx_qb_cond | obx_qb_any (OBX_query_builder *builder, const obx_qb_cond conditions[], size_t count) |
| Combine conditions[] to a new condition using operator OR (any). More...
|
|
obx_err | obx_qb_param_alias (OBX_query_builder *builder, const char *alias) |
|
obx_err | obx_qb_order (OBX_query_builder *builder, obx_schema_id property_id, OBXOrderFlags flags) |
| Configures an order of results in the query. More...
|
|
OBX_query_builder * | obx_qb_link_property (OBX_query_builder *builder, obx_schema_id property_id) |
| Create a link based on a property-relation (many-to-one) More...
|
|
OBX_query_builder * | obx_qb_backlink_property (OBX_query_builder *builder, obx_schema_id source_entity_id, obx_schema_id source_property_id) |
| Create a backlink based on a property-relation used in reverse (one-to-many) More...
|
|
OBX_query_builder * | obx_qb_link_standalone (OBX_query_builder *builder, obx_schema_id relation_id) |
| Create a link based on a standalone relation (many-to-many) More...
|
|
OBX_query_builder * | obx_qb_backlink_standalone (OBX_query_builder *builder, obx_schema_id relation_id) |
| Create a backlink based on a standalone relation (many-to-many, reverse direction) More...
|
|
OBX_query_builder * | obx_qb_link_time (OBX_query_builder *builder, obx_schema_id linked_entity_id, obx_schema_id begin_property_id, obx_schema_id end_property_id) |
| Link the (time series) entity type to another entity space using a time point or range defined in the given linked entity type and properties. Note: time series functionality must be available to use this. More...
|
|
OBX_query * | obx_query (OBX_query_builder *builder) |
|
obx_err | obx_query_close (OBX_query *query) |
| Close the query and free resources. More...
|
|
OBX_query * | obx_query_clone (OBX_query *query) |
| Create a clone of the given query such that it can be run on a separate thread. More...
|
|
obx_err | obx_query_offset (OBX_query *query, uint64_t offset) |
| Configure an offset for this query - all methods that support offset will return/process objects starting at this offset. Example use case: use together with limit to get a slice of the whole result, e.g. for "result paging". Call with offset=0 to reset to the default behavior, i.e. starting from the first element. More...
|
|
obx_err | obx_query_offset_limit (OBX_query *query, uint64_t offset, uint64_t limit) |
| Configure an offset and a limit for this query - all methods that support an offset/limit will return/process objects starting at this offset and up to the given limit. Example use case: get a slice of the whole result, e.g. for "result paging". Call with offset/limit=0 to reset to the default behavior, i.e. starting from the first element without limit. More...
|
|
obx_err | obx_query_limit (OBX_query *query, uint64_t limit) |
| Configure a limit for this query - all methods that support limit will return/process only the given number of objects. Example use case: use together with offset to get a slice of the whole result, e.g. for "result paging". Call with limit=0 to reset to the default behavior - zero limit means no limit applied. More...
|
|
OBX_bytes_array * | obx_query_find (OBX_query *query) |
| Find entities matching the query. NOTE: the returned data is only valid as long the transaction is active! More...
|
|
obx_err | obx_query_visit (OBX_query *query, obx_data_visitor *visitor, void *user_data) |
| Walk over matching objects using the given data visitor. More...
|
|
OBX_id_array * | obx_query_find_ids (OBX_query *query) |
| Return the IDs of all matching objects. More...
|
|
obx_err | obx_query_count (OBX_query *query, uint64_t *out_count) |
| Return the number of matching objects. More...
|
|
obx_err | obx_query_remove (OBX_query *query, uint64_t *out_count) |
| Remove all matching objects from the database & return the number of deleted objects. More...
|
|
const char * | obx_query_describe (OBX_query *query) |
| The returned char* is valid until another call to describe() is made on the query or until the query is freed. More...
|
|
const char * | obx_query_describe_params (OBX_query *query) |
| The returned char* is valid until another call to describe_params() is made on the query or until the query is freed. More...
|
|
obx_err | obx_query_cursor_visit (OBX_query *query, OBX_cursor *cursor, obx_data_visitor *visitor, void *user_data) |
|
OBX_bytes_array * | obx_query_cursor_find (OBX_query *query, OBX_cursor *cursor) |
| Find entities matching the query; NOTE: the returned data is only valid as long the transaction is active! More...
|
|
OBX_id_array * | obx_query_cursor_find_ids (OBX_query *query, OBX_cursor *cursor) |
|
obx_err | obx_query_cursor_count (OBX_query *query, OBX_cursor *cursor, uint64_t *out_count) |
|
obx_err | obx_query_cursor_remove (OBX_query *query, OBX_cursor *cursor, uint64_t *out_count) |
| Remove (delete!) all matching objects. More...
|
|
obx_err | obx_query_param_string (OBX_query *query, obx_schema_id entity_id, obx_schema_id property_id, const char *value) |
|
obx_err | obx_query_param_strings (OBX_query *query, obx_schema_id entity_id, obx_schema_id property_id, const char *const values[], size_t count) |
|
obx_err | obx_query_param_int (OBX_query *query, obx_schema_id entity_id, obx_schema_id property_id, int64_t value) |
|
obx_err | obx_query_param_2ints (OBX_query *query, obx_schema_id entity_id, obx_schema_id property_id, int64_t value_a, int64_t value_b) |
|
obx_err | obx_query_param_int64s (OBX_query *query, obx_schema_id entity_id, obx_schema_id property_id, const int64_t values[], size_t count) |
|
obx_err | obx_query_param_int32s (OBX_query *query, obx_schema_id entity_id, obx_schema_id property_id, const int32_t values[], size_t count) |
|
obx_err | obx_query_param_double (OBX_query *query, obx_schema_id entity_id, obx_schema_id property_id, double value) |
|
obx_err | obx_query_param_2doubles (OBX_query *query, obx_schema_id entity_id, obx_schema_id property_id, double value_a, double value_b) |
|
obx_err | obx_query_param_bytes (OBX_query *query, obx_schema_id entity_id, obx_schema_id property_id, const void *value, size_t size) |
|
size_t | obx_query_param_get_type_size (OBX_query *query, obx_schema_id entity_id, obx_schema_id property_id) |
| Gets the size of the property type used in a query condition. A typical use case of this is to allow language bindings (e.g. Swift) use the right type (e.g. 32 bit ints) even if the language has a bias towards another type (e.g. 64 bit ints). More...
|
|
obx_err | obx_query_param_alias_string (OBX_query *query, const char *alias, const char *value) |
|
obx_err | obx_query_param_alias_strings (OBX_query *query, const char *alias, const char *const values[], size_t count) |
|
obx_err | obx_query_param_alias_int (OBX_query *query, const char *alias, int64_t value) |
|
obx_err | obx_query_param_alias_2ints (OBX_query *query, const char *alias, int64_t value_a, int64_t value_b) |
|
obx_err | obx_query_param_alias_int64s (OBX_query *query, const char *alias, const int64_t values[], size_t count) |
|
obx_err | obx_query_param_alias_int32s (OBX_query *query, const char *alias, const int32_t values[], size_t count) |
|
obx_err | obx_query_param_alias_double (OBX_query *query, const char *alias, double value) |
|
obx_err | obx_query_param_alias_2doubles (OBX_query *query, const char *alias, double value_a, double value_b) |
|
obx_err | obx_query_param_alias_bytes (OBX_query *query, const char *alias, const void *value, size_t size) |
|
size_t | obx_query_param_alias_get_type_size (OBX_query *query, const char *alias) |
| Gets the size of the property type used in a query condition. A typical use case of this is to allow language bindings (e.g. Swift) use the right type (e.g. 32 bit ints) even if the language has a bias towards another type (e.g. 64 bit ints). More...
|
|
OBX_query_prop * | obx_query_prop (OBX_query *query, obx_schema_id property_id) |
| Create a "property query" with results referring to single property (not complete objects). Also provides aggregates like for example obx_query_prop_avg(). More...
|
|
obx_err | obx_query_prop_close (OBX_query_prop *query) |
| Close the property query and release resources. More...
|
|
obx_err | obx_query_prop_distinct (OBX_query_prop *query, bool distinct) |
| Configure the property query to work only on distinct values. More...
|
|
obx_err | obx_query_prop_distinct_case (OBX_query_prop *query, bool distinct, bool case_sensitive) |
| Configure the property query to work only on distinct values. This version is reserved for string properties and defines the case sensitivity for distinctness. More...
|
|
obx_err | obx_query_prop_count (OBX_query_prop *query, uint64_t *out_count) |
| Count the number of non-NULL values of the given property across all objects matching the query. More...
|
|
obx_err | obx_query_prop_avg (OBX_query_prop *query, double *out_average, int64_t *out_count) |
| Calculate an average value for the given numeric property across all objects matching the query. More...
|
|
obx_err | obx_query_prop_avg_int (OBX_query_prop *query, int64_t *out_average, int64_t *out_count) |
| Calculate an average value for the given numeric property across all objects matching the query. More...
|
|
obx_err | obx_query_prop_min (OBX_query_prop *query, double *out_minimum, int64_t *out_count) |
| Find the minimum value of the given floating-point property across all objects matching the query. More...
|
|
obx_err | obx_query_prop_max (OBX_query_prop *query, double *out_maximum, int64_t *out_count) |
| Find the maximum value of the given floating-point property across all objects matching the query. More...
|
|
obx_err | obx_query_prop_sum (OBX_query_prop *query, double *out_sum, int64_t *out_count) |
| Calculate the sum of the given floating-point property across all objects matching the query. More...
|
|
obx_err | obx_query_prop_min_int (OBX_query_prop *query, int64_t *out_minimum, int64_t *out_count) |
| Find the minimum value of the given property across all objects matching the query. More...
|
|
obx_err | obx_query_prop_max_int (OBX_query_prop *query, int64_t *out_maximum, int64_t *out_count) |
| Find the maximum value of the given property across all objects matching the query. More...
|
|
obx_err | obx_query_prop_sum_int (OBX_query_prop *query, int64_t *out_sum, int64_t *out_count) |
| Calculate the sum of the given property across all objects matching the query. More...
|
|
OBX_string_array * | obx_query_prop_find_strings (OBX_query_prop *query, const char *value_if_null) |
| Return an array of strings stored as the given property across all objects matching the query. More...
|
|
OBX_int64_array * | obx_query_prop_find_int64s (OBX_query_prop *query, const int64_t *value_if_null) |
| Return an array of ints stored as the given property across all objects matching the query. More...
|
|
OBX_int32_array * | obx_query_prop_find_int32s (OBX_query_prop *query, const int32_t *value_if_null) |
| Return an array of ints stored as the given property across all objects matching the query. More...
|
|
OBX_int16_array * | obx_query_prop_find_int16s (OBX_query_prop *query, const int16_t *value_if_null) |
| Return an array of ints stored as the given property across all objects matching the query. More...
|
|
OBX_int8_array * | obx_query_prop_find_int8s (OBX_query_prop *query, const int8_t *value_if_null) |
| Return an array of ints stored as the given property across all objects matching the query. More...
|
|
OBX_double_array * | obx_query_prop_find_doubles (OBX_query_prop *query, const double *value_if_null) |
| Return an array of doubles stored as the given property across all objects matching the query. More...
|
|
OBX_float_array * | obx_query_prop_find_floats (OBX_query_prop *query, const float *value_if_null) |
| Return an array of int stored as the given property across all objects matching the query. More...
|
|
OBX_observer * | obx_observe (OBX_store *store, obx_observer *callback, void *user_data) |
| Create an observer (callback) to be notified about all data changes (for all object types). The callback is invoked right after a successful commit. More...
|
|
OBX_observer * | obx_observe_single_type (OBX_store *store, obx_schema_id type_id, obx_observer_single_type *callback, void *user_data) |
| Create an observer (callback) to be notified about data changes for a given object type. The callback is invoked right after a successful commit. More...
|
|
obx_err | obx_observer_close (OBX_observer *observer) |
| Free the memory used by the given observer and unsubscribe it from its box or query. More...
|
|
void | obx_bytes_free (OBX_bytes *bytes) |
|
OBX_bytes_array * | obx_bytes_array (size_t count) |
| Allocate a bytes array struct of the given size, ready for the data to be pushed. More...
|
|
obx_err | obx_bytes_array_set (OBX_bytes_array *array, size_t index, const void *data, size_t size) |
| Set the given data as the index in the bytes array. The data is not copied, just referenced through the pointer. More...
|
|
void | obx_bytes_array_free (OBX_bytes_array *array) |
| Free the bytes array struct. More...
|
|
OBX_id_array * | obx_id_array (const obx_id *ids, size_t count) |
| Create an ID array struct, copying the given IDs as the contents. More...
|
|
void | obx_id_array_free (OBX_id_array *array) |
| Free the array struct. More...
|
|
void | obx_string_array_free (OBX_string_array *array) |
| Free the array struct. More...
|
|
void | obx_int64_array_free (OBX_int64_array *array) |
| Free the array struct. More...
|
|
void | obx_int32_array_free (OBX_int32_array *array) |
| Free the array struct. More...
|
|
void | obx_int16_array_free (OBX_int16_array *array) |
| Free the array struct. More...
|
|
void | obx_int8_array_free (OBX_int8_array *array) |
| Free the array struct. More...
|
|
void | obx_double_array_free (OBX_double_array *array) |
| Free the array struct. More...
|
|
void | obx_float_array_free (OBX_float_array *array) |
| Free the array struct. More...
|
|
void | obx_posix_sem_prefix_set (const char *prefix) |
| Only for Apple platforms: set the prefix to use for mutexes based on POSIX semaphores. You must supply the application group identifier for sand-boxed macOS apps here; see also: https://developer.apple.com/library/archive/documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxInDepth/AppSandboxInDepth.html#//apple_ref/doc/uid/TP40011183-CH3-SW24. More...
|
|
bool | obx_sync_available () |
| Before calling any of the other sync APIs, ensure that those are actually available. If the application is linked a non-sync ObjectBox library, this allows you to fail gracefully. More...
|
|
OBX_sync * | obx_sync (OBX_store *store, const char *server_uri) |
| Creates a sync client associated with the given store and sync server URI. This does not initiate any connection attempts yet: call obx_sync_start() to do so. Before obx_sync_start(), you must configure credentials via obx_sync_credentials. By default a sync client automatically receives updates from the server once login succeeded. To configure this differently, call obx_sync_request_updates_mode() with the wanted mode. More...
|
|
obx_err | obx_sync_close (OBX_sync *sync) |
| Stops and closes (deletes) the sync client freeing its resources. More...
|
|
obx_err | obx_sync_credentials (OBX_sync *sync, OBXSyncCredentialsType type, const void *data, size_t size) |
| Sets credentials to authenticate the client with the server. See OBXSyncCredentialsType for available options. The accepted OBXSyncCredentials type depends on your sync-server configuration. More...
|
|
obx_err | obx_sync_max_messages_in_flight (OBX_sync *sync, int value) |
| Configures the maximum number of outgoing TX messages that can be sent without an ACK from the server. More...
|
|
obx_err | obx_sync_request_updates_mode (OBX_sync *sync, OBXRequestUpdatesMode mode) |
| Switches operation mode that's initialized after successful login Must be called before obx_sync_start (returns OBX_ERROR_ILLEGAL_STATE if it was already started) More...
|
|
obx_err | obx_sync_start (OBX_sync *sync) |
| Once the sync client is configured, you can "start" it to initiate synchronization. This method triggers communication in the background and will return immediately. If the synchronization destination is reachable, this background thread will connect to the server, log in (authenticate) and, depending on "update request mode", start syncing data. If the device, network or server is currently offline, connection attempts will be retried later using increasing backoff intervals. More...
|
|
obx_err | obx_sync_stop (OBX_sync *sync) |
| Stops this sync client and thus stopping the synchronization. Does nothing if it is already stopped. More...
|
|
OBXSyncState | obx_sync_state (OBX_sync *sync) |
| Gets the current state of the sync client (0 on error, e.g. given sync was NULL) More...
|
|
obx_err | obx_sync_wait_for_logged_in_state (OBX_sync *sync, uint64_t timeout_millis) |
| Waits for the sync client to get into the given state or until the given timeout is reached. For an asynchronous alternative, please check the listeners. More...
|
|
obx_err | obx_sync_updates_request (OBX_sync *sync, bool subscribe_for_pushes) |
| Request updates from the server since we last synced our database. More...
|
|
obx_err | obx_sync_updates_cancel (OBX_sync *sync) |
| Cancel updates from the server (once received, the server stops sending updates). The counterpart to obx_sync_updates_request(). This should only be called in "logged in" state and there are no delivery guarantees given. More...
|
|
obx_err | obx_sync_outgoing_message_count (OBX_sync *sync, uint64_t limit, uint64_t *out_count) |
| Count the number of messages in the outgoing queue, i.e. those waiting to be sent to the server. More...
|
|
obx_err | obx_sync_full (OBX_sync *sync) |
| Experimental. This API is likely to be replaced/removed in a future version. Quickly bring our database up-to-date in a single transaction, without transmitting all the history. Good for initial sync of new clients. More...
|
|
void | obx_sync_listener_connect (OBX_sync *sync, OBX_sync_listener_connect *listener, void *listener_arg) |
| Set or overwrite a previously set 'connect' listener. More...
|
|
void | obx_sync_listener_disconnect (OBX_sync *sync, OBX_sync_listener_disconnect *listener, void *listener_arg) |
| Set or overwrite a previously set 'disconnect' listener. More...
|
|
void | obx_sync_listener_login (OBX_sync *sync, OBX_sync_listener_login *listener, void *listener_arg) |
| Set or overwrite a previously set 'login' listener. More...
|
|
void | obx_sync_listener_login_failure (OBX_sync *sync, OBX_sync_listener_login_failure *listener, void *listener_arg) |
| Set or overwrite a previously set 'login failure' listener. More...
|
|
void | obx_sync_listener_complete (OBX_sync *sync, OBX_sync_listener_complete *listener, void *listener_arg) |
| Set or overwrite a previously set 'complete' listener - notifies when the latest sync has finished. More...
|
|
void | obx_sync_listener_change (OBX_sync *sync, OBX_sync_listener_change *listener, void *listener_arg) |
| Set or overwrite a previously set 'change' listener - provides information about incoming changes. More...
|
|