Couchbase C Client  2.10.7
Asynchronous C Client for Couchbase
Settings

Detailed Description

Get/Set Library Options.

The lcb_cntl() function and its various helpers are the means by which to modify settings within the library

See also
<cntl.h>

Modules

 Setting List
 Adjust tunables for the client.
 

Functions

lcb_error_t lcb_cntl (lcb_t instance, int mode, int cmd, void *arg)
 This function exposes an ioctl/fcntl-like interface to read and write various configuration properties to and from an lcb_t handle. More...
 
lcb_error_t lcb_cntl_string (lcb_t instance, const char *key, const char *value)
 Alternatively one may change configuration settings by passing a string key and value. More...
 
lcb_error_t lcb_cntl_setu32 (lcb_t instance, int cmd, lcb_U32 arg)
 Convenience function to set a value as an lcb_U32. More...
 
lcb_U32 lcb_cntl_getu32 (lcb_t instance, int cmd)
 Retrieve an lcb_U32 setting. More...
 
int lcb_cntl_exists (int ctl)
 Determine if a specific control code exists. More...
 

Function Documentation

◆ lcb_cntl()

lcb_error_t lcb_cntl ( lcb_t  instance,
int  mode,
int  cmd,
void *  arg 
)

This function exposes an ioctl/fcntl-like interface to read and write various configuration properties to and from an lcb_t handle.

Parameters
instanceThe instance to modify
modeOne of LCB_CNTL_GET (to retrieve a setting) or LCB_CNTL_SET (to modify a setting). Note that not all configuration properties support SET.
cmdThe specific command/property to modify. This is one of the LCB_CNTL_* constants defined in this file. Note that it is safe (and even recommanded) to use the raw numeric value (i.e. to be backwards and forwards compatible with libcouchbase versions), as they are not subject to change.

