quasardb C API
Loading...
Searching...
No Matches
Data Structures | Macros | Typedefs | Enumerations | Functions
client.h File Reference
#include "error.h"
#include <stddef.h>
#include <time.h>
#include <stdint.h>
#include "option.h"

Data Structures

struct  qdb_timespec_t
 A structure representing an elapsed time since epoch (cross-platform equivalent of timespec structure) More...
 
struct  qdb_remote_node_t
 A structure representing the address of a quasardb node. More...
 
struct  qdb_id_t
 A cluster-wide unique identifier. More...
 
struct  qdb_string_t
 A structure representing a character string of the given length. More...
 
struct  qdb_entry_metadata_t
 A structure representing the metadata of an entry in the database. More...
 
struct  qdb_compact_params_t
 The optional parameters for a compact operation. More...
 

Macros

#define qdb_never_expires   ((qdb_time_t)0u)
 An arbitrary time value representing the "no expiration" time value.
 
#define qdb_preserve_expiration   ((qdb_time_t)0xFFFFFFFFFFFFFFFFULL)
 An arbitrary time value representing the "preserve existing expiration" time value.
 

Typedefs

typedef enum qdb_limits_t qdb_limits_t
 An enumeration of API limits.
 

Enumerations

enum  qdb_limits_t { qdb_l_max_alias_length = 1024 , qdb_l_alias_max_length = qdb_l_max_alias_length , qdb_l_max_user_name_length = 120 , qdb_max_user_name_length = qdb_l_max_user_name_length }
 An enumeration of API limits. More...
 
enum  qdb_protocol_t { qdb_p_tcp = 0 }
 
enum  qdb_entry_type_t {
  qdb_entry_uninitialized = -1 , qdb_entry_blob = 0 , qdb_entry_integer = 1 , qdb_entry_hset = 2 ,
  qdb_entry_tag = 3 , qdb_entry_deque = 4 , qdb_entry_stream = 5 , qdb_entry_ts = 6 ,
  qdb_entry_double = 10 , qdb_entry_timestamp = 11 , qdb_entry_string = 12 , qdb_entry_internal_ts_double_bucket = 20 ,
  qdb_entry_internal_ts_blob_bucket = 21 , qdb_entry_internal_ts_int64_bucket = 22 , qdb_entry_internal_ts_timestamp_bucket = 23 , qdb_entry_internal_ts_string_bucket = 24 ,
  qdb_entry_internal_ts_double_bucket_index = 30 , qdb_entry_internal_ts_blob_bucket_index = 31 , qdb_entry_internal_ts_int64_bucket_index = 32 , qdb_entry_internal_ts_timestamp_bucket_index = 33 ,
  qdb_entry_internal_ts_string_bucket_index = 34 , qdb_entry_internal_directory = 50
}
 
enum  qdb_compact_options_t { qdb_compact_full = 0 , qdb_compact_piecewise = 1 , qdb_compact_cf = 2 , qdb_compact_prefix = 3 }
 

Functions

QDB_API_LINKAGE const char * qdb_version (void)
 Returns a null-terminated string describing the API version.
 
QDB_API_LINKAGE const char * qdb_build (void)
 Returns a null-terminated string describing the exact API build.
 
QDB_API_LINKAGE qdb_error_t qdb_open (qdb_handle_t *handle, qdb_protocol_t proto)
 Creates a qdb_handle_t. No connection will be established.
 
QDB_API_LINKAGE qdb_handle_t qdb_open_tcp (void)
 Creates a TCP/IP qdb_handle_t. No connection will be established.
 
QDB_API_LINKAGE qdb_error_t qdb_get_last_error (qdb_handle_t handle, qdb_error_t *error, qdb_string_t **message)
 Describes the last error code returned from the given handle.
 
QDB_API_LINKAGE qdb_error_t qdb_connect (qdb_handle_t handle, const char *uri)
 Binds the client instance to a quasardb cluster and connect to at least one node within.
 
QDB_API_LINKAGE qdb_error_t qdb_close (qdb_handle_t handle)
 Closes the handle previously opened with qdb_open or qdb_open_tcp.
 
QDB_API_LINKAGE qdb_error_t qdb_copy_alloc_buffer (qdb_handle_t handle, const void *source_buffer, qdb_size_t source_buffer_size, void **dest_buffer)
 Creates a clone of a buffer using API's high-performance memory allocator.
 
QDB_API_LINKAGE qdb_error_t qdb_alloc_buffer (qdb_handle_t handle, qdb_size_t buffer_size, void **dest_buffer)
 Allocates a buffer managed by the Quasar API.
 
QDB_API_LINKAGE void qdb_release (qdb_handle_t handle, const void *buffer)
 Releases an API-allocated buffer.
 
QDB_API_LINKAGE qdb_error_t qdb_remove (qdb_handle_t handle, const char *alias)
 Removes an entry from the cluster, regardless of its type.
 
QDB_API_LINKAGE qdb_error_t qdb_expires_at (qdb_handle_t handle, const char *alias, qdb_time_t expiry_time)
 Sets the absolute expiration time of an entry, if the type supports expiration.
 
