file cassandra.h
C/C++ driver for Apache Cassandra. Uses the Cassandra Query Language versions 3 over the Cassandra Binary Protocol (versions 1 or 2).
Macros
CASS_VERSION_MAJOR
=2
CASS_VERSION_MINOR
=3
CASS_VERSION_PATCH
=0
CASS_VERSION_SUFFIX
=""
CASS_INET_V4_LENGTH
=4
The size of an IPv4 address
CASS_INET_V6_LENGTH
=16
The size of an IPv6 address
CASS_INET_STRING_LENGTH
=46
The size of an inet string including a null terminator.
CASS_UUID_STRING_LENGTH
=37
The size of a hexadecimal UUID string including a null terminator.
CASS_CONSISTENCY_MAP
=XX(CASS_CONSISTENCY_UNKNOWN, "UNKNOWN") \
XX(CASS_CONSISTENCY_ANY, "ANY") \
XX(CASS_CONSISTENCY_ONE, "ONE") \
XX(CASS_CONSISTENCY_TWO, "TWO") \
XX(CASS_CONSISTENCY_THREE, "THREE") \
XX(CASS_CONSISTENCY_QUORUM, "QUORUM") \
XX(CASS_CONSISTENCY_ALL, "ALL") \
XX(CASS_CONSISTENCY_LOCAL_QUORUM, "LOCAL_QUORUM") \
XX(CASS_CONSISTENCY_EACH_QUORUM, "EACH_QUORUM") \
XX(CASS_CONSISTENCY_SERIAL, "SERIAL") \
XX(CASS_CONSISTENCY_LOCAL_SERIAL, "LOCAL_SERIAL") \
XX(CASS_CONSISTENCY_LOCAL_ONE, "LOCAL_ONE")
CASS_WRITE_TYPE_MAP
=XX(CASS_WRITE_TYPE_SIMPLE, "SIMPLE") \
XX(CASS_WRITE_TYPE_BATCH, "BATCH") \
XX(CASS_WRITE_TYPE_UNLOGGED_BATCH, "UNLOGGED_BATCH") \
XX(CASS_WRITE_TYPE_COUNTER, "COUNTER") \
XX(CASS_WRITE_TYPE_BATCH_LOG, "BATCH_LOG") \
XX(CASS_WRITE_TYPE_CAS, "CAS")
CASS_LOG_MAX_MESSAGE_SIZE
=256
Maximum size of a log message
Types
cass_float_t
typedef float cass_float_t
cass_double_t
typedef double cass_double_t
cass_int8_t
typedef char cass_int8_t
cass_uint8_t
typedef unsigned char cass_uint8_t
cass_int16_t
typedef short cass_int16_t
cass_uint16_t
typedef unsigned short cass_uint16_t
cass_int32_t
typedef int cass_int32_t
cass_uint32_t
typedef unsigned int cass_uint32_t
cass_int64_t
typedef long long cass_int64_t
cass_uint64_t
typedef unsigned long long cass_uint64_t
cass_byte_t
typedef cass_uint8_t cass_byte_t
cass_duration_t
typedef cass_uint64_t cass_duration_t
CassCluster
typedef struct CassCluster_ CassCluster
CassSession
typedef struct CassSession_ CassSession
CassStatement
typedef struct CassStatement_ CassStatement
CassBatch
typedef struct CassBatch_ CassBatch
CassFuture
typedef struct CassFuture_ CassFuture
CassPrepared
typedef struct CassPrepared_ CassPrepared
CassResult
typedef struct CassResult_ CassResult
CassErrorResult
typedef struct CassErrorResult_ CassErrorResult
CassIterator
typedef struct CassIterator_ CassIterator
CassRow
typedef struct CassRow_ CassRow
CassValue
typedef struct CassValue_ CassValue
CassDataType
typedef struct CassDataType_ CassDataType
CassFunctionMeta
typedef struct CassFunctionMeta_ CassFunctionMeta
CassAggregateMeta
typedef struct CassAggregateMeta_ CassAggregateMeta
CassCollection
typedef struct CassCollection_ CassCollection
CassTuple
typedef struct CassTuple_ CassTuple
CassUserType
typedef struct CassUserType_ CassUserType
CassSsl
typedef struct CassSsl_ CassSsl
CassSchemaMeta
typedef struct CassSchemaMeta_ CassSchemaMeta
CassKeyspaceMeta
typedef struct CassKeyspaceMeta_ CassKeyspaceMeta
CassTableMeta
typedef struct CassTableMeta_ CassTableMeta
CassMaterializedViewMeta
typedef struct CassMaterializedViewMeta_ CassMaterializedViewMeta
CassColumnMeta
typedef struct CassColumnMeta_ CassColumnMeta
CassIndexMeta
typedef struct CassIndexMeta_ CassIndexMeta
CassUuidGen
typedef struct CassUuidGen_ CassUuidGen
CassTimestampGen
typedef struct CassTimestampGen_ CassTimestampGen
CassRetryPolicy
typedef struct CassRetryPolicy_ CassRetryPolicy
CassCustomPayload
typedef struct CassCustomPayload_ CassCustomPayload
CassFutureCallback
typedef void(* CassFutureCallback) (CassFuture *future, void *data)
A callback that’s notified when the future is set.
CassLogCallback
typedef void(* CassLogCallback) (const CassLogMessage *message, void *data)
A callback that’s used to handle logging.
Enums
cass_bool_t
-
cass_false
= 0 -
cass_true
= 1
CassConsistency
-
CASS_CONSISTENCY_UNKNOWN
= 0xFFFF -
CASS_CONSISTENCY_ANY
= 0x0000 -
CASS_CONSISTENCY_ONE
= 0x0001 -
CASS_CONSISTENCY_TWO
= 0x0002 -
CASS_CONSISTENCY_THREE
= 0x0003 -
CASS_CONSISTENCY_QUORUM
= 0x0004 -
CASS_CONSISTENCY_ALL
= 0x0005 -
CASS_CONSISTENCY_LOCAL_QUORUM
= 0x0006 -
CASS_CONSISTENCY_EACH_QUORUM
= 0x0007 -
CASS_CONSISTENCY_SERIAL
= 0x0008 -
CASS_CONSISTENCY_LOCAL_SERIAL
= 0x0009 -
CASS_CONSISTENCY_LOCAL_ONE
= 0x000A
CassWriteType
CASS_WRITE_TYPE_UKNOWN
CASS_WRITE_TYPE_SIMPLE
CASS_WRITE_TYPE_BATCH
CASS_WRITE_TYPE_UNLOGGED_BATCH
CASS_WRITE_TYPE_COUNTER
CASS_WRITE_TYPE_BATCH_LOG
CASS_WRITE_TYPE_CAS
CassColumnType
CASS_COLUMN_TYPE_REGULAR
CASS_COLUMN_TYPE_PARTITION_KEY
CASS_COLUMN_TYPE_CLUSTERING_KEY
CASS_COLUMN_TYPE_STATIC
CASS_COLUMN_TYPE_COMPACT_VALUE
CassIndexType
CASS_INDEX_TYPE_UNKNOWN
CASS_INDEX_TYPE_KEYS
CASS_INDEX_TYPE_CUSTOM
CASS_INDEX_TYPE_COMPOSITES
CassValueType
-
CASS_VALUE_TYPE_UNKNOWN
= 0xFFFF -
CASS_VALUE_TYPE_CUSTOM
= 0x0000 -
CASS_VALUE_TYPE_ASCII
= 0x0001 -
CASS_VALUE_TYPE_BIGINT
= 0x0002 -
CASS_VALUE_TYPE_BLOB
= 0x0003 -
CASS_VALUE_TYPE_BOOLEAN
= 0x0004 -
CASS_VALUE_TYPE_COUNTER
= 0x0005 -
CASS_VALUE_TYPE_DECIMAL
= 0x0006 -
CASS_VALUE_TYPE_DOUBLE
= 0x0007 -
CASS_VALUE_TYPE_FLOAT
= 0x0008 -
CASS_VALUE_TYPE_INT
= 0x0009 -
CASS_VALUE_TYPE_TEXT
= 0x000A -
CASS_VALUE_TYPE_TIMESTAMP
= 0x000B -
CASS_VALUE_TYPE_UUID
= 0x000C -
CASS_VALUE_TYPE_VARCHAR
= 0x000D -
CASS_VALUE_TYPE_VARINT
= 0x000E -
CASS_VALUE_TYPE_TIMEUUID
= 0x000F -
CASS_VALUE_TYPE_INET
= 0x0010 -
CASS_VALUE_TYPE_DATE
= 0x0011 -
CASS_VALUE_TYPE_TIME
= 0x0012 -
CASS_VALUE_TYPE_SMALL_INT
= 0x0013 -
CASS_VALUE_TYPE_TINY_INT
= 0x0014 -
CASS_VALUE_TYPE_LIST
= 0x0020 -
CASS_VALUE_TYPE_MAP
= 0x0021 -
CASS_VALUE_TYPE_SET
= 0x0022 -
CASS_VALUE_TYPE_UDT
= 0x0030 -
CASS_VALUE_TYPE_TUPLE
= 0x0031
CassClusteringOrder
CASS_CLUSTERING_ORDER_NONE
CASS_CLUSTERING_ORDER_ASC
CASS_CLUSTERING_ORDER_DESC
CassCollectionType
-
CASS_COLLECTION_TYPE_LIST
= CASS_VALUE_TYPE_LIST -
CASS_COLLECTION_TYPE_MAP
= CASS_VALUE_TYPE_MAP -
CASS_COLLECTION_TYPE_SET
= CASS_VALUE_TYPE_SET
CassBatchType
-
CASS_BATCH_TYPE_LOGGED
= 0x00 -
CASS_BATCH_TYPE_UNLOGGED
= 0x01 -
CASS_BATCH_TYPE_COUNTER
= 0x02
CassIteratorType
CASS_ITERATOR_TYPE_RESULT
CASS_ITERATOR_TYPE_ROW
CASS_ITERATOR_TYPE_COLLECTION
CASS_ITERATOR_TYPE_MAP
CASS_ITERATOR_TYPE_TUPLE
CASS_ITERATOR_TYPE_USER_TYPE_FIELD
CASS_ITERATOR_TYPE_META_FIELD
CASS_ITERATOR_TYPE_KEYSPACE_META
CASS_ITERATOR_TYPE_TABLE_META
CASS_ITERATOR_TYPE_TYPE_META
CASS_ITERATOR_TYPE_FUNCTION_META
CASS_ITERATOR_TYPE_AGGREGATE_META
CASS_ITERATOR_TYPE_COLUMN_META
CASS_ITERATOR_TYPE_INDEX_META
CASS_ITERATOR_TYPE_MATERIALIZED_VIEW_META
CassLogLevel
CASS_LOG_DISABLED
CASS_LOG_CRITICAL
CASS_LOG_ERROR
CASS_LOG_WARN
CASS_LOG_INFO
CASS_LOG_DEBUG
CASS_LOG_TRACE
CassSslVerifyFlags
CASS_SSL_VERIFY_NONE
CASS_SSL_VERIFY_PEER_CERT
CASS_SSL_VERIFY_PEER_IDENTITY
CassErrorSource
CASS_ERROR_SOURCE_NONE
CASS_ERROR_SOURCE_LIB
CASS_ERROR_SOURCE_SERVER
CASS_ERROR_SOURCE_SSL
CASS_ERROR_SOURCE_COMPRESSION
CassError
-
CASS_OK
= 0 -
CASS_ERROR_LIB_BAD_PARAMS
= (( CASS_ERROR_SOURCE_LIB << 24) | 1 ) -
CASS_ERROR_LIB_NO_STREAMS
= (( CASS_ERROR_SOURCE_LIB << 24) | 2 ) -
CASS_ERROR_LIB_UNABLE_TO_INIT
= (( CASS_ERROR_SOURCE_LIB << 24) | 3 ) -
CASS_ERROR_LIB_MESSAGE_ENCODE
= (( CASS_ERROR_SOURCE_LIB << 24) | 4 ) -
CASS_ERROR_LIB_HOST_RESOLUTION
= (( CASS_ERROR_SOURCE_LIB << 24) | 5 ) -
CASS_ERROR_LIB_UNEXPECTED_RESPONSE
= (( CASS_ERROR_SOURCE_LIB << 24) | 6 ) -
CASS_ERROR_LIB_REQUEST_QUEUE_FULL
= (( CASS_ERROR_SOURCE_LIB << 24) | 7 ) -
CASS_ERROR_LIB_NO_AVAILABLE_IO_THREAD
= (( CASS_ERROR_SOURCE_LIB << 24) | 8 ) -
CASS_ERROR_LIB_WRITE_ERROR
= (( CASS_ERROR_SOURCE_LIB << 24) | 9 ) -
CASS_ERROR_LIB_NO_HOSTS_AVAILABLE
= (( CASS_ERROR_SOURCE_LIB << 24) | 10 ) -
CASS_ERROR_LIB_INDEX_OUT_OF_BOUNDS
= (( CASS_ERROR_SOURCE_LIB << 24) | 11 ) -
CASS_ERROR_LIB_INVALID_ITEM_COUNT
= (( CASS_ERROR_SOURCE_LIB << 24) | 12 ) -
CASS_ERROR_LIB_INVALID_VALUE_TYPE
= (( CASS_ERROR_SOURCE_LIB << 24) | 13 ) -
CASS_ERROR_LIB_REQUEST_TIMED_OUT
= (( CASS_ERROR_SOURCE_LIB << 24) | 14 ) -
CASS_ERROR_LIB_UNABLE_TO_SET_KEYSPACE
= (( CASS_ERROR_SOURCE_LIB << 24) | 15 ) -
CASS_ERROR_LIB_CALLBACK_ALREADY_SET
= (( CASS_ERROR_SOURCE_LIB << 24) | 16 ) -
CASS_ERROR_LIB_INVALID_STATEMENT_TYPE
= (( CASS_ERROR_SOURCE_LIB << 24) | 17 ) -
CASS_ERROR_LIB_NAME_DOES_NOT_EXIST
= (( CASS_ERROR_SOURCE_LIB << 24) | 18 ) -
CASS_ERROR_LIB_UNABLE_TO_DETERMINE_PROTOCOL
= (( CASS_ERROR_SOURCE_LIB << 24) | 19 ) -
CASS_ERROR_LIB_NULL_VALUE
= (( CASS_ERROR_SOURCE_LIB << 24) | 20 ) -
CASS_ERROR_LIB_NOT_IMPLEMENTED
= (( CASS_ERROR_SOURCE_LIB << 24) | 21 ) -
CASS_ERROR_LIB_UNABLE_TO_CONNECT
= (( CASS_ERROR_SOURCE_LIB << 24) | 22 ) -
CASS_ERROR_LIB_UNABLE_TO_CLOSE
= (( CASS_ERROR_SOURCE_LIB << 24) | 23 ) -
CASS_ERROR_LIB_NO_PAGING_STATE
= (( CASS_ERROR_SOURCE_LIB << 24) | 24 ) -
CASS_ERROR_LIB_PARAMETER_UNSET
= (( CASS_ERROR_SOURCE_LIB << 24) | 25 ) -
CASS_ERROR_LIB_INVALID_ERROR_RESULT_TYPE
= (( CASS_ERROR_SOURCE_LIB << 24) | 26 ) -
CASS_ERROR_LIB_INVALID_FUTURE_TYPE
= (( CASS_ERROR_SOURCE_LIB << 24) | 27 ) -
CASS_ERROR_SERVER_SERVER_ERROR
= (( CASS_ERROR_SOURCE_SERVER << 24) | 0x0000 ) -
CASS_ERROR_SERVER_PROTOCOL_ERROR
= (( CASS_ERROR_SOURCE_SERVER << 24) | 0x000A ) -
CASS_ERROR_SERVER_BAD_CREDENTIALS
= (( CASS_ERROR_SOURCE_SERVER << 24) | 0x0100 ) -
CASS_ERROR_SERVER_UNAVAILABLE
= (( CASS_ERROR_SOURCE_SERVER << 24) | 0x1000 ) -
CASS_ERROR_SERVER_OVERLOADED
= (( CASS_ERROR_SOURCE_SERVER << 24) | 0x1001 ) -
CASS_ERROR_SERVER_IS_BOOTSTRAPPING
= (( CASS_ERROR_SOURCE_SERVER << 24) | 0x1002 ) -
CASS_ERROR_SERVER_TRUNCATE_ERROR
= (( CASS_ERROR_SOURCE_SERVER << 24) | 0x1003 ) -
CASS_ERROR_SERVER_WRITE_TIMEOUT
= (( CASS_ERROR_SOURCE_SERVER << 24) | 0x1100 ) -
CASS_ERROR_SERVER_READ_TIMEOUT
= (( CASS_ERROR_SOURCE_SERVER << 24) | 0x1200 ) -
CASS_ERROR_SERVER_READ_FAILURE
= (( CASS_ERROR_SOURCE_SERVER << 24) | 0x1300 ) -
CASS_ERROR_SERVER_FUNCTION_FAILURE
= (( CASS_ERROR_SOURCE_SERVER << 24) | 0x1400 ) -
CASS_ERROR_SERVER_WRITE_FAILURE
= (( CASS_ERROR_SOURCE_SERVER << 24) | 0x1500 ) -
CASS_ERROR_SERVER_SYNTAX_ERROR
= (( CASS_ERROR_SOURCE_SERVER << 24) | 0x2000 ) -
CASS_ERROR_SERVER_UNAUTHORIZED
= (( CASS_ERROR_SOURCE_SERVER << 24) | 0x2100 ) -
CASS_ERROR_SERVER_INVALID_QUERY
= (( CASS_ERROR_SOURCE_SERVER << 24) | 0x2200 ) -
CASS_ERROR_SERVER_CONFIG_ERROR
= (( CASS_ERROR_SOURCE_SERVER << 24) | 0x2300 ) -
CASS_ERROR_SERVER_ALREADY_EXISTS
= (( CASS_ERROR_SOURCE_SERVER << 24) | 0x2400 ) -
CASS_ERROR_SERVER_UNPREPARED
= (( CASS_ERROR_SOURCE_SERVER << 24) | 0x2500 ) -
CASS_ERROR_SSL_INVALID_CERT
= (( CASS_ERROR_SOURCE_SSL << 24) | 1 ) -
CASS_ERROR_SSL_INVALID_PRIVATE_KEY
= (( CASS_ERROR_SOURCE_SSL << 24) | 2 ) -
CASS_ERROR_SSL_NO_PEER_CERT
= (( CASS_ERROR_SOURCE_SSL << 24) | 3 ) -
CASS_ERROR_SSL_INVALID_PEER_CERT
= (( CASS_ERROR_SOURCE_SSL << 24) | 4 ) -
CASS_ERROR_SSL_IDENTITY_MISMATCH
= (( CASS_ERROR_SOURCE_SSL << 24) | 5 ) -
CASS_ERROR_SSL_PROTOCOL_ERROR
= (( CASS_ERROR_SOURCE_SSL << 24) | 6 )
Functions
CassValueType
cass_data_type_type
( data_type )Gets the value type of the specified data type.
cass_bool_t
cass_data_type_is_frozen
( data_type )Gets whether a data type is frozen.
Requires Cassandra: 2.1+
CassError
cass_data_type_type_name
( data_type, type_name, type_name_length )Gets the type name of a UDT data type.
Note: Only valid for UDT data types.
CassError
cass_data_type_set_type_name
( data_type, type_name )Sets the type name of a UDT data type.
Note: Only valid for UDT data types.
CassError
cass_data_type_keyspace
( data_type, keyspace, keyspace_length )Gets the type name of a UDT data type.
Note: Only valid for UDT data types.
Requires Cassandra: 2.1+
CassError
cass_data_type_set_keyspace
( data_type, keyspace )Sets the keyspace of a UDT data type.
Note: Only valid for UDT data types.
Requires Cassandra: 2.1+
CassError
cass_data_type_class_name
( data_type, class_name, class_name_length )Gets the class name of a custom data type.
Note: Only valid for custom data types.
CassError
cass_data_type_set_class_name
( data_type, class_name )Sets the class name of a custom data type.
Note: Only valid for custom data types.
size_t
cass_data_type_sub_type_count
( data_type )Gets the sub-data type count of a UDT (user defined type), tuple or collection.
Note: Only valid for UDT, tuple and collection data types.
size_t
cass_data_sub_type_count
( data_type )Deprecated:
const CassDataType *
cass_data_type_sub_data_type
( data_type, index )Gets the sub-data type count of a UDT (user defined type), tuple or collection.
Note: Only valid for UDT, tuple and collection data types.
Note: Only valid for UDT, tuple and collection data types.
const CassDataType *
cass_data_type_sub_data_type_by_name
( data_type, name )Gets the sub-data type of a UDT (user defined type) at the specified index.
Note: Only valid for UDT data types.
Requires Cassandra: 2.1+
CassError
cass_data_type_sub_type_name
( data_type, index, name, name_length )Gets the sub-type name of a UDT (user defined type) at the specified index.
Requires Cassandra: 2.1+
Note: Only valid for UDT data types.
CassError
cass_data_type_add_sub_type
( data_type, sub_data_type )Adds a sub-data type to a tuple or collection.
Note: Only valid for tuple and collection data types.
CassError
cass_data_type_add_sub_type_by_name
( data_type, name, sub_data_type )Adds a sub-data type to a UDT (user defined type).
Note: Only valid for UDT data types.
Requires Cassandra: 2.1+
CassError
cass_data_type_add_sub_type_by_name_n
( data_type, name, name_length, sub_data_type )Same as cass_data_type_add_sub_type_by_name
, but with lengths for string parameters.
Note: Only valid for UDT data types.
Requires Cassandra: 2.1+
CassError
cass_data_type_add_sub_value_type
( data_type, sub_value_type )Adds a sub-data type to a tuple or collection using a value type.
Note: Only valid for tuple and collection data types.
CassError
cass_data_type_add_sub_value_type_by_name
( data_type, name, sub_value_type )Adds a sub-data type to a UDT (user defined type) using a value type.
Note: Only valid for UDT data types.
Requires Cassandra: 2.1+
CassError
cass_data_type_add_sub_value_type_by_name_n
( data_type, name, name_length, sub_value_type )Same as cass_data_type_add_sub_value_type_by_name
, but with lengths for string parameters.
Note: Only valid for UDT data types.
Requires Cassandra: 2.1+
const CassDataType *
cass_collection_data_type
( collection )Gets the data type of a collection.
const CassDataType *
cass_tuple_data_type
( tuple )Gets the data type of a tuple.
Requires Cassandra: 2.1+
const CassDataType *
cass_user_type_data_type
( user_type )Gets the data type of a user defined type.
Requires Cassandra: 2.1+
const char *
cass_consistency_string
( consistency )Gets the string for a consistency.
const char *
cass_write_type_string
( write_type )Gets the string for a write type.
const char *
cass_error_desc
( error )Gets a description for an error code.
void
cass_log_cleanup
( )Explicitly wait for the log to flush and deallocate resources. This MUST be the last call using the library. It is an error to call any cass_*() functions after this call.
Deprecated:
This is no longer useful and does nothing. Expect this to be removed in a few releases.
void
cass_log_set_level
( log_level )Sets the log level.
Note: This needs to be done before any call that might log, such as any of the cass_cluster_*() or cass_ssl_*() functions.
Default: CASS_LOG_WARN
void
cass_log_set_callback
( callback, data )Sets a callback for handling logging events.
Note: This needs to be done before any call that might log, such as any of the cass_cluster_*() or cass_ssl_*() functions.
Default: An internal callback that prints to stderr
void
cass_log_set_queue_size
( queue_size )Sets the log queue size.
Note: This needs to be done before any call that might log, such as any of the cass_cluster_*() or cass_ssl_*() functions.
Default: 2048
Deprecated:
This is no longer useful and does nothing. Expect this to be removed in a few releases.
const char *
cass_log_level_string
( log_level )Gets the string for a log level.
cass_uint32_t
cass_date_from_epoch
( epoch_secs )Converts a unix timestamp (in seconds) to the Cassandra “date” type. The “date” type represents the number of days since the Epoch (1970-01-01) with the Epoch centered at the value 231.
Requires Cassandra: 2.2+
cass_int64_t
cass_time_from_epoch
( epoch_secs )Converts a unix timestamp (in seconds) to the Cassandra “time” type. The “time” type represents the number of nanoseconds since midnight (range 0 to 86399999999999).
Requires Cassandra: 2.2+
cass_int64_t
cass_date_time_to_epoch
( date, time )Combines the Cassandra “date” and “time” types to Epoch time in seconds.
Requires Cassandra: 2.2+