Using the actual value may be useful in ensuring your application will still compile with an older libcouchbase version (though you may get a runtime error (see return) if the command is not supported

Parameters
argThe argument passed to the configuration handler. The actual type of this pointer is dependent on the command in question. Typically for GET operations, the value of 'arg' is set to the current configuration value; and for SET operations, the current configuration is updated with the contents of *arg.
Returns
LCB_NOT_SUPPORTED if the code is unrecognized
LCB_EINVAL if there was a problem with the argument (typically for LCB_CNTL_SET) other error codes depending on the command.

The following error codes are returned if the LCB_CNTL_DETAILED_ERRCODES are enabled.

Returns
LCB_ECTL_UNKNOWN if the code is unrecognized
LCB_ECTL_UNSUPPMODE An invalid mode was passed
LCB_ECTL_BADARG if the value was invalid
Stability
Committed:
See also
lcb_cntl_setu32()
lcb_cntl_string()
Examples
example/analytics/analytics.c, example/fts/fts.c, and example/minimal/query.c.

◆ lcb_cntl_string()

lcb_error_t lcb_cntl_string ( lcb_t  instance,
const char *  key,
const char *  value 
)

Alternatively one may change configuration settings by passing a string key and value.

This may be used to provide a simple interface from a command line or higher level language to allow the setting of specific key-value pairs.

The format for the value is dependent on the option passed, the following value types exist:

  • Timeval. A timeval value can either be specified as fractional seconds ("1.5" for 1.5 seconds), or in microseconds ("1500000"). In releases prior to libcouchbase 2.8, this was called timeout.
  • Number. This is any valid numerical value. This may be signed or unsigned depending on the setting.
  • Boolean. This specifies a boolean. A true value is either a positive numeric value (i.e. "1") or the string "true". A false value is a zero (i.e. "0") or the string "false".
  • Float. This is like a Number, but also allows fractional specification, e.g. "2.4".
  • String. Arbitrary string as char *, e.g. for client identification string.
  • Path. File path.
  • FILE*, Path. Set file stream pointer (lcb_cntl() style) or file path (lcb_cntl_string() style).
Code Name Type
LCB_CNTL_OP_TIMEOUT "operation_timeout" Timeval
LCB_CNTL_VIEW_TIMEOUT "view_timeout" Timeval
LCB_CNTL_N1QL_TIMEOUT "n1ql_timeout" Timeval
LCB_CNTL_HTTP_TIMEOUT "http_timeout" Timeval
LCB_CNTL_CONFIG_POLL_INTERVAL "config_poll_interval" Timeval
LCB_CNTL_CONFERRTHRESH "error_thresh_count" Number (Positive)
LCB_CNTL_CONFIGURATION_TIMEOUT "config_total_timeout" Timeval
LCB_CNTL_CONFIG_NODE_TIMEOUT "config_node_timeout" Timeval
LCB_CNTL_CONFDELAY_THRESH "error_thresh_delay" Timeval
LCB_CNTL_DURABILITY_TIMEOUT "durability_timeout" Timeval
LCB_CNTL_DURABILITY_INTERVAL "durability_interval" Timeval
LCB_CNTL_RANDOMIZE_BOOTSTRAP_HOSTS "randomize_nodes" Boolean
LCB_CNTL_CONFIGCACHE "config_cache" Path
LCB_CNTL_DETAILED_ERRCODES "detailed_errcodes" Boolean
LCB_CNTL_HTCONFIG_URLTYPE "http_urlmode" Number (enum lcb_HTCONFIG_URLTYPE)
LCB_CNTL_RETRY_BACKOFF "retry_backoff" Float
LCB_CNTL_RETRY_INTERVAL "retry_interval" Timeval
LCB_CNTL_HTTP_POOLSIZE "http_poolsize" Number
LCB_CNTL_VBGUESS_PERSIST "vbguess_persist" Boolean
LCB_CNTL_CONLOGGER_LEVEL "console_log_level" Number (enum lcb_log_severity_t)
LCB_CNTL_FETCH_MUTATION_TOKENS "fetch_mutation_tokens" Boolean
LCB_CNTL_DURABILITY_MUTATION_TOKENS "dur_mutation_tokens" Boolean
LCB_CNTL_TCP_NODELAY "tcp_nodelay" Boolean
LCB_CNTL_CONLOGGER_FP "console_log_file" FILE*, Path
LCB_CNTL_CLIENT_STRING "client_string" String
LCB_CNTL_TCP_KEEPALIVE "tcp_keepalive" Boolean
LCB_CNTL_CONFIG_POLL_INTERVAL "config_poll_interval" Timeval
LCB_CNTL_IP6POLICY "ipv6" String ("disabled", "only", "allow")
Stability
Committed:
  • Note, the actual API call is considered committed and will not disappear, however the existence of the various string settings are dependendent on the actual settings they map to. It is recommended that applications use the numerical lcb_cntl() as the string names are subject to change.
See also
lcb_cntl()
lcb-cntl-settings

◆ lcb_cntl_setu32()

lcb_error_t lcb_cntl_setu32 ( lcb_t  instance,
int  cmd,
lcb_U32  arg 
)

Convenience function to set a value as an lcb_U32.

Parameters
instance
cmdsetting to modify
argthe new value
Returns
see lcb_cntl() for details
Stability
Committed:

◆ lcb_cntl_getu32()

lcb_U32 lcb_cntl_getu32 ( lcb_t  instance,
int  cmd 
)

Retrieve an lcb_U32 setting.

Parameters
instance
cmdsetting to retrieve
Returns
the value.
Warning
This function does not return an error code. Ensure that the cntl is correct for this version, or use lcb_cntl() directly.
Stability
Committed:

◆ lcb_cntl_exists()

int lcb_cntl_exists ( int  ctl)

Determine if a specific control code exists.

Parameters
ctlthe code to check for
Returns
0 if it does not exist, nonzero if it exists.