QDB_API_LINKAGE qdb_error_t qdb_expires_from_now (qdb_handle_t handle, const char *alias, qdb_time_t expiry_delta)
 Sets the expiration time of an entry, relative to the current time of the client, if the type supports expiration.
 
QDB_API_LINKAGE qdb_error_t qdb_get_expiry_time (qdb_handle_t handle, const char *alias, qdb_time_t *expiry_time)
 Retrieves the absolute expiration time of the given entry.
 
QDB_API_LINKAGE qdb_error_t qdb_get_location (qdb_handle_t handle, const char *alias, qdb_remote_node_t *location)
 Returns the primary node of an entry.
 
QDB_API_LINKAGE qdb_error_t qdb_get_type (qdb_handle_t handle, const char *alias, qdb_entry_type_t *entry_type)
 Gets the type of an entry, if it exists.
 
QDB_API_LINKAGE qdb_error_t qdb_get_metadata (qdb_handle_t handle, const char *alias, qdb_entry_metadata_t *entry_metadata)
 Gets the meta-information about an entry, if it exists.
 
QDB_API_LINKAGE qdb_error_t qdb_get_metadata_by_id (qdb_handle_t handle, const qdb_id_t *reference, qdb_entry_metadata_t *entry_metadata)
 Gets the meta-information about an entry, if it exists.
 
QDB_API_LINKAGE qdb_error_t qdb_purge_all (qdb_handle_t handle, int timeout_ms)
 Removes irremediably all data from all the nodes of the cluster.
 
QDB_API_LINKAGE qdb_error_t qdb_trim_all (qdb_handle_t handle, int pause_ms, int timeout_ms)
 Trims all data on all the nodes of the cluster.
 
QDB_API_LINKAGE qdb_error_t qdb_trim_all_progress (qdb_handle_t handle, qdb_uint_t *run)
 Get the trimming process progress.
 
QDB_API_LINKAGE qdb_error_t qdb_abort_trim_all (qdb_handle_t handle)
 Abort the running trimming process.
 
QDB_API_LINKAGE qdb_error_t qdb_trim_entry (qdb_handle_t handle, const char *alias, qdb_uint_t *bytes_trimmed)
 Trims specific key.
 
QDB_API_LINKAGE qdb_error_t qdb_cluster_compact (qdb_handle_t handle, const qdb_compact_params_t *params)
 Compacts all data in the persistence layer on all the nodes of the cluster.
 
QDB_API_LINKAGE qdb_error_t qdb_cluster_get_compact_progress (qdb_handle_t handle, qdb_uint_t *run)
 Get the compaction process progress.
 
QDB_API_LINKAGE qdb_error_t qdb_cluster_abort_compact (qdb_handle_t handle)
 Abort the running compaction process.
 
QDB_API_LINKAGE qdb_error_t qdb_cluster_sync_with_master (qdb_handle_t handle)
 For the read only cluster call the synchronization with the master DB.
 
QDB_API_LINKAGE qdb_error_t qdb_cluster_get_sync_with_master_progress (qdb_handle_t handle, qdb_uint_t *run)
 For the read only cluster get the synchronization with the master DB process progress.
 
QDB_API_LINKAGE qdb_error_t qdb_purge_cache (qdb_handle_t handle, int timeout_ms)
 Removes all cached data from all the nodes of the cluster.
 
QDB_API_LINKAGE qdb_error_t qdb_wait_for_stabilization (qdb_handle_t handle, int timeout_ms)
 Wait for all nodes of the cluster to be stabilized.
 
QDB_API_LINKAGE qdb_error_t qdb_cluster_endpoints (qdb_handle_t handle, qdb_remote_node_t **endpoints, qdb_size_t *endpoints_count)
 Retrieve a sorted array of endpoints.
 
QDB_API_LINKAGE qdb_error_t qdb_cluster_reload_user_config (qdb_handle_t handle)
 Reload user configuration from file.
 

Enumeration Type Documentation

◆ qdb_compact_options_t

Enumerator
qdb_compact_full 

Compact the entire database in a single operation.

qdb_compact_piecewise 

Compact the database one slice at a time (reduces peak disk usage during compaction)

qdb_compact_cf 

Compact the only specified column family.

qdb_compact_prefix 

Compact the database for the only specified key prefix.

◆ qdb_entry_type_t

Enumerator
qdb_entry_uninitialized 

Uninitialized value.

qdb_entry_blob 

Binary large object (blob).

qdb_entry_integer 

Signed 64-bit integer.

qdb_entry_hset 

Distributed hash set.

qdb_entry_tag 

Tag.

qdb_entry_deque 

Distributed double-entry queue (deque).

qdb_entry_stream 

Distributed binary stream.

qdb_entry_ts 

Distributed time series.

qdb_entry_double 

Double-precision floating point number.

qdb_entry_timestamp 

128-bit timestamp with nanosecond precision.

qdb_entry_string 

UTF-8 string.

◆ qdb_protocol_t

Enumerator
qdb_p_tcp 

Uses TCP/IP to communicate with the cluster. This is currently the only supported network protocol.