diff --git a/binding.gyp b/binding.gyp index db97a7f..3756331 100644 --- a/binding.gyp +++ b/binding.gyp @@ -21,23 +21,24 @@ "src/query.cc", "src/type-mapper.cc", + "cpp-driver/src/abstract_data.cpp", "cpp-driver/src/address.cpp", "cpp-driver/src/auth.cpp", "cpp-driver/src/auth_requests.cpp", "cpp-driver/src/auth_responses.cpp", "cpp-driver/src/batch_request.cpp", - "cpp-driver/src/buffer.cpp", - "cpp-driver/src/buffer_collection.cpp", "cpp-driver/src/cluster.cpp", - "cpp-driver/src/cluster_metadata.cpp", + "cpp-driver/src/collection.cpp", "cpp-driver/src/collection_iterator.cpp", - "cpp-driver/src/common.cpp", "cpp-driver/src/connection.cpp", "cpp-driver/src/control_connection.cpp", + "cpp-driver/src/data_type.cpp", + "cpp-driver/src/data_type_parser.cpp", "cpp-driver/src/dc_aware_policy.cpp", "cpp-driver/src/error_response.cpp", "cpp-driver/src/event_response.cpp", "cpp-driver/src/execute_request.cpp", + "cpp-driver/src/external_types.cpp", "cpp-driver/src/future.cpp", "cpp-driver/src/get_time.cpp", "cpp-driver/src/handler.cpp", @@ -48,6 +49,7 @@ "cpp-driver/src/logger.cpp", "cpp-driver/src/map_iterator.cpp", "cpp-driver/src/md5.cpp", + "cpp-driver/src/metadata.cpp", "cpp-driver/src/multiple_request_handler.cpp", "cpp-driver/src/murmur3.cpp", "cpp-driver/src/pool.cpp", @@ -55,16 +57,18 @@ "cpp-driver/src/prepare_request.cpp", "cpp-driver/src/prepared.cpp", "cpp-driver/src/query_request.cpp", + "cpp-driver/src/random.cpp", "cpp-driver/src/register_request.cpp", "cpp-driver/src/replication_strategy.cpp", + "cpp-driver/src/request.cpp", "cpp-driver/src/request_handler.cpp", "cpp-driver/src/response.cpp", "cpp-driver/src/result_metadata.cpp", "cpp-driver/src/result_response.cpp", + "cpp-driver/src/retry_policy.cpp", "cpp-driver/src/ring_buffer.cpp", "cpp-driver/src/row.cpp", "cpp-driver/src/schema_change_handler.cpp", - "cpp-driver/src/schema_metadata.cpp", "cpp-driver/src/session.cpp", "cpp-driver/src/set_keyspace_handler.cpp", "cpp-driver/src/ssl.cpp", @@ -73,12 +77,17 @@ "cpp-driver/src/string_ref.cpp", "cpp-driver/src/supported_response.cpp", "cpp-driver/src/testing.cpp", + "cpp-driver/src/timestamp_generator.cpp", "cpp-driver/src/token_aware_policy.cpp", "cpp-driver/src/token_map.cpp", - "cpp-driver/src/type_parser.cpp", - "cpp-driver/src/types.cpp", + "cpp-driver/src/tuple.cpp", + "cpp-driver/src/user_type_field_iterator.cpp", + "cpp-driver/src/user_type_value.cpp", + "cpp-driver/src/utils.cpp", "cpp-driver/src/uuids.cpp", "cpp-driver/src/value.cpp", + "cpp-driver/src/whitelist_policy.cpp", + "cpp-driver/src/third_party/hdr_histogram/hdr_histogram.cpp" ], "include_dirs": [ diff --git a/cpp-driver/include/cassandra.h b/cpp-driver/include/cassandra.h index 781822c..1232fa7 100644 --- a/cpp-driver/include/cassandra.h +++ b/cpp-driver/include/cassandra.h @@ -20,7 +20,7 @@ #include #if !defined(CASS_STATIC) -# if defined(_WIN32) +# if (defined(WIN32) || defined(_WIN32)) # if defined(CASS_BUILDING) # define CASS_EXPORT __declspec(dllexport) # else @@ -35,6 +35,14 @@ #define CASS_EXPORT #endif +#if defined(_MSC_VER) +# define CASS_DEPRECATED(func) __declspec(deprecated) func +#elif defined(__GNUC__) || defined(__INTEL_COMPILER) +# define CASS_DEPRECATED(func) func __attribute__((deprecated)) +#else +# define CASS_DEPRECATED(func) func +#endif + /** * @file include/cassandra.h * @@ -43,8 +51,8 @@ */ #define CASS_VERSION_MAJOR 2 -#define CASS_VERSION_MINOR 0 -#define CASS_VERSION_PATCH 0 +#define CASS_VERSION_MINOR 2 +#define CASS_VERSION_PATCH 2 #define CASS_VERSION_SUFFIX "" #ifdef __cplusplus @@ -107,12 +115,12 @@ typedef cass_uint8_t cass_byte_t; typedef cass_uint64_t cass_duration_t; /** - * The size of a IPv4 address + * The size of an IPv4 address */ #define CASS_INET_V4_LENGTH 4 /** - * The size of a IPv6 address + * The size of an IPv6 address */ #define CASS_INET_V6_LENGTH 16 @@ -138,7 +146,7 @@ typedef struct CassInet_ { } CassInet; /** - * The size of a hexidecimal UUID string including a null terminator. + * The size of a hexadecimal UUID string including a null terminator. */ #define CASS_UUID_STRING_LENGTH 37 @@ -159,7 +167,7 @@ typedef struct CassUuid_ { /** * Represents the clock sequence and the node part of a UUID. The most * significant 16 bits represent the clock sequence (except for the most - * significant bit which is always set) and the bottom 48 bits respresent + * significant bit which is always set) and the bottom 48 bits represent * the node part. For version 1 (time-based) the clock sequence part is randomly * generated and the node part can be explicitly set, otherwise, it's generated * from node unique information. For version 4 both the clock sequence and the node @@ -193,7 +201,7 @@ typedef struct CassSession_ CassSession; * @struct CassStatement * * A statement object is an executable query. It represents either a regular - * (adhoc) statment or a prepared statement. It maitains the queries' parameter + * (adhoc) statement or a prepared statement. It maintains the queries' parameter * values along with query options (consistency level, paging state, etc.) * * Note: Parameters for regular queries are not supported by the binary protocol @@ -243,6 +251,13 @@ typedef struct CassPrepared_ CassPrepared; */ typedef struct CassResult_ CassResult; +/** + * @struct CassErrorResult + * + * A error result of a request + */ +typedef struct CassErrorResult_ CassErrorResult; + /** * @struct CassIterator * @@ -264,13 +279,45 @@ typedef struct CassRow_ CassRow; */ typedef struct CassValue_ CassValue; +/** + * @struct CassDataType + * + * A data type used to describe a value, collection or + * user defined type. + */ +typedef struct CassDataType_ CassDataType; + +/** + * @struct CassFunctionMeta + */ +typedef struct CassFunctionMeta_ CassFunctionMeta; + +/** + * @struct CassAggregateMeta + */ +typedef struct CassAggregateMeta_ CassAggregateMeta; + /** * @struct CassCollection * - * A collection of primitive values. + * A collection of values. */ typedef struct CassCollection_ CassCollection; +/** + * @struct CassTuple + * + * A tuple of values. + */ +typedef struct CassTuple_ CassTuple; + +/** + * @struct CassUserType + * + * A user defined type. + */ +typedef struct CassUserType_ CassUserType; + /** * @struct CassSsl * @@ -279,25 +326,32 @@ typedef struct CassCollection_ CassCollection; typedef struct CassSsl_ CassSsl; /** - * @struct CassSchema + * @struct CassSchemaMeta * - * A snapshot of the cluster's schema metadata. + * A snapshot of the schema's metadata. */ -typedef struct CassSchema_ CassSchema; +typedef struct CassSchemaMeta_ CassSchemaMeta; /** - * @struct CassSchemaMeta + * @struct CassKeyspaceMeta * - * Table/Column schema metdata. + * Keyspace metadata */ -typedef struct CassSchemaMeta_ CassSchemaMeta; +typedef struct CassKeyspaceMeta_ CassKeyspaceMeta; + +/** + * @struct CassTableMeta + * + * Table metadata + */ +typedef struct CassTableMeta_ CassTableMeta; /** - * @struct CassSchemaMetaField + * @struct CassColumnMeta * - * Key/Value metadata field for a keyspace, table, or column. + * Column metadata */ -typedef struct CassSchemaMetaField_ CassSchemaMetaField; +typedef struct CassColumnMeta_ CassColumnMeta; /** * @struct CassUuidGen @@ -308,6 +362,27 @@ typedef struct CassSchemaMetaField_ CassSchemaMetaField; */ typedef struct CassUuidGen_ CassUuidGen; +/** + * Policies that defined the behavior of a request when a server-side + * read/write timeout or unavailable error occurs. + * + * Generators of client-side, microsecond-precision timestamps. + * + * @struct CassTimestampGen + * + */ +typedef struct CassTimestampGen_ CassTimestampGen; + +/** + * @struct CassRetryPolicy + */ +typedef struct CassRetryPolicy_ CassRetryPolicy; + +/** + * @struct CassCustomPayload + */ +typedef struct CassCustomPayload_ CassCustomPayload; + /** * @struct CassMetrics * @@ -347,6 +422,7 @@ typedef struct CassMetrics_ { } CassMetrics; typedef enum CassConsistency_ { + CASS_CONSISTENCY_UNKNOWN = 0xFFFF, CASS_CONSISTENCY_ANY = 0x0000, CASS_CONSISTENCY_ONE = 0x0001, CASS_CONSISTENCY_TWO = 0x0002, @@ -360,6 +436,38 @@ typedef enum CassConsistency_ { CASS_CONSISTENCY_LOCAL_ONE = 0x000A } CassConsistency; +#define CASS_CONSISTENCY_MAP(XX) \ + 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") + +typedef enum 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 +} CassWriteType; + +#define CASS_WRITE_TYPE_MAP(XX) \ + 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") + typedef enum CassValueType_ { CASS_VALUE_TYPE_UNKNOWN = 0xFFFF, CASS_VALUE_TYPE_CUSTOM = 0x0000, @@ -379,9 +487,18 @@ typedef enum CassValueType_ { 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_SET = 0x0022, + CASS_VALUE_TYPE_UDT = 0x0030, + CASS_VALUE_TYPE_TUPLE = 0x0031, + /* @cond IGNORE */ + CASS_VALUE_TYPE_LAST_ENTRY + /* @endcond */ } CassValueType; typedef enum CassCollectionType_ { @@ -401,16 +518,17 @@ typedef enum CassIteratorType_ { CASS_ITERATOR_TYPE_ROW, CASS_ITERATOR_TYPE_COLLECTION, CASS_ITERATOR_TYPE_MAP, - CASS_ITERATOR_TYPE_SCHEMA_META, - CASS_ITERATOR_TYPE_SCHEMA_META_FIELD + 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 } CassIteratorType; -typedef enum CassSchemaMetaType_ { - CASS_SCHEMA_META_TYPE_KEYSPACE, - CASS_SCHEMA_META_TYPE_TABLE, - CASS_SCHEMA_META_TYPE_COLUMN -} CassSchemaMetaType; - #define CASS_LOG_LEVEL_MAP(XX) \ XX(CASS_LOG_DISABLED, "") \ XX(CASS_LOG_CRITICAL, "CRITICAL") \ @@ -430,11 +548,19 @@ typedef enum CassLogLevel_ { } CassLogLevel; typedef enum CassSslVerifyFlags { - CASS_SSL_VERIFY_NONE = 0, - CASS_SSL_VERIFY_PEER_CERT = 1, - CASS_SSL_VERIFY_PEER_IDENTITY = 2 + CASS_SSL_VERIFY_NONE, + CASS_SSL_VERIFY_PEER_CERT, + CASS_SSL_VERIFY_PEER_IDENTITY } CassSslVerifyFlags; +typedef enum CassColumnType_ { + CASS_COLUMN_TYPE_REGULAR, + CASS_COLUMN_TYPE_PARTITION_KEY, + CASS_COLUMN_TYPE_CLUSTERING_KEY, + CASS_COLUMN_TYPE_STATIC, + CASS_COLUMN_TYPE_COMPACT_VALUE +} CassColumnType; + typedef enum CassErrorSource_ { CASS_ERROR_SOURCE_NONE, CASS_ERROR_SOURCE_LIB, @@ -467,6 +593,10 @@ typedef enum CassErrorSource_ { XX(CASS_ERROR_SOURCE_LIB, CASS_ERROR_LIB_NOT_IMPLEMENTED, 21, "Not implemented") \ XX(CASS_ERROR_SOURCE_LIB, CASS_ERROR_LIB_UNABLE_TO_CONNECT, 22, "Unable to connect") \ XX(CASS_ERROR_SOURCE_LIB, CASS_ERROR_LIB_UNABLE_TO_CLOSE, 23, "Unable to close") \ + XX(CASS_ERROR_SOURCE_LIB, CASS_ERROR_LIB_NO_PAGING_STATE, 24, "No paging state") \ + XX(CASS_ERROR_SOURCE_LIB, CASS_ERROR_LIB_PARAMETER_UNSET, 25, "Parameter unset") \ + XX(CASS_ERROR_SOURCE_LIB, CASS_ERROR_LIB_INVALID_ERROR_RESULT_TYPE, 26, "Invalid error result type") \ + XX(CASS_ERROR_SOURCE_LIB, CASS_ERROR_LIB_INVALID_FUTURE_TYPE, 27, "Invalid future type") \ XX(CASS_ERROR_SOURCE_SERVER, CASS_ERROR_SERVER_SERVER_ERROR, 0x0000, "Server error") \ XX(CASS_ERROR_SOURCE_SERVER, CASS_ERROR_SERVER_PROTOCOL_ERROR, 0x000A, "Protocol error") \ XX(CASS_ERROR_SOURCE_SERVER, CASS_ERROR_SERVER_BAD_CREDENTIALS, 0x0100, "Bad credentials") \ @@ -476,6 +606,9 @@ typedef enum CassErrorSource_ { XX(CASS_ERROR_SOURCE_SERVER, CASS_ERROR_SERVER_TRUNCATE_ERROR, 0x1003, "Truncate error") \ XX(CASS_ERROR_SOURCE_SERVER, CASS_ERROR_SERVER_WRITE_TIMEOUT, 0x1100, "Write timeout") \ XX(CASS_ERROR_SOURCE_SERVER, CASS_ERROR_SERVER_READ_TIMEOUT, 0x1200, "Read timeout") \ + XX(CASS_ERROR_SOURCE_SERVER, CASS_ERROR_SERVER_READ_FAILURE, 0x1300, "Read failure") \ + XX(CASS_ERROR_SOURCE_SERVER, CASS_ERROR_SERVER_FUNCTION_FAILURE, 0x1400, "Function failure") \ + XX(CASS_ERROR_SOURCE_SERVER, CASS_ERROR_SERVER_WRITE_FAILURE, 0x1500, "Write failure") \ XX(CASS_ERROR_SOURCE_SERVER, CASS_ERROR_SERVER_SYNTAX_ERROR, 0x2000, "Syntax error") \ XX(CASS_ERROR_SOURCE_SERVER, CASS_ERROR_SERVER_UNAUTHORIZED, 0x2100, "Unauthorized") \ XX(CASS_ERROR_SOURCE_SERVER, CASS_ERROR_SERVER_INVALID_QUERY, 0x2200, "Invalid query") \ @@ -486,7 +619,8 @@ typedef enum CassErrorSource_ { XX(CASS_ERROR_SOURCE_SSL, CASS_ERROR_SSL_INVALID_PRIVATE_KEY, 2, "Unable to load private key") \ XX(CASS_ERROR_SOURCE_SSL, CASS_ERROR_SSL_NO_PEER_CERT, 3, "No peer certificate") \ XX(CASS_ERROR_SOURCE_SSL, CASS_ERROR_SSL_INVALID_PEER_CERT, 4, "Invalid peer certificate") \ - XX(CASS_ERROR_SOURCE_SSL, CASS_ERROR_SSL_IDENTITY_MISMATCH, 5, "Certificate does not match host or IP address") + XX(CASS_ERROR_SOURCE_SSL, CASS_ERROR_SSL_IDENTITY_MISMATCH, 5, "Certificate does not match host or IP address") \ + XX(CASS_ERROR_SOURCE_SSL, CASS_ERROR_SSL_PROTOCOL_ERROR, 6, "Protocol error") #define CASS_ERROR(source, code) ((source << 24) | code) @@ -614,7 +748,7 @@ cass_cluster_set_contact_points_n(CassCluster* cluster, /** * Sets the port. * - * Default: 9042 + * Default: 9042 * * @public @memberof CassCluster * @@ -641,10 +775,10 @@ cass_cluster_set_ssl(CassCluster* cluster, CassSsl* ssl); /** - * Sets the protocol version. This will automatically downgrade if to - * protocol version 1. + * Sets the protocol version. This will automatically downgrade to the lowest + * supported protocol version. * - * Default: 2 + * Default: 4 * * @public @memberof CassCluster * @@ -660,7 +794,7 @@ cass_cluster_set_protocol_version(CassCluster* cluster, * Sets the number of IO threads. This is the number of threads * that will handle query requests. * - * Default: 1 + * Default: 1 * * @public @memberof CassCluster * @@ -673,10 +807,10 @@ cass_cluster_set_num_threads_io(CassCluster* cluster, unsigned num_threads); /** - * Sets the size of the the fixed size queue that stores + * Sets the size of the fixed size queue that stores * pending requests. * - * Default: 4096 + * Default: 8192 * * @public @memberof CassCluster * @@ -689,10 +823,10 @@ cass_cluster_set_queue_size_io(CassCluster* cluster, unsigned queue_size); /** - * Sets the size of the the fixed size queue that stores + * Sets the size of the fixed size queue that stores * events. * - * Default: 4096 + * Default: 8192 * * @public @memberof CassCluster * @@ -705,10 +839,10 @@ cass_cluster_set_queue_size_event(CassCluster* cluster, unsigned queue_size); /** - * Sets the size of the the fixed size queue that stores + * Sets the size of the fixed size queue that stores * log messages. * - * Default: 4096 + * Default: 8192 * * @public @memberof CassCluster * @@ -724,7 +858,7 @@ cass_cluster_set_queue_size_log(CassCluster* cluster, * Sets the number of connections made to each server in each * IO thread. * - * Default: 1 + * Default: 1 * * @public @memberof CassCluster * @@ -740,7 +874,7 @@ cass_cluster_set_core_connections_per_host(CassCluster* cluster, * Sets the maximum number of connections made to each server in each * IO thread. * - * Default: 2 + * Default: 2 * * @public @memberof CassCluster * @@ -755,7 +889,7 @@ cass_cluster_set_max_connections_per_host(CassCluster* cluster, /** * Sets the amount of time to wait before attempting to reconnect. * - * Default: 2000 milliseconds + * Default: 2000 milliseconds * * @public @memberof CassCluster * @@ -771,7 +905,7 @@ cass_cluster_set_reconnect_wait_time(CassCluster* cluster, * Connections are created when the current connections are unable to keep up with * request throughput. * - * Default: 1 + * Default: 1 * * @public @memberof CassCluster * @@ -788,7 +922,7 @@ cass_cluster_set_max_concurrent_creation(CassCluster* cluster, * on a connection before creating a new connection. The number of new connections * created will not exceed max_connections_per_host. * - * Default: 100 + * Default: 100 * * @public @memberof CassCluster * @@ -804,7 +938,7 @@ cass_cluster_set_max_concurrent_requests_threshold(CassCluster* cluster, * Sets the maximum number of requests processed by an IO worker * per flush. * - * Default: 128 + * Default: 128 * * @public @memberof CassCluster * @@ -821,7 +955,7 @@ cass_cluster_set_max_requests_per_flush(CassCluster* cluster, * on a connection. Disables writes to a connection if the number * of bytes queued exceed this value. * - * Default: 64 KB + * Default: 64 KB * * @public @memberof CassCluster * @@ -838,7 +972,7 @@ cass_cluster_set_write_bytes_high_water_mark(CassCluster* cluster, * connection. After exceeding high water mark bytes, writes will * only resume once the number of bytes fall below this value. * - * Default: 32 KB + * Default: 32 KB * * @public @memberof CassCluster * @@ -856,7 +990,7 @@ cass_cluster_set_write_bytes_low_water_mark(CassCluster* cluster, * host on an IO worker if the number of requests queued exceed this * value. * - * Default: 128 * max_connections_per_host + * Default: 256 * * @public @memberof CassCluster * @@ -874,7 +1008,7 @@ cass_cluster_set_pending_requests_high_water_mark(CassCluster* cluster, * requests, writes to a host will only resume once the number of requests * fall below this value. * - * Default: 64 * max_connections_per_host + * Default: 128 * * @public @memberof CassCluster * @@ -889,7 +1023,7 @@ cass_cluster_set_pending_requests_low_water_mark(CassCluster* cluster, /** * Sets the timeout for connecting to a node. * - * Default: 5000 milliseconds + * Default: 5000 milliseconds * * @public @memberof CassCluster * @@ -903,7 +1037,7 @@ cass_cluster_set_connect_timeout(CassCluster* cluster, /** * Sets the timeout for waiting for a response from a node. * - * Default: 12000 milliseconds + * Default: 12000 milliseconds * * @public @memberof CassCluster * @@ -1015,9 +1149,13 @@ cass_cluster_set_load_balance_dc_aware_n(CassCluster* cluster, cass_bool_t allow_remote_dcs_for_local_cl); /** - * Configures the cluster to use token-aware request routing, or not. + * Configures the cluster to use token-aware request routing or not. * - * Default is cass_true (enabled). + * Important: Token-aware routing depends on keyspace information. + * For this reason enabling token-aware routing will also enable the usage + * of schema metadata. + * + * Default: cass_true (enabled). * * This routing policy composes the base routing policy, routing * requests first to replicas on nodes considered 'local' by @@ -1027,6 +1165,8 @@ cass_cluster_set_load_balance_dc_aware_n(CassCluster* cluster, * * @param[in] cluster * @param[in] enabled + * + * @see cass_cluster_set_use_schema(); */ CASS_EXPORT void cass_cluster_set_token_aware_routing(CassCluster* cluster, @@ -1034,9 +1174,9 @@ cass_cluster_set_token_aware_routing(CassCluster* cluster, /** - * Configures the cluster to use latency-aware request routing, or not. + * Configures the cluster to use latency-aware request routing or not. * - * Default is cass_false (disabled). + * Default: cass_false (disabled). * * This routing policy is a top-level routing policy. It uses the * base routing policy to determine locality (dc-aware) and/or @@ -1054,7 +1194,7 @@ cass_cluster_set_latency_aware_routing(CassCluster* cluster, /** * Configures the settings for latency-aware request routing. * - * Defaults: + * Defaults: * *