Couchbase C Client  3.3.14
Asynchronous C Client for Couchbase
couchbase.h
Go to the documentation of this file.
1/* -*- Mode: C; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2/*
3 * Copyright 2010-2020 Couchbase, Inc.
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18#ifndef LIBCOUCHBASE_COUCHBASE_H
19#define LIBCOUCHBASE_COUCHBASE_H 1
20
26struct lcb_st;
27
35typedef struct lcb_st lcb_INSTANCE;
36typedef struct lcb_HTTP_HANDLE_ lcb_HTTP_HANDLE;
37
38#include <stddef.h>
39#include <time.h>
40#include <stdarg.h>
41#include <stdio.h>
42#include <libcouchbase/sysdefs.h>
43#include <libcouchbase/assert.h>
44#include <libcouchbase/visibility.h>
45#include <libcouchbase/error.h>
46#include <libcouchbase/iops.h>
47#include <libcouchbase/configuration.h>
48#include <libcouchbase/kvbuf.h>
49#include <libcouchbase/auth.h>
50#include <libcouchbase/metrics.h>
51#include <libcouchbase/tracing.h>
52#include <libcouchbase/logger.h>
53#include <libcouchbase/cntl.h>
54
55#ifdef __cplusplus
56extern "C" {
57#endif
58
59/******************************************************************************
60 ******************************************************************************
61 ******************************************************************************
62 ** INITIALIZATION **
63 ******************************************************************************
64 ******************************************************************************
65 ******************************************************************************/
66
246
247typedef enum {
248 LCB_CONFIG_TRANSPORT_LIST_END = 0,
249 LCB_CONFIG_TRANSPORT_HTTP = 1,
250 LCB_CONFIG_TRANSPORT_CCCP,
251 LCB_CONFIG_TRANSPORT_MAX
252} lcb_BOOTSTRAP_TRANSPORT;
253
259
260typedef struct lcb_CREATEOPTS_ lcb_CREATEOPTS;
261
262LIBCOUCHBASE_API lcb_STATUS lcb_createopts_create(lcb_CREATEOPTS **options, lcb_INSTANCE_TYPE type);
263LIBCOUCHBASE_API lcb_STATUS lcb_createopts_destroy(lcb_CREATEOPTS *options);
264LIBCOUCHBASE_API lcb_STATUS lcb_createopts_connstr(lcb_CREATEOPTS *options, const char *connstr, size_t connstr_len);
265LIBCOUCHBASE_API lcb_STATUS lcb_createopts_bucket(lcb_CREATEOPTS *options, const char *bucket, size_t bucket_len);
266LIBCOUCHBASE_API lcb_STATUS lcb_createopts_logger(lcb_CREATEOPTS *options, const lcb_LOGGER *logger);
267LIBCOUCHBASE_API lcb_STATUS lcb_createopts_credentials(lcb_CREATEOPTS *options, const char *username,
268 size_t username_len, const char *password, size_t password_len);
269LIBCOUCHBASE_API lcb_STATUS lcb_createopts_authenticator(lcb_CREATEOPTS *options, lcb_AUTHENTICATOR *auth);
270LIBCOUCHBASE_API lcb_STATUS lcb_createopts_io(lcb_CREATEOPTS *options, struct lcb_io_opt_st *io);
271LIBCOUCHBASE_API lcb_STATUS lcb_createopts_meter(lcb_CREATEOPTS *options, const lcbmetrics_METER *metrics);
272
273LIBCOUCHBASE_API lcb_STATUS lcb_createopts_tracer(lcb_CREATEOPTS *options, lcbtrace_TRACER *tracer);
317LIBCOUCHBASE_API
318lcb_STATUS lcb_create(lcb_INSTANCE **instance, const lcb_CREATEOPTS *options);
319
342LIBCOUCHBASE_API
344
354typedef void (*lcb_bootstrap_callback)(lcb_INSTANCE *instance, lcb_STATUS err);
355
366LIBCOUCHBASE_API
368
381LIBCOUCHBASE_API
383
392LIBCOUCHBASE_API
413typedef struct {
414 uint64_t uuid_;
415 uint64_t seqno_;
416 uint16_t vbid_;
417} lcb_MUTATION_TOKEN;
418
419LIBCOUCHBASE_API int lcb_mutation_token_is_valid(const lcb_MUTATION_TOKEN *token);
420
455
497
498/* The following callback types cannot be set using lcb_install_callback(),
499 * however, their value is passed along as the second argument of their
500 * respective callbacks. This allows you to still use the same callback,
501 * differentiating their meaning by the type. */
502
504#define LCB_CALLBACK_VIEWQUERY -1
505
507#define LCB_CALLBACK_QUERY -2
508
510#define LCB_CALLBACK_IXMGMT -3
511
513#define LCB_CALLBACK_ANALYTICS -4
514
516#define LCB_CALLBACK_SEARCH -5
517
518#define LCB_CALLBACK_OPEN -6
519
542
543typedef void lcb_CMDBASE;
544typedef void lcb_RESPBASE;
545
554typedef void (*lcb_RESPCALLBACK)(lcb_INSTANCE *instance, int cbtype, const lcb_RESPBASE *resp);
555
577LIBCOUCHBASE_API
579
592LIBCOUCHBASE_API
594
601LIBCOUCHBASE_API
602const char *lcb_strcbtype(int cbtype);
603
687typedef struct lcb_RESPGET_ lcb_RESPGET;
688
689LIBCOUCHBASE_API lcb_STATUS lcb_respget_status(const lcb_RESPGET *resp);
690LIBCOUCHBASE_API lcb_STATUS lcb_respget_error_context(const lcb_RESPGET *resp, const lcb_KEY_VALUE_ERROR_CONTEXT **ctx);
691LIBCOUCHBASE_API lcb_STATUS lcb_respget_cookie(const lcb_RESPGET *resp, void **cookie);
692LIBCOUCHBASE_API lcb_STATUS lcb_respget_cas(const lcb_RESPGET *resp, uint64_t *cas);
693LIBCOUCHBASE_API lcb_STATUS lcb_respget_datatype(const lcb_RESPGET *resp, uint8_t *datatype);
694LIBCOUCHBASE_API lcb_STATUS lcb_respget_flags(const lcb_RESPGET *resp, uint32_t *flags);
695LIBCOUCHBASE_API lcb_STATUS lcb_respget_key(const lcb_RESPGET *resp, const char **key, size_t *key_len);
696LIBCOUCHBASE_API lcb_STATUS lcb_respget_value(const lcb_RESPGET *resp, const char **value, size_t *value_len);
697
698typedef struct lcb_CMDGET_ lcb_CMDGET;
699
700LIBCOUCHBASE_API lcb_STATUS lcb_cmdget_create(lcb_CMDGET **cmd);
701LIBCOUCHBASE_API lcb_STATUS lcb_cmdget_destroy(lcb_CMDGET *cmd);
702LIBCOUCHBASE_API lcb_STATUS lcb_cmdget_parent_span(lcb_CMDGET *cmd, lcbtrace_SPAN *span);
703LIBCOUCHBASE_API lcb_STATUS lcb_cmdget_collection(lcb_CMDGET *cmd, const char *scope, size_t scope_len,
704 const char *collection, size_t collection_len);
705LIBCOUCHBASE_API lcb_STATUS lcb_cmdget_key(lcb_CMDGET *cmd, const char *key, size_t key_len);
706LIBCOUCHBASE_API lcb_STATUS lcb_cmdget_expiry(lcb_CMDGET *cmd, uint32_t expiration);
707LIBCOUCHBASE_API lcb_STATUS lcb_cmdget_locktime(lcb_CMDGET *cmd, uint32_t duration);
708LIBCOUCHBASE_API lcb_STATUS lcb_cmdget_timeout(lcb_CMDGET *cmd, uint32_t timeout);
712LIBCOUCHBASE_API lcb_STATUS lcb_cmdget_on_behalf_of(lcb_CMDGET *cmd, const char *data, size_t data_len);
716LIBCOUCHBASE_API lcb_STATUS lcb_cmdget_on_behalf_of_extra_privilege(lcb_CMDGET *cmd, const char *privilege,
717 size_t privilege_len);
718
719LIBCOUCHBASE_API lcb_STATUS lcb_get(lcb_INSTANCE *instance, void *cookie, const lcb_CMDGET *cmd);
787typedef enum {
788 LCB_REPLICA_MODE_ANY = 0x00,
789 LCB_REPLICA_MODE_ALL = 0x01,
790 LCB_REPLICA_MODE_IDX0 = 0x02,
791 LCB_REPLICA_MODE_IDX1 = 0x03,
792 LCB_REPLICA_MODE_IDX2 = 0x04,
793 LCB_REPLICA_MODE__MAX
795
796typedef enum {
797 LCB_REPLICA_READ_PREFERENCE_NONE = 0x00,
798 LCB_REPLICA_READ_PREFERENCE_SELECTED_SERVER_GROUP = 0x01,
799} lcb_REPLICA_READ_PREFERENCE;
800
801typedef struct lcb_RESPGETREPLICA_ lcb_RESPGETREPLICA;
802
803LIBCOUCHBASE_API lcb_STATUS lcb_respgetreplica_status(const lcb_RESPGETREPLICA *resp);
804LIBCOUCHBASE_API int lcb_respgetreplica_is_active(const lcb_RESPGETREPLICA *resp);
805LIBCOUCHBASE_API lcb_STATUS lcb_respgetreplica_error_context(const lcb_RESPGETREPLICA *resp,
806 const lcb_KEY_VALUE_ERROR_CONTEXT **ctx);
807LIBCOUCHBASE_API lcb_STATUS lcb_respgetreplica_cookie(const lcb_RESPGETREPLICA *resp, void **cookie);
808LIBCOUCHBASE_API lcb_STATUS lcb_respgetreplica_cas(const lcb_RESPGETREPLICA *resp, uint64_t *cas);
809LIBCOUCHBASE_API lcb_STATUS lcb_respgetreplica_datatype(const lcb_RESPGETREPLICA *resp, uint8_t *datatype);
810LIBCOUCHBASE_API lcb_STATUS lcb_respgetreplica_flags(const lcb_RESPGETREPLICA *resp, uint32_t *flags);
811LIBCOUCHBASE_API lcb_STATUS lcb_respgetreplica_key(const lcb_RESPGETREPLICA *resp, const char **key, size_t *key_len);
812LIBCOUCHBASE_API lcb_STATUS lcb_respgetreplica_value(const lcb_RESPGETREPLICA *resp, const char **value,
813 size_t *value_len);
814LIBCOUCHBASE_API int lcb_respgetreplica_is_final(const lcb_RESPGETREPLICA *resp);
815
816typedef struct lcb_CMDGETREPLICA_ lcb_CMDGETREPLICA;
817
818LIBCOUCHBASE_API lcb_STATUS lcb_cmdgetreplica_create(lcb_CMDGETREPLICA **cmd, lcb_REPLICA_MODE mode);
819LIBCOUCHBASE_API lcb_STATUS lcb_cmdgetreplica_destroy(lcb_CMDGETREPLICA *cmd);
820LIBCOUCHBASE_API lcb_STATUS lcb_cmdgetreplica_parent_span(lcb_CMDGETREPLICA *cmd, lcbtrace_SPAN *span);
821LIBCOUCHBASE_API lcb_STATUS lcb_cmdgetreplica_collection(lcb_CMDGETREPLICA *cmd, const char *scope, size_t scope_len,
822 const char *collection, size_t collection_len);
823LIBCOUCHBASE_API lcb_STATUS lcb_cmdgetreplica_key(lcb_CMDGETREPLICA *cmd, const char *key, size_t key_len);
824LIBCOUCHBASE_API lcb_STATUS lcb_cmdgetreplica_timeout(lcb_CMDGETREPLICA *cmd, uint32_t timeout);
825LIBCOUCHBASE_API lcb_STATUS lcb_cmdgetreplica_read_preference(lcb_CMDGETREPLICA *cmd,
826 lcb_REPLICA_READ_PREFERENCE preference);
830LIBCOUCHBASE_API lcb_STATUS lcb_cmdgetreplica_on_behalf_of(lcb_CMDGETREPLICA *cmd, const char *data, size_t data_len);
834LIBCOUCHBASE_API lcb_STATUS lcb_cmdgetreplica_on_behalf_of_extra_privilege(lcb_CMDGETREPLICA *cmd,
835 const char *privilege, size_t privilege_len);
836LIBCOUCHBASE_API lcb_STATUS lcb_getreplica(lcb_INSTANCE *instance, void *cookie, const lcb_CMDGETREPLICA *cmd);
837
840typedef struct lcb_RESPEXISTS_ lcb_RESPEXISTS;
841
842LIBCOUCHBASE_API lcb_STATUS lcb_respexists_status(const lcb_RESPEXISTS *resp);
843LIBCOUCHBASE_API int lcb_respexists_is_found(const lcb_RESPEXISTS *resp);
844LIBCOUCHBASE_API lcb_STATUS lcb_respexists_error_context(const lcb_RESPEXISTS *resp,
845 const lcb_KEY_VALUE_ERROR_CONTEXT **ctx);
846LIBCOUCHBASE_API lcb_STATUS lcb_respexists_cookie(const lcb_RESPEXISTS *resp, void **cookie);
847LIBCOUCHBASE_API lcb_STATUS lcb_respexists_cas(const lcb_RESPEXISTS *resp, uint64_t *cas);
848LIBCOUCHBASE_API lcb_STATUS lcb_respexists_key(const lcb_RESPEXISTS *resp, const char **key, size_t *key_len);
849
850typedef struct lcb_CMDEXISTS_ lcb_CMDEXISTS;
851
852LIBCOUCHBASE_API lcb_STATUS lcb_cmdexists_create(lcb_CMDEXISTS **cmd);
853LIBCOUCHBASE_API lcb_STATUS lcb_cmdexists_destroy(lcb_CMDEXISTS *cmd);
854LIBCOUCHBASE_API lcb_STATUS lcb_cmdexists_parent_span(lcb_CMDEXISTS *cmd, lcbtrace_SPAN *span);
855LIBCOUCHBASE_API lcb_STATUS lcb_cmdexists_collection(lcb_CMDEXISTS *cmd, const char *scope, size_t scope_len,
856 const char *collection, size_t collection_len);
857LIBCOUCHBASE_API lcb_STATUS lcb_cmdexists_key(lcb_CMDEXISTS *cmd, const char *key, size_t key_len);
858LIBCOUCHBASE_API lcb_STATUS lcb_cmdexists_timeout(lcb_CMDEXISTS *cmd, uint32_t timeout);
862LIBCOUCHBASE_API lcb_STATUS lcb_cmdexists_on_behalf_of(lcb_CMDEXISTS *cmd, const char *data, size_t data_len);
866LIBCOUCHBASE_API lcb_STATUS lcb_cmdexists_on_behalf_of_extra_privilege(lcb_CMDEXISTS *cmd, const char *privilege,
867 size_t privilege_len);
868
869LIBCOUCHBASE_API lcb_STATUS lcb_exists(lcb_INSTANCE *instance, void *cookie, const lcb_CMDEXISTS *cmd);
870
920
978typedef struct lcb_RESPSTORE_ lcb_RESPSTORE;
979
980LIBCOUCHBASE_API lcb_STATUS lcb_respstore_status(const lcb_RESPSTORE *resp);
981LIBCOUCHBASE_API lcb_STATUS lcb_respstore_error_context(const lcb_RESPSTORE *resp,
982 const lcb_KEY_VALUE_ERROR_CONTEXT **ctx);
983LIBCOUCHBASE_API lcb_STATUS lcb_respstore_cookie(const lcb_RESPSTORE *resp, void **cookie);
984LIBCOUCHBASE_API lcb_STATUS lcb_respstore_cas(const lcb_RESPSTORE *resp, uint64_t *cas);
985LIBCOUCHBASE_API lcb_STATUS lcb_respstore_key(const lcb_RESPSTORE *resp, const char **key, size_t *key_len);
986LIBCOUCHBASE_API lcb_STATUS lcb_respstore_operation(const lcb_RESPSTORE *resp, lcb_STORE_OPERATION *operation);
987LIBCOUCHBASE_API lcb_STATUS lcb_respstore_mutation_token(const lcb_RESPSTORE *resp, lcb_MUTATION_TOKEN *token);
988
989LIBCOUCHBASE_API int lcb_respstore_observe_attached(const lcb_RESPSTORE *resp);
990LIBCOUCHBASE_API lcb_STATUS lcb_respstore_observe_stored(const lcb_RESPSTORE *resp, int *store_ok);
991LIBCOUCHBASE_API lcb_STATUS lcb_respstore_observe_master_exists(const lcb_RESPSTORE *resp, int *master_exists);
992LIBCOUCHBASE_API lcb_STATUS lcb_respstore_observe_master_persisted(const lcb_RESPSTORE *resp, int *master_persisted);
993LIBCOUCHBASE_API lcb_STATUS lcb_respstore_observe_num_responses(const lcb_RESPSTORE *resp, uint16_t *num_responses);
994LIBCOUCHBASE_API lcb_STATUS lcb_respstore_observe_num_persisted(const lcb_RESPSTORE *resp, uint16_t *num_persisted);
995LIBCOUCHBASE_API lcb_STATUS lcb_respstore_observe_num_replicated(const lcb_RESPSTORE *resp, uint16_t *num_replicated);
996
997typedef struct lcb_CMDSTORE_ lcb_CMDSTORE;
998
999LIBCOUCHBASE_API lcb_STATUS lcb_cmdstore_create(lcb_CMDSTORE **cmd, lcb_STORE_OPERATION operation);
1000LIBCOUCHBASE_API lcb_STATUS lcb_cmdstore_destroy(lcb_CMDSTORE *cmd);
1001LIBCOUCHBASE_API lcb_STATUS lcb_cmdstore_parent_span(lcb_CMDSTORE *cmd, lcbtrace_SPAN *span);
1002LIBCOUCHBASE_API lcb_STATUS lcb_cmdstore_collection(lcb_CMDSTORE *cmd, const char *scope, size_t scope_len,
1003 const char *collection, size_t collection_len);
1004LIBCOUCHBASE_API lcb_STATUS lcb_cmdstore_key(lcb_CMDSTORE *cmd, const char *key, size_t key_len);
1005LIBCOUCHBASE_API lcb_STATUS lcb_cmdstore_value(lcb_CMDSTORE *cmd, const char *value, size_t value_len);
1006LIBCOUCHBASE_API lcb_STATUS lcb_cmdstore_value_iov(lcb_CMDSTORE *cmd, const lcb_IOV *value, size_t value_len);
1007LIBCOUCHBASE_API lcb_STATUS lcb_cmdstore_expiry(lcb_CMDSTORE *cmd, uint32_t expiration);
1008LIBCOUCHBASE_API lcb_STATUS lcb_cmdstore_preserve_expiry(lcb_CMDSTORE *cmd, int should_preserve);
1009LIBCOUCHBASE_API lcb_STATUS lcb_cmdstore_cas(lcb_CMDSTORE *cmd, uint64_t cas);
1010LIBCOUCHBASE_API lcb_STATUS lcb_cmdstore_flags(lcb_CMDSTORE *cmd, uint32_t flags);
1011LIBCOUCHBASE_API lcb_STATUS lcb_cmdstore_datatype(lcb_CMDSTORE *cmd, uint8_t datatype);
1012LIBCOUCHBASE_API lcb_STATUS lcb_cmdstore_durability(lcb_CMDSTORE *cmd, lcb_DURABILITY_LEVEL level);
1013LIBCOUCHBASE_API lcb_STATUS lcb_cmdstore_durability_observe(lcb_CMDSTORE *cmd, int persist_to, int replicate_to);
1014LIBCOUCHBASE_API lcb_STATUS lcb_cmdstore_timeout(lcb_CMDSTORE *cmd, uint32_t timeout);
1018LIBCOUCHBASE_API lcb_STATUS lcb_cmdstore_on_behalf_of(lcb_CMDSTORE *cmd, const char *data, size_t data_len);
1022LIBCOUCHBASE_API lcb_STATUS lcb_cmdstore_on_behalf_of_extra_privilege(lcb_CMDSTORE *cmd, const char *privilege,
1023 size_t privilege_len);
1024LIBCOUCHBASE_API lcb_STATUS lcb_store(lcb_INSTANCE *instance, void *cookie, const lcb_CMDSTORE *cmd);
1035typedef void (*lcb_open_callback)(lcb_INSTANCE *instance, lcb_STATUS err);
1042LIBCOUCHBASE_API lcb_open_callback lcb_set_open_callback(lcb_INSTANCE *instance, lcb_open_callback callback);
1043
1053LIBCOUCHBASE_API lcb_STATUS lcb_open(lcb_INSTANCE *instance, const char *bucket, size_t bucket_len);
1108typedef struct lcb_RESPREMOVE_ lcb_RESPREMOVE;
1109
1110LIBCOUCHBASE_API lcb_STATUS lcb_respremove_status(const lcb_RESPREMOVE *resp);
1111LIBCOUCHBASE_API lcb_STATUS lcb_respremove_error_context(const lcb_RESPREMOVE *resp,
1112 const lcb_KEY_VALUE_ERROR_CONTEXT **ctx);
1113LIBCOUCHBASE_API lcb_STATUS lcb_respremove_cookie(const lcb_RESPREMOVE *resp, void **cookie);
1114LIBCOUCHBASE_API lcb_STATUS lcb_respremove_cas(const lcb_RESPREMOVE *resp, uint64_t *cas);
1115LIBCOUCHBASE_API lcb_STATUS lcb_respremove_key(const lcb_RESPREMOVE *resp, const char **key, size_t *key_len);
1116LIBCOUCHBASE_API lcb_STATUS lcb_respremove_mutation_token(const lcb_RESPREMOVE *resp, lcb_MUTATION_TOKEN *token);
1117
1118typedef struct lcb_CMDREMOVE_ lcb_CMDREMOVE;
1119
1120LIBCOUCHBASE_API lcb_STATUS lcb_cmdremove_create(lcb_CMDREMOVE **cmd);
1121LIBCOUCHBASE_API lcb_STATUS lcb_cmdremove_destroy(lcb_CMDREMOVE *cmd);
1122LIBCOUCHBASE_API lcb_STATUS lcb_cmdremove_parent_span(lcb_CMDREMOVE *cmd, lcbtrace_SPAN *span);
1123LIBCOUCHBASE_API lcb_STATUS lcb_cmdremove_collection(lcb_CMDREMOVE *cmd, const char *scope, size_t scope_len,
1124 const char *collection, size_t collection_len);
1125LIBCOUCHBASE_API lcb_STATUS lcb_cmdremove_key(lcb_CMDREMOVE *cmd, const char *key, size_t key_len);
1126LIBCOUCHBASE_API lcb_STATUS lcb_cmdremove_cas(lcb_CMDREMOVE *cmd, uint64_t cas);
1127LIBCOUCHBASE_API lcb_STATUS lcb_cmdremove_durability(lcb_CMDREMOVE *cmd, lcb_DURABILITY_LEVEL level);
1128LIBCOUCHBASE_API lcb_STATUS lcb_cmdremove_timeout(lcb_CMDREMOVE *cmd, uint32_t timeout);
1132LIBCOUCHBASE_API lcb_STATUS lcb_cmdremove_on_behalf_of(lcb_CMDREMOVE *cmd, const char *data, size_t data_len);
1136LIBCOUCHBASE_API lcb_STATUS lcb_cmdremove_on_behalf_of_extra_privilege(lcb_CMDREMOVE *cmd, const char *privilege,
1137 size_t privilege_len);
1138LIBCOUCHBASE_API lcb_STATUS lcb_remove(lcb_INSTANCE *instance, void *cookie, const lcb_CMDREMOVE *cmd);
1139
1201typedef struct lcb_RESPCOUNTER_ lcb_RESPCOUNTER;
1202
1203LIBCOUCHBASE_API lcb_STATUS lcb_respcounter_status(const lcb_RESPCOUNTER *resp);
1204LIBCOUCHBASE_API lcb_STATUS lcb_respcounter_error_context(const lcb_RESPCOUNTER *resp,
1205 const lcb_KEY_VALUE_ERROR_CONTEXT **ctx);
1206LIBCOUCHBASE_API lcb_STATUS lcb_respcounter_cookie(const lcb_RESPCOUNTER *resp, void **cookie);
1207LIBCOUCHBASE_API lcb_STATUS lcb_respcounter_cas(const lcb_RESPCOUNTER *resp, uint64_t *cas);
1208LIBCOUCHBASE_API lcb_STATUS lcb_respcounter_key(const lcb_RESPCOUNTER *resp, const char **key, size_t *key_len);
1209LIBCOUCHBASE_API lcb_STATUS lcb_respcounter_mutation_token(const lcb_RESPCOUNTER *resp, lcb_MUTATION_TOKEN *token);
1210LIBCOUCHBASE_API lcb_STATUS lcb_respcounter_value(const lcb_RESPCOUNTER *resp, uint64_t *value);
1211
1212typedef struct lcb_CMDCOUNTER_ lcb_CMDCOUNTER;
1213
1214LIBCOUCHBASE_API lcb_STATUS lcb_cmdcounter_create(lcb_CMDCOUNTER **cmd);
1215LIBCOUCHBASE_API lcb_STATUS lcb_cmdcounter_destroy(lcb_CMDCOUNTER *cmd);
1216LIBCOUCHBASE_API lcb_STATUS lcb_cmdcounter_parent_span(lcb_CMDCOUNTER *cmd, lcbtrace_SPAN *span);
1217LIBCOUCHBASE_API lcb_STATUS lcb_cmdcounter_collection(lcb_CMDCOUNTER *cmd, const char *scope, size_t scope_len,
1218 const char *collection, size_t collection_len);
1219LIBCOUCHBASE_API lcb_STATUS lcb_cmdcounter_key(lcb_CMDCOUNTER *cmd, const char *key, size_t key_len);
1220LIBCOUCHBASE_API lcb_STATUS lcb_cmdcounter_expiry(lcb_CMDCOUNTER *cmd, uint32_t expiration);
1221LIBCOUCHBASE_API lcb_STATUS lcb_cmdcounter_delta(lcb_CMDCOUNTER *cmd, int64_t number);
1222LIBCOUCHBASE_API lcb_STATUS lcb_cmdcounter_initial(lcb_CMDCOUNTER *cmd, uint64_t number);
1223LIBCOUCHBASE_API lcb_STATUS lcb_cmdcounter_durability(lcb_CMDCOUNTER *cmd, lcb_DURABILITY_LEVEL level);
1224LCB_DEPRECATED2(LIBCOUCHBASE_API lcb_STATUS lcb_cmdcounter_cas(lcb_CMDCOUNTER *cmd, uint64_t cas),
1225 "CAS is not applicable to arithmetic operations");
1226LIBCOUCHBASE_API lcb_STATUS lcb_cmdcounter_timeout(lcb_CMDCOUNTER *cmd, uint32_t timeout);
1230LIBCOUCHBASE_API lcb_STATUS lcb_cmdcounter_on_behalf_of(lcb_CMDCOUNTER *cmd, const char *data, size_t data_len);
1234LIBCOUCHBASE_API lcb_STATUS lcb_cmdcounter_on_behalf_of_extra_privilege(lcb_CMDCOUNTER *cmd, const char *privilege,
1235 size_t privilege_len);
1236LIBCOUCHBASE_API lcb_STATUS lcb_counter(lcb_INSTANCE *instance, void *cookie, const lcb_CMDCOUNTER *cmd);
1237
1240/* @ingroup lcb-kv-api
1241 * @defgroup lcb-lock Lock/Unlock
1242 * @details Documents may be locked and unlocked on the server. While a document
1243 * is locked, any attempt to modify it (or lock it again) will fail.
1244 *
1245 * @note Locks are not persistent across nodes (if a node fails over, the lock
1246 * is not transferred to a replica).
1247 * @note The recommended way to manage access and concurrency control for
1248 * documents in Couchbase is through the CAS, which can also be considered
1249 * a form of opportunistic locking.
1250 *
1251 * @par Locking an item
1252 * There is no exclusive function to lock an item. Locking an item is done
1253 * using @ref lcb_get(), by setting the lcb_cmdget_locktime.
1254 *
1255 * @addtogroup lcb-lock
1256 * @{
1257 */
1258
1294typedef struct lcb_RESPUNLOCK_ lcb_RESPUNLOCK;
1295
1296LIBCOUCHBASE_API lcb_STATUS lcb_respunlock_status(const lcb_RESPUNLOCK *resp);
1297LIBCOUCHBASE_API lcb_STATUS lcb_respunlock_error_context(const lcb_RESPUNLOCK *resp,
1298 const lcb_KEY_VALUE_ERROR_CONTEXT **ctx);
1299LIBCOUCHBASE_API lcb_STATUS lcb_respunlock_cookie(const lcb_RESPUNLOCK *resp, void **cookie);
1300LIBCOUCHBASE_API lcb_STATUS lcb_respunlock_cas(const lcb_RESPUNLOCK *resp, uint64_t *cas);
1301LIBCOUCHBASE_API lcb_STATUS lcb_respunlock_key(const lcb_RESPUNLOCK *resp, const char **key, size_t *key_len);
1302
1303typedef struct lcb_CMDUNLOCK_ lcb_CMDUNLOCK;
1304
1305LIBCOUCHBASE_API lcb_STATUS lcb_cmdunlock_create(lcb_CMDUNLOCK **cmd);
1306LIBCOUCHBASE_API lcb_STATUS lcb_cmdunlock_destroy(lcb_CMDUNLOCK *cmd);
1307LIBCOUCHBASE_API lcb_STATUS lcb_cmdunlock_parent_span(lcb_CMDUNLOCK *cmd, lcbtrace_SPAN *span);
1308LIBCOUCHBASE_API lcb_STATUS lcb_cmdunlock_collection(lcb_CMDUNLOCK *cmd, const char *scope, size_t scope_len,
1309 const char *collection, size_t collection_len);
1310LIBCOUCHBASE_API lcb_STATUS lcb_cmdunlock_key(lcb_CMDUNLOCK *cmd, const char *key, size_t key_len);
1311LIBCOUCHBASE_API lcb_STATUS lcb_cmdunlock_cas(lcb_CMDUNLOCK *cmd, uint64_t cas);
1312LIBCOUCHBASE_API lcb_STATUS lcb_cmdunlock_timeout(lcb_CMDUNLOCK *cmd, uint32_t timeout);
1316LIBCOUCHBASE_API lcb_STATUS lcb_cmdunlock_on_behalf_of(lcb_CMDUNLOCK *cmd, const char *data, size_t data_len);
1320LIBCOUCHBASE_API lcb_STATUS lcb_cmdunlock_on_behalf_of_extra_privilege(lcb_CMDUNLOCK *cmd, const char *privilege,
1321 size_t privilege_len);
1322LIBCOUCHBASE_API lcb_STATUS lcb_unlock(lcb_INSTANCE *instance, void *cookie, const lcb_CMDUNLOCK *cmd);
1323
1326/* @ingroup lcb-kv-api
1327 * @defgroup lcb-touch Touch/Expiry
1328 * @brief Modify or clear a document's expiration time
1329 * @details Couchbase allows documents to contain expiration times
1330 * (see lcb_CMDBASE::exptime). Most operations allow the expiry time to be
1331 * updated, however lcb_touch3() allows the exclusive update of the expiration
1332 * time without additional network overhead.
1333 *
1334 * @addtogroup lcb-touch
1335 * @{
1336 */
1337
1368typedef struct lcb_RESPTOUCH_ lcb_RESPTOUCH;
1369
1370LIBCOUCHBASE_API lcb_STATUS lcb_resptouch_status(const lcb_RESPTOUCH *resp);
1371LIBCOUCHBASE_API lcb_STATUS lcb_resptouch_error_context(const lcb_RESPTOUCH *resp,
1372 const lcb_KEY_VALUE_ERROR_CONTEXT **ctx);
1373LIBCOUCHBASE_API lcb_STATUS lcb_resptouch_cookie(const lcb_RESPTOUCH *resp, void **cookie);
1374LIBCOUCHBASE_API lcb_STATUS lcb_resptouch_cas(const lcb_RESPTOUCH *resp, uint64_t *cas);
1375LIBCOUCHBASE_API lcb_STATUS lcb_resptouch_key(const lcb_RESPTOUCH *resp, const char **key, size_t *key_len);
1376LIBCOUCHBASE_API lcb_STATUS lcb_resptouch_mutation_token(const lcb_RESPTOUCH *resp, lcb_MUTATION_TOKEN *token);
1377
1378typedef struct lcb_CMDTOUCH_ lcb_CMDTOUCH;
1379
1380LIBCOUCHBASE_API lcb_STATUS lcb_cmdtouch_create(lcb_CMDTOUCH **cmd);
1381LIBCOUCHBASE_API lcb_STATUS lcb_cmdtouch_destroy(lcb_CMDTOUCH *cmd);
1382LIBCOUCHBASE_API lcb_STATUS lcb_cmdtouch_parent_span(lcb_CMDTOUCH *cmd, lcbtrace_SPAN *span);
1383LIBCOUCHBASE_API lcb_STATUS lcb_cmdtouch_collection(lcb_CMDTOUCH *cmd, const char *scope, size_t scope_len,
1384 const char *collection, size_t collection_len);
1385LIBCOUCHBASE_API lcb_STATUS lcb_cmdtouch_key(lcb_CMDTOUCH *cmd, const char *key, size_t key_len);
1386LIBCOUCHBASE_API lcb_STATUS lcb_cmdtouch_expiry(lcb_CMDTOUCH *cmd, uint32_t expiration);
1387LIBCOUCHBASE_API lcb_STATUS lcb_cmdtouch_durability(lcb_CMDTOUCH *cmd, lcb_DURABILITY_LEVEL level);
1388LIBCOUCHBASE_API lcb_STATUS lcb_cmdtouch_timeout(lcb_CMDTOUCH *cmd, uint32_t timeout);
1392LIBCOUCHBASE_API lcb_STATUS lcb_cmdtouch_on_behalf_of(lcb_CMDTOUCH *cmd, const char *data, size_t data_len);
1396LIBCOUCHBASE_API lcb_STATUS lcb_cmdtouch_on_behalf_of_extra_privilege(lcb_CMDTOUCH *cmd, const char *privilege,
1397 size_t privilege_len);
1398LIBCOUCHBASE_API lcb_STATUS lcb_touch(lcb_INSTANCE *instance, void *cookie, const lcb_CMDTOUCH *cmd);
1399
1417typedef enum {
1418 LCB_PING_STATUS_OK = 0,
1419 LCB_PING_STATUS_TIMEOUT,
1420 LCB_PING_STATUS_ERROR,
1421 LCB_PING_STATUS_INVALID, /* bad index or argument */
1422 LCB_PING_STATUS__MAX
1424
1430typedef enum {
1431 LCB_PING_SERVICE_KV = 0,
1432 LCB_PING_SERVICE_VIEWS,
1433 LCB_PING_SERVICE_QUERY,
1434 LCB_PING_SERVICE_SEARCH,
1435 LCB_PING_SERVICE_ANALYTICS,
1436 LCB_PING_SERVICE__MAX
1438
1439typedef struct lcb_RESPPING_ lcb_RESPPING;
1440
1441LIBCOUCHBASE_API lcb_STATUS lcb_respping_status(const lcb_RESPPING *resp);
1442LIBCOUCHBASE_API lcb_STATUS lcb_respping_cookie(const lcb_RESPPING *resp, void **cookie);
1443LIBCOUCHBASE_API lcb_STATUS lcb_respping_value(const lcb_RESPPING *resp, const char **json, size_t *json_len);
1444LIBCOUCHBASE_API lcb_STATUS lcb_respping_report_id(const lcb_RESPPING *resp, const char **report_id,
1445 size_t *report_id_len);
1446LIBCOUCHBASE_API size_t lcb_respping_result_size(const lcb_RESPPING *resp);
1447LIBCOUCHBASE_API lcb_PING_STATUS lcb_respping_result_status(const lcb_RESPPING *resp, size_t index);
1448LIBCOUCHBASE_API lcb_STATUS lcb_respping_result_id(const lcb_RESPPING *resp, size_t index, const char **endpoint_id,
1449 size_t *endpoint_id_len);
1450LIBCOUCHBASE_API lcb_STATUS lcb_respping_result_service(const lcb_RESPPING *resp, size_t index, lcb_PING_SERVICE *type);
1451LIBCOUCHBASE_API lcb_STATUS lcb_respping_result_remote(const lcb_RESPPING *resp, size_t index, const char **address,
1452 size_t *address_len);
1453LIBCOUCHBASE_API lcb_STATUS lcb_respping_result_local(const lcb_RESPPING *resp, size_t index, const char **address,
1454 size_t *address_len);
1455LIBCOUCHBASE_API lcb_STATUS lcb_respping_result_latency(const lcb_RESPPING *resp, size_t index, uint64_t *latency);
1456
1457LIBCOUCHBASE_API lcb_STATUS lcb_respping_result_namespace(const lcb_RESPPING *resp, size_t index, const char **name,
1458 size_t *name_len);
1459
1460LCB_DEPRECATED2(LIBCOUCHBASE_API lcb_STATUS lcb_respping_result_scope(const lcb_RESPPING *resp, size_t index,
1461 const char **name, size_t *name_len),
1462 "Use lcb_respping_result_namespace");
1463
1464typedef struct lcb_CMDPING_ lcb_CMDPING;
1465
1466LIBCOUCHBASE_API lcb_STATUS lcb_cmdping_create(lcb_CMDPING **cmd);
1467LIBCOUCHBASE_API lcb_STATUS lcb_cmdping_destroy(lcb_CMDPING *cmd);
1468LIBCOUCHBASE_API lcb_STATUS lcb_cmdping_parent_span(lcb_CMDPING *cmd, lcbtrace_SPAN *span);
1469LIBCOUCHBASE_API lcb_STATUS lcb_cmdping_report_id(lcb_CMDPING *cmd, const char *report_id, size_t report_id_len);
1470LIBCOUCHBASE_API lcb_STATUS lcb_cmdping_all(lcb_CMDPING *cmd);
1471LIBCOUCHBASE_API lcb_STATUS lcb_cmdping_kv(lcb_CMDPING *cmd, int enable);
1472LIBCOUCHBASE_API lcb_STATUS lcb_cmdping_query(lcb_CMDPING *cmd, int enable);
1473LIBCOUCHBASE_API lcb_STATUS lcb_cmdping_views(lcb_CMDPING *cmd, int enable);
1474LIBCOUCHBASE_API lcb_STATUS lcb_cmdping_search(lcb_CMDPING *cmd, int enable);
1475LIBCOUCHBASE_API lcb_STATUS lcb_cmdping_analytics(lcb_CMDPING *cmd, int enable);
1476LIBCOUCHBASE_API lcb_STATUS lcb_cmdping_no_metrics(lcb_CMDPING *cmd, int enable);
1477LIBCOUCHBASE_API lcb_STATUS lcb_cmdping_encode_json(lcb_CMDPING *cmd, int enable, int pretty, int with_details);
1478LIBCOUCHBASE_API lcb_STATUS lcb_cmdping_timeout(lcb_CMDPING *cmd, uint32_t timeout);
1479LIBCOUCHBASE_API lcb_STATUS lcb_ping(lcb_INSTANCE *instance, void *cookie, const lcb_CMDPING *cmd);
1480
1481typedef struct lcb_RESPDIAG_ lcb_RESPDIAG;
1482
1483LIBCOUCHBASE_API lcb_STATUS lcb_respdiag_status(const lcb_RESPDIAG *resp);
1484LIBCOUCHBASE_API lcb_STATUS lcb_respdiag_cookie(const lcb_RESPDIAG *resp, void **cookie);
1485LIBCOUCHBASE_API lcb_STATUS lcb_respdiag_value(const lcb_RESPDIAG *resp, const char **json, size_t *json_len);
1486
1487typedef struct lcb_CMDDIAG_ lcb_CMDDIAG;
1488
1489LIBCOUCHBASE_API lcb_STATUS lcb_cmddiag_create(lcb_CMDDIAG **cmd);
1490LIBCOUCHBASE_API lcb_STATUS lcb_cmddiag_destroy(lcb_CMDDIAG *cmd);
1491LIBCOUCHBASE_API lcb_STATUS lcb_cmddiag_report_id(lcb_CMDDIAG *cmd, const char *report_id, size_t report_id_len);
1492LIBCOUCHBASE_API lcb_STATUS lcb_cmddiag_prettify(lcb_CMDDIAG *cmd, int enable);
1530LIBCOUCHBASE_API lcb_STATUS lcb_diag(lcb_INSTANCE *instance, void *cookie, const lcb_CMDDIAG *cmd);
1531
1534/* @ingroup lcb-public-api
1535 * @defgroup lcb-http HTTP Client
1536 * @brief Access Couchbase HTTP APIs
1537 * @details The low-level HTTP client may be used to access various HTTP-based
1538 * Couchbase APIs.
1539 *
1540 * Note that existing higher level APIs can be used for N1QL queries (see
1541 * @ref lcb-n1ql-api) and MapReduce view queries (see @ref lcb-view-api)
1542 *
1543 * @addtogroup lcb-http
1544 * @{
1545 */
1546
1550typedef enum {
1556
1564
1569
1572
1575
1578
1585
1586 LCB_HTTP_TYPE_EVENTING = 7,
1587
1588 LCB_HTTP_TYPE_MAX
1590
1597typedef enum {
1598 LCB_HTTP_METHOD_GET = 0,
1599 LCB_HTTP_METHOD_POST = 1,
1600 LCB_HTTP_METHOD_PUT = 2,
1601 LCB_HTTP_METHOD_DELETE = 3,
1602 LCB_HTTP_METHOD_MAX = 4
1604
1674typedef struct lcb_RESPHTTP_ lcb_RESPHTTP;
1675
1676LIBCOUCHBASE_API lcb_STATUS lcb_resphttp_status(const lcb_RESPHTTP *resp);
1677LIBCOUCHBASE_API lcb_STATUS lcb_resphttp_cookie(const lcb_RESPHTTP *resp, void **cookie);
1678LIBCOUCHBASE_API lcb_STATUS lcb_resphttp_http_status(const lcb_RESPHTTP *resp, uint16_t *status);
1679LIBCOUCHBASE_API lcb_STATUS lcb_resphttp_path(const lcb_RESPHTTP *resp, const char **path, size_t *path_len);
1680LIBCOUCHBASE_API lcb_STATUS lcb_resphttp_body(const lcb_RESPHTTP *resp, const char **body, size_t *body_len);
1681LIBCOUCHBASE_API lcb_STATUS lcb_resphttp_handle(const lcb_RESPHTTP *resp, lcb_HTTP_HANDLE **handle);
1682LIBCOUCHBASE_API lcb_STATUS lcb_resphttp_error_context(const lcb_RESPHTTP *resp, const lcb_HTTP_ERROR_CONTEXT **ctx);
1683
1684LIBCOUCHBASE_API int lcb_resphttp_is_final(const lcb_RESPHTTP *resp);
1689LIBCOUCHBASE_API lcb_STATUS lcb_resphttp_headers(const lcb_RESPHTTP *resp, const char *const **headers);
1690
1691typedef struct lcb_CMDHTTP_ lcb_CMDHTTP;
1692
1693LIBCOUCHBASE_API lcb_STATUS lcb_cmdhttp_create(lcb_CMDHTTP **cmd, lcb_HTTP_TYPE type);
1694LIBCOUCHBASE_API lcb_STATUS lcb_cmdhttp_destroy(lcb_CMDHTTP *cmd);
1695LIBCOUCHBASE_API lcb_STATUS lcb_cmdhttp_parent_span(lcb_CMDHTTP *cmd, lcbtrace_SPAN *span);
1696LIBCOUCHBASE_API lcb_STATUS lcb_cmdhttp_method(lcb_CMDHTTP *cmd, lcb_HTTP_METHOD method);
1697LIBCOUCHBASE_API lcb_STATUS lcb_cmdhttp_path(lcb_CMDHTTP *cmd, const char *path, size_t path_len);
1698LIBCOUCHBASE_API lcb_STATUS lcb_cmdhttp_content_type(lcb_CMDHTTP *cmd, const char *content_type,
1699 size_t content_type_len);
1700LIBCOUCHBASE_API lcb_STATUS lcb_cmdhttp_body(lcb_CMDHTTP *cmd, const char *body, size_t body_len);
1701LIBCOUCHBASE_API lcb_STATUS lcb_cmdhttp_handle(lcb_CMDHTTP *cmd, lcb_HTTP_HANDLE **handle);
1702LIBCOUCHBASE_API lcb_STATUS lcb_cmdhttp_username(lcb_CMDHTTP *cmd, const char *username, size_t username_len);
1703LIBCOUCHBASE_API lcb_STATUS lcb_cmdhttp_password(lcb_CMDHTTP *cmd, const char *password, size_t password_len);
1704LIBCOUCHBASE_API lcb_STATUS lcb_cmdhttp_host(lcb_CMDHTTP *cmd, const char *host, size_t host_len);
1705LIBCOUCHBASE_API lcb_STATUS lcb_cmdhttp_streaming(lcb_CMDHTTP *cmd, int streaming);
1706LIBCOUCHBASE_API lcb_STATUS lcb_cmdhttp_skip_auth_header(lcb_CMDHTTP *cmd, int skip_auth);
1707LIBCOUCHBASE_API lcb_STATUS lcb_cmdhttp_timeout(lcb_CMDHTTP *cmd, uint32_t timeout);
1708LIBCOUCHBASE_API lcb_STATUS lcb_http(lcb_INSTANCE *instance, void *cookie, const lcb_CMDHTTP *cmd);
1709
1735LIBCOUCHBASE_API lcb_STATUS lcb_http_cancel(lcb_INSTANCE *instance, lcb_HTTP_HANDLE *handle);
1736
1802LIBCOUCHBASE_API
1803void lcb_set_cookie(lcb_INSTANCE *instance, const void *cookie);
1804
1812LIBCOUCHBASE_API
1813const void *lcb_get_cookie(lcb_INSTANCE *instance);
1855LIBCOUCHBASE_API
1857
1859typedef enum {
1862
1870 LCB_WAIT_NOCHECK = 0x01
1872
1880LIBCOUCHBASE_API
1882
1894LIBCOUCHBASE_API
1896
1903LIBCOUCHBASE_API
1981LIBCOUCHBASE_API
1983
2002LIBCOUCHBASE_API
2004
2028LIBCOUCHBASE_API
2030
2048LIBCOUCHBASE_API
2050
2053/* @ingroup lcb-public-api
2054 * @defgroup lcb-destroy Destroying
2055 * @brief Library destruction routines
2056 * @addtogroup lcb-destroy
2057 * @{
2058 */
2069LIBCOUCHBASE_API
2071
2076typedef void (*lcb_destroy_callback)(const void *cookie);
2077
2083LIBCOUCHBASE_API
2111LIBCOUCHBASE_API
2112void lcb_destroy_async(lcb_INSTANCE *instance, const void *arg);
2116#define LCB_DATATYPE_JSON 0x01
2117
2119typedef enum { LCB_VALUE_RAW = 0x00, LCB_VALUE_F_JSON = 0x01, LCB_VALUE_F_SNAPPYCOMP = 0x02 } lcb_VALUEFLAGS;
2120
2180LIBCOUCHBASE_API
2181lcb_STATUS lcb_cntl(lcb_INSTANCE *instance, int mode, int cmd, void *arg);
2182
2246LIBCOUCHBASE_API
2247lcb_STATUS lcb_cntl_string(lcb_INSTANCE *instance, const char *key, const char *value);
2248
2257LIBCOUCHBASE_API
2258lcb_STATUS lcb_cntl_setu32(lcb_INSTANCE *instance, int cmd, lcb_U32 arg);
2259
2269LIBCOUCHBASE_API
2270lcb_U32 lcb_cntl_getu32(lcb_INSTANCE *instance, int cmd);
2271
2277LIBCOUCHBASE_API
2278int lcb_cntl_exists(int ctl);
2279
2337LIBCOUCHBASE_API
2339
2355#if !defined(LCB_VERSION_STRING) || defined(__LCB_DOXYGEN__)
2357#define LCB_VERSION_STRING "unknown"
2358#endif
2359
2360#if !defined(LCB_VERSION) || defined(__LCB_DOXYGEN__)
2376#define LCB_VERSION 0x000000
2377#endif
2378
2379#if !defined(LCB_VERSION_CHANGESET) || defined(__LCB_DOXYGEN__)
2381#define LCB_VERSION_CHANGESET "0xdeadbeef"
2382#endif
2383
2394LIBCOUCHBASE_API
2395const char *lcb_get_version(lcb_U32 *version);
2396
2398LIBCOUCHBASE_API LCB_EXTERN_VAR const lcb_U32 lcb_version_g;
2399
2401#define LCB_SUPPORTS_SSL 1
2403#define LCB_SUPPORTS_SNAPPY 2
2405#define LCB_SUPPORTS_TRACING 3
2406
2413LIBCOUCHBASE_API
2415
2430LIBCOUCHBASE_API
2432
2443typedef struct lcb_ANALYTICS_HANDLE_ lcb_ANALYTICS_HANDLE;
2444typedef struct lcb_DEFERRED_HANDLE_ lcb_DEFERRED_HANDLE;
2445
2451typedef struct lcb_RESPANALYTICS_ lcb_RESPANALYTICS;
2452
2460
2461LIBCOUCHBASE_API lcb_STATUS lcb_respanalytics_status(const lcb_RESPANALYTICS *resp);
2462LIBCOUCHBASE_API lcb_STATUS lcb_respanalytics_cookie(const lcb_RESPANALYTICS *resp, void **cookie);
2463LIBCOUCHBASE_API lcb_STATUS lcb_respanalytics_row(const lcb_RESPANALYTICS *resp, const char **row, size_t *row_len);
2464LIBCOUCHBASE_API lcb_STATUS lcb_respanalytics_http_response(const lcb_RESPANALYTICS *resp, const lcb_RESPHTTP **http);
2472LIBCOUCHBASE_API lcb_STATUS lcb_respanalytics_handle(const lcb_RESPANALYTICS *resp, lcb_ANALYTICS_HANDLE **handle);
2473LIBCOUCHBASE_API lcb_STATUS lcb_respanalytics_error_context(const lcb_RESPANALYTICS *resp,
2474 const lcb_ANALYTICS_ERROR_CONTEXT **ctx);
2475LIBCOUCHBASE_API int lcb_respanalytics_is_final(const lcb_RESPANALYTICS *resp);
2476LIBCOUCHBASE_API lcb_STATUS lcb_respanalytics_deferred_handle_extract(const lcb_RESPANALYTICS *resp,
2477 lcb_DEFERRED_HANDLE **handle);
2478LIBCOUCHBASE_API lcb_STATUS lcb_deferred_handle_destroy(lcb_DEFERRED_HANDLE *handle);
2479LIBCOUCHBASE_API lcb_STATUS lcb_deferred_handle_status(lcb_DEFERRED_HANDLE *handle, const char **status,
2480 size_t *status_len);
2481LIBCOUCHBASE_API lcb_STATUS lcb_deferred_handle_callback(lcb_DEFERRED_HANDLE *handle, lcb_ANALYTICS_CALLBACK callback);
2482LIBCOUCHBASE_API lcb_STATUS lcb_deferred_handle_poll(lcb_INSTANCE *instance, void *cookie, lcb_DEFERRED_HANDLE *handle);
2483
2484typedef struct lcb_CMDANALYTICS_ lcb_CMDANALYTICS;
2485
2486typedef struct lcb_INGEST_OPTIONS_ lcb_INGEST_OPTIONS;
2487typedef enum {
2488 LCB_INGEST_METHOD_NONE = 0,
2489 LCB_INGEST_METHOD_UPSERT,
2490 LCB_INGEST_METHOD_INSERT,
2491 LCB_INGEST_METHOD_REPLACE,
2492 LCB_INGEST_METHOD__MAX
2493} lcb_INGEST_METHOD;
2494
2508
2509typedef enum { LCB_INGEST_STATUS_OK = 0, LCB_INGEST_STATUS_IGNORE, LCB_INGEST_STATUS__MAX } lcb_INGEST_STATUS;
2510
2511typedef struct lcb_INGEST_PARAM_ lcb_INGEST_PARAM;
2512
2513typedef lcb_INGEST_STATUS (*lcb_INGEST_DATACONVERTER_CALLBACK)(lcb_INSTANCE *instance, lcb_INGEST_PARAM *param);
2514
2515LIBCOUCHBASE_API lcb_STATUS lcb_ingest_options_create(lcb_INGEST_OPTIONS **options);
2516LIBCOUCHBASE_API lcb_STATUS lcb_ingest_options_destroy(lcb_INGEST_OPTIONS *options);
2517LIBCOUCHBASE_API lcb_STATUS lcb_ingest_options_method(lcb_INGEST_OPTIONS *options, lcb_INGEST_METHOD method);
2518LIBCOUCHBASE_API lcb_STATUS lcb_ingest_options_expiry(lcb_INGEST_OPTIONS *options, uint32_t expiration);
2519LIBCOUCHBASE_API lcb_STATUS lcb_ingest_options_ignore_error(lcb_INGEST_OPTIONS *options, int flag);
2520LIBCOUCHBASE_API lcb_STATUS lcb_ingest_options_data_converter(lcb_INGEST_OPTIONS *options,
2521 lcb_INGEST_DATACONVERTER_CALLBACK callback);
2522
2523LIBCOUCHBASE_API lcb_STATUS lcb_ingest_dataconverter_param_cookie(lcb_INGEST_PARAM *param, void **cookie);
2524LIBCOUCHBASE_API lcb_STATUS lcb_ingest_dataconverter_param_row(lcb_INGEST_PARAM *param, const char **row,
2525 size_t *row_len);
2526LIBCOUCHBASE_API lcb_STATUS lcb_ingest_dataconverter_param_method(lcb_INGEST_PARAM *param, lcb_INGEST_METHOD *method);
2527LIBCOUCHBASE_API lcb_STATUS lcb_ingest_dataconverter_param_set_id(lcb_INGEST_PARAM *param, const char *id,
2528 size_t id_len, void (*id_dtor)(const char *));
2529LIBCOUCHBASE_API lcb_STATUS lcb_ingest_dataconverter_param_set_out(lcb_INGEST_PARAM *param, const char *out,
2530 size_t out_len, void (*out_dtor)(const char *));
2531
2532LIBCOUCHBASE_API lcb_STATUS lcb_cmdanalytics_create(lcb_CMDANALYTICS **cmd);
2533LIBCOUCHBASE_API lcb_STATUS lcb_cmdanalytics_destroy(lcb_CMDANALYTICS *cmd);
2534LIBCOUCHBASE_API lcb_STATUS lcb_cmdanalytics_reset(lcb_CMDANALYTICS *cmd);
2558LIBCOUCHBASE_API lcb_STATUS lcb_cmdanalytics_parent_span(lcb_CMDANALYTICS *cmd, lcbtrace_SPAN *span);
2565LIBCOUCHBASE_API lcb_STATUS lcb_cmdanalytics_callback(lcb_CMDANALYTICS *cmd, lcb_ANALYTICS_CALLBACK callback);
2566LIBCOUCHBASE_API lcb_STATUS lcb_cmdanalytics_encoded_payload(lcb_CMDANALYTICS *cmd, const char **query,
2567 size_t *query_len);
2568LIBCOUCHBASE_API lcb_STATUS lcb_cmdanalytics_payload(lcb_CMDANALYTICS *cmd, const char *query, size_t query_len);
2569LIBCOUCHBASE_API lcb_STATUS lcb_cmdanalytics_statement(lcb_CMDANALYTICS *cmd, const char *statement,
2570 size_t statement_len);
2571LIBCOUCHBASE_API lcb_STATUS lcb_cmdanalytics_named_param(lcb_CMDANALYTICS *cmd, const char *name, size_t name_len,
2572 const char *value, size_t value_len);
2580LIBCOUCHBASE_API lcb_STATUS lcb_cmdanalytics_positional_params(lcb_CMDANALYTICS *cmd, const char *value,
2581 size_t value_len);
2589LIBCOUCHBASE_API lcb_STATUS lcb_cmdanalytics_positional_param(lcb_CMDANALYTICS *cmd, const char *value,
2590 size_t value_len);
2591LIBCOUCHBASE_API lcb_STATUS lcb_cmdanalytics_ingest_options(lcb_CMDANALYTICS *cmd, lcb_INGEST_OPTIONS *options);
2592LIBCOUCHBASE_API lcb_STATUS lcb_cmdanalytics_deferred(lcb_CMDANALYTICS *cmd, int deferred);
2593LIBCOUCHBASE_API lcb_STATUS lcb_cmdanalytics_client_context_id(lcb_CMDANALYTICS *cmd, const char *value,
2594 size_t value_len);
2595LIBCOUCHBASE_API lcb_STATUS lcb_cmdanalytics_readonly(lcb_CMDANALYTICS *cmd, int readonly);
2596LIBCOUCHBASE_API lcb_STATUS lcb_cmdanalytics_priority(lcb_CMDANALYTICS *cmd, int priority);
2597LIBCOUCHBASE_API lcb_STATUS lcb_cmdanalytics_consistency(lcb_CMDANALYTICS *cmd, lcb_ANALYTICS_CONSISTENCY level);
2598LIBCOUCHBASE_API lcb_STATUS lcb_cmdanalytics_option(lcb_CMDANALYTICS *cmd, const char *name, size_t name_len,
2599 const char *value, size_t value_len);
2606LIBCOUCHBASE_API lcb_STATUS lcb_cmdanalytics_scope_name(lcb_CMDANALYTICS *cmd, const char *scope, size_t scope_len);
2620LIBCOUCHBASE_API lcb_STATUS lcb_cmdanalytics_scope_qualifier(lcb_CMDANALYTICS *cmd, const char *qualifier,
2621 size_t qualifier_len);
2629LIBCOUCHBASE_API lcb_STATUS lcb_cmdanalytics_handle(lcb_CMDANALYTICS *cmd, lcb_ANALYTICS_HANDLE **handle);
2630LIBCOUCHBASE_API lcb_STATUS lcb_cmdanalytics_timeout(lcb_CMDANALYTICS *cmd, uint32_t timeout);
2634LIBCOUCHBASE_API lcb_STATUS lcb_cmdanalytics_on_behalf_of(lcb_CMDANALYTICS *cmd, const char *data, size_t data_len);
2647LIBCOUCHBASE_API lcb_STATUS lcb_analytics(lcb_INSTANCE *instance, void *cookie, const lcb_CMDANALYTICS *cmd);
2681LIBCOUCHBASE_API lcb_STATUS lcb_analytics_cancel(lcb_INSTANCE *instance, lcb_ANALYTICS_HANDLE *handle);
2682
2695typedef struct lcb_SEARCH_HANDLE_ lcb_SEARCH_HANDLE;
2696typedef struct lcb_RESPSEARCH_ lcb_RESPSEARCH;
2697
2698LIBCOUCHBASE_API lcb_STATUS lcb_respsearch_status(const lcb_RESPSEARCH *resp);
2699LIBCOUCHBASE_API lcb_STATUS lcb_respsearch_cookie(const lcb_RESPSEARCH *resp, void **cookie);
2700LIBCOUCHBASE_API lcb_STATUS lcb_respsearch_row(const lcb_RESPSEARCH *resp, const char **row, size_t *row_len);
2701LIBCOUCHBASE_API lcb_STATUS lcb_respsearch_http_response(const lcb_RESPSEARCH *resp, const lcb_RESPHTTP **http);
2709LIBCOUCHBASE_API lcb_STATUS lcb_respsearch_handle(const lcb_RESPSEARCH *resp, lcb_SEARCH_HANDLE **handle);
2710LIBCOUCHBASE_API lcb_STATUS lcb_respsearch_error_context(const lcb_RESPSEARCH *resp,
2711 const lcb_SEARCH_ERROR_CONTEXT **ctx);
2712LIBCOUCHBASE_API int lcb_respsearch_is_final(const lcb_RESPSEARCH *resp);
2713
2714typedef struct lcb_CMDSEARCH_ lcb_CMDSEARCH;
2715typedef void (*lcb_SEARCH_CALLBACK)(lcb_INSTANCE *, int, const lcb_RESPSEARCH *);
2716
2717LIBCOUCHBASE_API lcb_STATUS lcb_cmdsearch_create(lcb_CMDSEARCH **cmd);
2718LIBCOUCHBASE_API lcb_STATUS lcb_cmdsearch_destroy(lcb_CMDSEARCH *cmd);
2745LIBCOUCHBASE_API lcb_STATUS lcb_cmdsearch_parent_span(lcb_CMDSEARCH *cmd, lcbtrace_SPAN *span);
2752LIBCOUCHBASE_API lcb_STATUS lcb_cmdsearch_callback(lcb_CMDSEARCH *cmd, lcb_SEARCH_CALLBACK callback);
2753LIBCOUCHBASE_API lcb_STATUS lcb_cmdsearch_payload(lcb_CMDSEARCH *cmd, const char *payload, size_t payload_len);
2760LIBCOUCHBASE_API lcb_STATUS lcb_cmdsearch_handle(lcb_CMDSEARCH *cmd, lcb_SEARCH_HANDLE **handle);
2761LIBCOUCHBASE_API lcb_STATUS lcb_cmdsearch_timeout(lcb_CMDSEARCH *cmd, uint32_t timeout);
2765LIBCOUCHBASE_API lcb_STATUS lcb_cmdsearch_on_behalf_of(lcb_CMDSEARCH *cmd, const char *data, size_t data_len);
2766
2778LIBCOUCHBASE_API lcb_STATUS lcb_search(lcb_INSTANCE *instance, void *cookie, const lcb_CMDSEARCH *cmd);
2786LIBCOUCHBASE_API lcb_STATUS lcb_search_cancel(lcb_INSTANCE *instance, lcb_SEARCH_HANDLE *handle);
2845typedef struct lcb_RESPQUERY_ lcb_RESPQUERY;
2846
2850typedef struct lcb_CMDQUERY_ lcb_CMDQUERY;
2854typedef struct lcb_QUERY_HANDLE_ lcb_QUERY_HANDLE;
2855
2862typedef void (*lcb_QUERY_CALLBACK)(lcb_INSTANCE *, int, const lcb_RESPQUERY *);
2863
2881
2882typedef enum {
2883 LCB_QUERY_PROFILE_OFF = 0,
2884 LCB_QUERY_PROFILE_PHASES = 1,
2885 LCB_QUERY_PROFILE_TIMINGS = 2
2886} lcb_QUERY_PROFILE;
2887
2888LIBCOUCHBASE_API lcb_STATUS lcb_respquery_status(const lcb_RESPQUERY *resp);
2889LIBCOUCHBASE_API lcb_STATUS lcb_respquery_cookie(const lcb_RESPQUERY *resp, void **cookie);
2890LIBCOUCHBASE_API lcb_STATUS lcb_respquery_row(const lcb_RESPQUERY *resp, const char **row, size_t *row_len);
2891LIBCOUCHBASE_API lcb_STATUS lcb_respquery_http_response(const lcb_RESPQUERY *resp, const lcb_RESPHTTP **http);
2892LIBCOUCHBASE_API lcb_STATUS lcb_respquery_handle(const lcb_RESPQUERY *resp, lcb_QUERY_HANDLE **handle);
2893LIBCOUCHBASE_API lcb_STATUS lcb_respquery_error_context(const lcb_RESPQUERY *resp, const lcb_QUERY_ERROR_CONTEXT **ctx);
2894LIBCOUCHBASE_API int lcb_respquery_is_final(const lcb_RESPQUERY *resp);
2927LIBCOUCHBASE_API lcb_STATUS lcb_cmdquery_encoded_payload(lcb_CMDQUERY *cmd, const char **payload, size_t *payload_len);
2954LIBCOUCHBASE_API lcb_STATUS lcb_cmdquery_parent_span(lcb_CMDQUERY *cmd, lcbtrace_SPAN *span);
2962LIBCOUCHBASE_API lcb_STATUS lcb_cmdquery_callback(lcb_CMDQUERY *cmd, lcb_QUERY_CALLBACK callback);
2969LIBCOUCHBASE_API lcb_STATUS lcb_cmdquery_payload(lcb_CMDQUERY *cmd, const char *query, size_t query_len);
2976LIBCOUCHBASE_API lcb_STATUS lcb_cmdquery_statement(lcb_CMDQUERY *cmd, const char *statement, size_t statement_len);
2983LIBCOUCHBASE_API lcb_STATUS lcb_cmdquery_scope_name(lcb_CMDQUERY *cmd, const char *scope, size_t scope_len);
2995LIBCOUCHBASE_API lcb_STATUS lcb_cmdquery_scope_qualifier(lcb_CMDQUERY *cmd, const char *qualifier,
2996 size_t qualifier_len);
3005LIBCOUCHBASE_API lcb_STATUS lcb_cmdquery_named_param(lcb_CMDQUERY *cmd, const char *name, size_t name_len,
3006 const char *value, size_t value_len);
3014LIBCOUCHBASE_API lcb_STATUS lcb_cmdquery_positional_params(lcb_CMDQUERY *cmd, const char *value, size_t value_len);
3022LIBCOUCHBASE_API lcb_STATUS lcb_cmdquery_positional_param(lcb_CMDQUERY *cmd, const char *value, size_t value_len);
3023LIBCOUCHBASE_API lcb_STATUS lcb_cmdquery_adhoc(lcb_CMDQUERY *cmd, int adhoc);
3024LIBCOUCHBASE_API lcb_STATUS lcb_cmdquery_client_context_id(lcb_CMDQUERY *cmd, const char *value, size_t value_len);
3025LIBCOUCHBASE_API lcb_STATUS lcb_cmdquery_pretty(lcb_CMDQUERY *cmd, int pretty);
3045LIBCOUCHBASE_API lcb_STATUS lcb_cmdquery_readonly(lcb_CMDQUERY *cmd, int readonly);
3046LIBCOUCHBASE_API lcb_STATUS lcb_cmdquery_metrics(lcb_CMDQUERY *cmd, int metrics);
3057LIBCOUCHBASE_API lcb_STATUS lcb_cmdquery_scan_cap(lcb_CMDQUERY *cmd, int value);
3058LIBCOUCHBASE_API lcb_STATUS lcb_cmdquery_scan_wait(lcb_CMDQUERY *cmd, uint32_t us);
3067LIBCOUCHBASE_API lcb_STATUS lcb_cmdquery_flex_index(lcb_CMDQUERY *cmd, int value);
3068LIBCOUCHBASE_API lcb_STATUS lcb_cmdquery_profile(lcb_CMDQUERY *cmd, lcb_QUERY_PROFILE mode);
3076LIBCOUCHBASE_API lcb_STATUS lcb_cmdquery_pipeline_cap(lcb_CMDQUERY *cmd, int value);
3084LIBCOUCHBASE_API lcb_STATUS lcb_cmdquery_pipeline_batch(lcb_CMDQUERY *cmd, int value);
3085LIBCOUCHBASE_API lcb_STATUS lcb_cmdquery_max_parallelism(lcb_CMDQUERY *cmd, int value);
3104LIBCOUCHBASE_API lcb_STATUS lcb_cmdquery_consistency_token_for_keyspace(lcb_CMDQUERY *cmd, const char *keyspace,
3105 size_t keyspace_len,
3106 const lcb_MUTATION_TOKEN *token);
3107LIBCOUCHBASE_API lcb_STATUS lcb_cmdquery_consistency_tokens(lcb_CMDQUERY *cmd, lcb_INSTANCE *instance);
3116LIBCOUCHBASE_API lcb_STATUS lcb_cmdquery_option(lcb_CMDQUERY *cmd, const char *name, size_t name_len, const char *value,
3117 size_t value_len);
3118LIBCOUCHBASE_API lcb_STATUS lcb_cmdquery_handle(lcb_CMDQUERY *cmd, lcb_QUERY_HANDLE **handle);
3119LIBCOUCHBASE_API lcb_STATUS lcb_cmdquery_timeout(lcb_CMDQUERY *cmd, uint32_t timeout);
3129LIBCOUCHBASE_API lcb_STATUS lcb_cmdquery_preserve_expiry(lcb_CMDQUERY *cmd, int preserve_expiry);
3130
3134LIBCOUCHBASE_API lcb_STATUS lcb_cmdquery_on_behalf_of(lcb_CMDQUERY *cmd, const char *data, size_t data_len);
3135
3147LIBCOUCHBASE_API lcb_STATUS lcb_query(lcb_INSTANCE *instance, void *cookie, const lcb_CMDQUERY *cmd);
3176LIBCOUCHBASE_API lcb_STATUS lcb_query_cancel(lcb_INSTANCE *instance, lcb_QUERY_HANDLE *handle);
3190typedef struct lcb_RESPVIEW_ lcb_RESPVIEW;
3191typedef struct lcb_CMDVIEW_ lcb_CMDVIEW;
3192
3196typedef struct lcb_VIEW_HANDLE_ lcb_VIEW_HANDLE;
3197
3209typedef void (*lcb_VIEW_CALLBACK)(lcb_INSTANCE *instance, int cbtype, const lcb_RESPVIEW *row);
3210
3211LIBCOUCHBASE_API lcb_STATUS lcb_respview_status(const lcb_RESPVIEW *resp);
3212LIBCOUCHBASE_API lcb_STATUS lcb_respview_cookie(const lcb_RESPVIEW *resp, void **cookie);
3213LIBCOUCHBASE_API lcb_STATUS lcb_respview_key(const lcb_RESPVIEW *resp, const char **key, size_t *key_len);
3214LIBCOUCHBASE_API lcb_STATUS lcb_respview_doc_id(const lcb_RESPVIEW *resp, const char **doc_id, size_t *doc_id_len);
3215LIBCOUCHBASE_API lcb_STATUS lcb_respview_row(const lcb_RESPVIEW *resp, const char **row, size_t *row_len);
3216LIBCOUCHBASE_API lcb_STATUS lcb_respview_document(const lcb_RESPVIEW *resp, const lcb_RESPGET **doc);
3217LIBCOUCHBASE_API lcb_STATUS lcb_respview_http_response(const lcb_RESPVIEW *resp, const lcb_RESPHTTP **http);
3218LIBCOUCHBASE_API lcb_STATUS lcb_respview_handle(const lcb_RESPVIEW *resp, lcb_VIEW_HANDLE **handle);
3219LIBCOUCHBASE_API lcb_STATUS lcb_respview_error_context(const lcb_RESPVIEW *resp, const lcb_VIEW_ERROR_CONTEXT **ctx);
3220LIBCOUCHBASE_API int lcb_respview_is_final(const lcb_RESPVIEW *resp);
3221
3222LIBCOUCHBASE_API lcb_STATUS lcb_cmdview_create(lcb_CMDVIEW **cmd);
3223LIBCOUCHBASE_API lcb_STATUS lcb_cmdview_destroy(lcb_CMDVIEW *cmd);
3224LIBCOUCHBASE_API lcb_STATUS lcb_cmdview_parent_span(lcb_CMDVIEW *cmd, lcbtrace_SPAN *span);
3225LIBCOUCHBASE_API lcb_STATUS lcb_cmdview_callback(lcb_CMDVIEW *cmd, lcb_VIEW_CALLBACK callback);
3226LIBCOUCHBASE_API lcb_STATUS lcb_cmdview_design_document(lcb_CMDVIEW *cmd, const char *ddoc, size_t ddoc_len);
3227LIBCOUCHBASE_API lcb_STATUS lcb_cmdview_view_name(lcb_CMDVIEW *cmd, const char *view, size_t view_len);
3228LIBCOUCHBASE_API lcb_STATUS lcb_cmdview_option_string(lcb_CMDVIEW *cmd, const char *optstr, size_t optstr_len);
3229LIBCOUCHBASE_API lcb_STATUS lcb_cmdview_post_data(lcb_CMDVIEW *cmd, const char *data, size_t data_len);
3230LIBCOUCHBASE_API lcb_STATUS lcb_cmdview_include_docs(lcb_CMDVIEW *cmd, int include_docs);
3231LIBCOUCHBASE_API lcb_STATUS lcb_cmdview_max_concurrent_docs(lcb_CMDVIEW *cmd, uint32_t num);
3232LIBCOUCHBASE_API lcb_STATUS lcb_cmdview_no_row_parse(lcb_CMDVIEW *cmd, int flag);
3233LIBCOUCHBASE_API lcb_STATUS lcb_cmdview_handle(lcb_CMDVIEW *cmd, lcb_VIEW_HANDLE **handle);
3234LIBCOUCHBASE_API lcb_STATUS lcb_cmdview_timeout(lcb_CMDVIEW *cmd, uint32_t timeout);
3235LIBCOUCHBASE_API lcb_STATUS lcb_view(lcb_INSTANCE *instance, void *cookie, const lcb_CMDVIEW *cmd);
3236LIBCOUCHBASE_API lcb_STATUS lcb_view_cancel(lcb_INSTANCE *instance, lcb_VIEW_HANDLE *handle);
3239/* @ingroup lcb-public-api
3240 * @defgroup lcb-subdoc Sub-Document API
3241 * @brief Experimental in-document API access
3242 * @details The sub-document API uses features from the upcoming Couchbase
3243 * 4.5 release which allows access to parts of the document. These parts are
3244 * called _sub-documents_ and can be accessed using the sub-document API
3245 *
3246 * @addtogroup lcb-subdoc
3247 * @{
3248 */
3249
3250typedef struct lcb_RESPSUBDOC_ lcb_RESPSUBDOC;
3251
3252LIBCOUCHBASE_API lcb_STATUS lcb_respsubdoc_status(const lcb_RESPSUBDOC *resp);
3253LIBCOUCHBASE_API lcb_STATUS lcb_respsubdoc_error_context(const lcb_RESPSUBDOC *resp,
3254 const lcb_KEY_VALUE_ERROR_CONTEXT **ctx);
3255LIBCOUCHBASE_API lcb_STATUS lcb_respsubdoc_cookie(const lcb_RESPSUBDOC *resp, void **cookie);
3256LIBCOUCHBASE_API lcb_STATUS lcb_respsubdoc_cas(const lcb_RESPSUBDOC *resp, uint64_t *cas);
3257LIBCOUCHBASE_API lcb_STATUS lcb_respsubdoc_key(const lcb_RESPSUBDOC *resp, const char **key, size_t *key_len);
3258LIBCOUCHBASE_API lcb_STATUS lcb_respsubdoc_mutation_token(const lcb_RESPSUBDOC *resp, lcb_MUTATION_TOKEN *token);
3259
3260LIBCOUCHBASE_API size_t lcb_respsubdoc_result_size(const lcb_RESPSUBDOC *resp);
3261LIBCOUCHBASE_API lcb_STATUS lcb_respsubdoc_result_status(const lcb_RESPSUBDOC *resp, size_t index);
3262LIBCOUCHBASE_API lcb_STATUS lcb_respsubdoc_result_value(const lcb_RESPSUBDOC *resp, size_t index, const char **value,
3263 size_t *value_len);
3264
3269LIBCOUCHBASE_API int lcb_respsubdoc_is_deleted(const lcb_RESPSUBDOC *resp);
3270
3271typedef struct lcb_SUBDOCSPECS_ lcb_SUBDOCSPECS;
3272
3274#define LCB_SUBDOCSPECS_F_MKINTERMEDIATES (1u << 16u)
3275
3277#define LCB_SUBDOCSPECS_F_XATTRPATH (1u << 18u)
3278
3280#define LCB_SUBDOCSPECS_F_XATTR_MACROVALUES (1u << 19u)
3281
3283#define LCB_SUBDOCSPECS_F_XATTR_DELETED_OK (1u << 20u)
3284
3285LIBCOUCHBASE_API lcb_STATUS lcb_subdocspecs_create(lcb_SUBDOCSPECS **operations, size_t capacity);
3286LIBCOUCHBASE_API lcb_STATUS lcb_subdocspecs_destroy(lcb_SUBDOCSPECS *operations);
3287LIBCOUCHBASE_API lcb_STATUS lcb_subdocspecs_get(lcb_SUBDOCSPECS *operations, size_t index, uint32_t flags,
3288 const char *path, size_t path_len);
3289LIBCOUCHBASE_API lcb_STATUS lcb_subdocspecs_exists(lcb_SUBDOCSPECS *operations, size_t index, uint32_t flags,
3290 const char *path, size_t path_len);
3291LIBCOUCHBASE_API lcb_STATUS lcb_subdocspecs_replace(lcb_SUBDOCSPECS *operations, size_t index, uint32_t flags,
3292 const char *path, size_t path_len, const char *value,
3293 size_t value_len);
3294LIBCOUCHBASE_API lcb_STATUS lcb_subdocspecs_dict_add(lcb_SUBDOCSPECS *operations, size_t index, uint32_t flags,
3295 const char *path, size_t path_len, const char *value,
3296 size_t value_len);
3297LIBCOUCHBASE_API lcb_STATUS lcb_subdocspecs_dict_upsert(lcb_SUBDOCSPECS *operations, size_t index, uint32_t flags,
3298 const char *path, size_t path_len, const char *value,
3299 size_t value_len);
3300LIBCOUCHBASE_API lcb_STATUS lcb_subdocspecs_array_add_first(lcb_SUBDOCSPECS *operations, size_t index, uint32_t flags,
3301 const char *path, size_t path_len, const char *value,
3302 size_t value_len);
3303LIBCOUCHBASE_API lcb_STATUS lcb_subdocspecs_array_add_last(lcb_SUBDOCSPECS *operations, size_t index, uint32_t flags,
3304 const char *path, size_t path_len, const char *value,
3305 size_t value_len);
3306LIBCOUCHBASE_API lcb_STATUS lcb_subdocspecs_array_add_unique(lcb_SUBDOCSPECS *operations, size_t index, uint32_t flags,
3307 const char *path, size_t path_len, const char *value,
3308 size_t value_len);
3309LIBCOUCHBASE_API lcb_STATUS lcb_subdocspecs_array_insert(lcb_SUBDOCSPECS *operations, size_t index, uint32_t flags,
3310 const char *path, size_t path_len, const char *value,
3311 size_t value_len);
3312LIBCOUCHBASE_API lcb_STATUS lcb_subdocspecs_counter(lcb_SUBDOCSPECS *operations, size_t index, uint32_t flags,
3313 const char *path, size_t path_len, int64_t delta);
3314LIBCOUCHBASE_API lcb_STATUS lcb_subdocspecs_remove(lcb_SUBDOCSPECS *operations, size_t index, uint32_t flags,
3315 const char *path, size_t path_len);
3316LIBCOUCHBASE_API lcb_STATUS lcb_subdocspecs_get_count(lcb_SUBDOCSPECS *operations, size_t index, uint32_t flags,
3317 const char *path, size_t path_len);
3318
3319typedef struct lcb_CMDSUBDOC_ lcb_CMDSUBDOC;
3320
3321LIBCOUCHBASE_API lcb_STATUS lcb_cmdsubdoc_create(lcb_CMDSUBDOC **cmd);
3322LIBCOUCHBASE_API lcb_STATUS lcb_cmdsubdoc_destroy(lcb_CMDSUBDOC *cmd);
3323LIBCOUCHBASE_API lcb_STATUS lcb_cmdsubdoc_parent_span(lcb_CMDSUBDOC *cmd, lcbtrace_SPAN *span);
3324LIBCOUCHBASE_API lcb_STATUS lcb_cmdsubdoc_collection(lcb_CMDSUBDOC *cmd, const char *scope, size_t scope_len,
3325 const char *collection, size_t collection_len);
3326LIBCOUCHBASE_API lcb_STATUS lcb_cmdsubdoc_key(lcb_CMDSUBDOC *cmd, const char *key, size_t key_len);
3327LIBCOUCHBASE_API lcb_STATUS lcb_cmdsubdoc_cas(lcb_CMDSUBDOC *cmd, uint64_t cas);
3328LIBCOUCHBASE_API lcb_STATUS lcb_cmdsubdoc_specs(lcb_CMDSUBDOC *cmd, const lcb_SUBDOCSPECS *operations);
3329LIBCOUCHBASE_API lcb_STATUS lcb_cmdsubdoc_expiry(lcb_CMDSUBDOC *cmd, uint32_t expiration);
3330LIBCOUCHBASE_API lcb_STATUS lcb_cmdsubdoc_preserve_expiry(lcb_CMDSUBDOC *cmd, int should_preserve);
3331LIBCOUCHBASE_API lcb_STATUS lcb_cmdsubdoc_durability(lcb_CMDSUBDOC *cmd, lcb_DURABILITY_LEVEL level);
3332typedef enum {
3333 LCB_SUBDOC_STORE_REPLACE = 0,
3334 LCB_SUBDOC_STORE_UPSERT,
3335 LCB_SUBDOC_STORE_INSERT
3336} lcb_SUBDOC_STORE_SEMANTICS;
3337LIBCOUCHBASE_API lcb_STATUS lcb_cmdsubdoc_store_semantics(lcb_CMDSUBDOC *cmd, lcb_SUBDOC_STORE_SEMANTICS mode);
3338LIBCOUCHBASE_API lcb_STATUS lcb_cmdsubdoc_access_deleted(lcb_CMDSUBDOC *cmd, int flag);
3339
3344LIBCOUCHBASE_API lcb_STATUS lcb_cmdsubdoc_create_as_deleted(lcb_CMDSUBDOC *cmd, int flag);
3345LIBCOUCHBASE_API lcb_STATUS lcb_cmdsubdoc_timeout(lcb_CMDSUBDOC *cmd, uint32_t timeout);
3349LIBCOUCHBASE_API lcb_STATUS lcb_cmdsubdoc_on_behalf_of(lcb_CMDSUBDOC *cmd, const char *data, size_t data_len);
3350LIBCOUCHBASE_API lcb_STATUS lcb_cmdsubdoc_on_behalf_of_extra_privilege(lcb_CMDSUBDOC *cmd, const char *privilege,
3351 size_t privilege_len);
3352
3353LIBCOUCHBASE_API lcb_STATUS lcb_subdoc(lcb_INSTANCE *instance, void *cookie, const lcb_CMDSUBDOC *cmd);
3356/* Post-include some other headers */
3357#ifdef __cplusplus
3358}
3359#endif /* __cplusplus */
3360#endif /* LIBCOUCHBASE_COUCHBASE_H */
Credentials store for Couchbase.
Command codes for libcouchbase.
lcb_STATUS lcb_http_cancel(lcb_INSTANCE *instance, lcb_HTTP_HANDLE *handle)
Cancel ongoing HTTP request.
void lcb_destroy_async(lcb_INSTANCE *instance, const void *arg)
Asynchronously schedule the destruction of an instance.
lcb_STATUS lcb_cmdsubdoc_on_behalf_of(lcb_CMDSUBDOC *cmd, const char *data, size_t data_len)
lcb_VALUEFLAGS
Definition couchbase.h:2119
lcb_STATUS lcb_cmdtouch_on_behalf_of(lcb_CMDTOUCH *cmd, const char *data, size_t data_len)
lcb_HTTP_METHOD
HTTP Request method enumeration These just enumerate the various types of HTTP request methods suppor...
Definition couchbase.h:1597
void(* lcb_destroy_callback)(const void *cookie)
Callback received when instance is about to be destroyed.
Definition couchbase.h:2076
struct lcb_RESPTOUCH_ lcb_RESPTOUCH
Spool a touch request.
Definition couchbase.h:1368
lcb_destroy_callback lcb_set_destroy_callback(lcb_INSTANCE *instance, lcb_destroy_callback)
Set the callback to be invoked when the instance is destroyed asynchronously.
lcb_STATUS lcb_resphttp_headers(const lcb_RESPHTTP *resp, const char *const **headers)
List of key-value headers.
struct lcb_RESPHTTP_ lcb_RESPHTTP
Definition couchbase.h:1674
lcb_STATUS lcb_cmdtouch_on_behalf_of_extra_privilege(lcb_CMDTOUCH *cmd, const char *privilege, size_t privilege_len)
lcb_HTTP_TYPE
The type of HTTP request to execute.
Definition couchbase.h:1550
@ LCB_HTTP_TYPE_PING
Special pseudo-type, for ping endpoints in various services.
Definition couchbase.h:1584
@ LCB_HTTP_TYPE_MANAGEMENT
Execute a management API request.
Definition couchbase.h:1563
@ LCB_HTTP_TYPE_QUERY
Execute an N1QL Query.
Definition couchbase.h:1571
@ LCB_HTTP_TYPE_ANALYTICS
Execute an Analytics Query.
Definition couchbase.h:1577
@ LCB_HTTP_TYPE_RAW
Execute an arbitrary request against a host and port.
Definition couchbase.h:1568
@ LCB_HTTP_TYPE_SEARCH
Search a fulltext index.
Definition couchbase.h:1574
@ LCB_HTTP_TYPE_VIEW
Execute a request against the bucket.
Definition couchbase.h:1555
void lcb_destroy(lcb_INSTANCE *instance)
Destroy (and release all allocated resources) an instance of lcb.
lcb_STATUS lcb_cmdsubdoc_create_as_deleted(lcb_CMDSUBDOC *cmd, int flag)
If new document created, the server will create it as a tombstone.
Definition of all of the error codes used by libcouchbase.
lcb_STATUS lcb_analytics_cancel(lcb_INSTANCE *instance, lcb_ANALYTICS_HANDLE *handle)
Cancels an in-progress request.
lcb_STATUS lcb_cmdanalytics_handle(lcb_CMDANALYTICS *cmd, lcb_ANALYTICS_HANDLE **handle)
Get handle to analytics query.
lcb_STATUS lcb_respanalytics_handle(const lcb_RESPANALYTICS *resp, lcb_ANALYTICS_HANDLE **handle)
Get handle to analytics query.
lcb_ANALYTICS_CONSISTENCY
Definition couchbase.h:2495
lcb_STATUS lcb_cmdanalytics_on_behalf_of(lcb_CMDANALYTICS *cmd, const char *data, size_t data_len)
lcb_STATUS lcb_analytics(lcb_INSTANCE *instance, void *cookie, const lcb_CMDANALYTICS *cmd)
Execute a Analytics query.
lcb_STATUS lcb_cmdanalytics_positional_param(lcb_CMDANALYTICS *cmd, const char *value, size_t value_len)
lcb_STATUS lcb_cmdanalytics_positional_params(lcb_CMDANALYTICS *cmd, const char *value, size_t value_len)
Sets the positional arguments for the query.
void(* lcb_ANALYTICS_CALLBACK)(lcb_INSTANCE *, int, const lcb_RESPANALYTICS *)
Callback to be invoked for each row.
Definition couchbase.h:2459
lcb_STATUS lcb_cmdanalytics_scope_qualifier(lcb_CMDANALYTICS *cmd, const char *qualifier, size_t qualifier_len)
struct lcb_RESPANALYTICS_ lcb_RESPANALYTICS
Response for a Analytics query.
Definition couchbase.h:2451
lcb_STATUS lcb_cmdanalytics_scope_name(lcb_CMDANALYTICS *cmd, const char *scope, size_t scope_len)
Associate scope name with the query.
@ LCB_ANALYTICS_CONSISTENCY_NOT_BOUNDED
No consistency constraints.
Definition couchbase.h:2501
@ LCB_ANALYTICS_CONSISTENCY_REQUEST_PLUS
Strong consistency.
Definition couchbase.h:2506
Opaque pointer containing credentials for the library.
const char * lcb_get_version(lcb_U32 *version)
Get the version of the library.
int lcb_supports_feature(int n)
LCB_EXTERN_VAR const lcb_U32 lcb_version_g
Global/extern variable containing the version of the library.
Definition couchbase.h:2398
lcb_STATUS lcb_respsearch_handle(const lcb_RESPSEARCH *resp, lcb_SEARCH_HANDLE **handle)
Get search handle from search response.
lcb_STATUS lcb_cmdsearch_on_behalf_of(lcb_CMDSEARCH *cmd, const char *data, size_t data_len)
lcb_STATUS lcb_search(lcb_INSTANCE *instance, void *cookie, const lcb_CMDSEARCH *cmd)
Issue a full-text query.
lcb_STATUS lcb_cmdsearch_handle(lcb_CMDSEARCH *cmd, lcb_SEARCH_HANDLE **handle)
Obtain handle to search.
lcb_STATUS lcb_search_cancel(lcb_INSTANCE *instance, lcb_SEARCH_HANDLE *handle)
Cancel a full-text query in progress.
lcb_STATUS lcb_cntl_string(lcb_INSTANCE *instance, const char *key, const char *value)
Alternatively one may change configuration settings by passing a string key and value.
void lcb_refresh_config(lcb_INSTANCE *instance)
Force the library to refetch the cluster configuration.
lcb_STATUS lcb_cntl(lcb_INSTANCE *instance, int mode, int cmd, void *arg)
This function exposes an ioctl/fcntl-like interface to read and write various configuration propertie...
lcb_STATUS lcb_cntl_setu32(lcb_INSTANCE *instance, int cmd, lcb_U32 arg)
Convenience function to set a value as an lcb_U32.
lcb_U32 lcb_cntl_getu32(lcb_INSTANCE *instance, int cmd)
Retrieve an lcb_U32 setting.
int lcb_cntl_exists(int ctl)
Determine if a specific control code exists.
lcb_STATUS lcb_cmdcounter_on_behalf_of_extra_privilege(lcb_CMDCOUNTER *cmd, const char *privilege, size_t privilege_len)
struct lcb_RESPCOUNTER_ lcb_RESPCOUNTER
Schedule single counter operation.
Definition couchbase.h:1201
lcb_STATUS lcb_cmdcounter_on_behalf_of(lcb_CMDCOUNTER *cmd, const char *data, size_t data_len)
lcb_STATUS
Error codes returned by the library.
Definition error.h:213
lcb_STATUS lcb_cmdgetreplica_on_behalf_of(lcb_CMDGETREPLICA *cmd, const char *data, size_t data_len)
lcb_REPLICA_MODE
Spool a single get-with-replica request.
Definition couchbase.h:787
lcb_STATUS lcb_cmdgetreplica_on_behalf_of_extra_privilege(lcb_CMDGETREPLICA *cmd, const char *privilege, size_t privilege_len)
lcb_STATUS lcb_cmdget_on_behalf_of_extra_privilege(lcb_CMDGET *cmd, const char *privilege, size_t privilege_len)
struct lcb_RESPGET_ lcb_RESPGET
Command for retrieving a single item.
Definition couchbase.h:687
lcb_STATUS lcb_cmdget_on_behalf_of(lcb_CMDGET *cmd, const char *data, size_t data_len)
lcb_STATUS lcb_get_bootstrap_status(lcb_INSTANCE *instance)
Gets the initial bootstrap status.
void lcb_set_auth(lcb_INSTANCE *instance, lcb_AUTHENTICATOR *auth)
Sets the authenticator object for the instance.
lcb_BTYPE
Type of the bucket.
Definition couchbase.h:240
lcb_bootstrap_callback lcb_set_bootstrap_callback(lcb_INSTANCE *instance, lcb_bootstrap_callback callback)
Set the callback for notification of success or failure of initial connection.
lcb_STATUS lcb_create(lcb_INSTANCE **instance, const lcb_CREATEOPTS *options)
Create an instance of lcb.
lcb_INSTANCE_TYPE
Handle types.
Definition couchbase.h:255
struct lcb_st lcb_INSTANCE
Library handle representing a connection to a cluster and its data buckets.
Definition couchbase.h:35
lcb_STATUS lcb_connect(lcb_INSTANCE *instance)
Schedule the initial connection This function will schedule the initial connection for the handle.
void(* lcb_bootstrap_callback)(lcb_INSTANCE *instance, lcb_STATUS err)
Bootstrap callback.
Definition couchbase.h:354
@ LCB_BTYPE_UNSPEC
Unknown or unspecified.
Definition couchbase.h:241
@ LCB_BTYPE_COUCHBASE
Data persisted and replicated.
Definition couchbase.h:242
@ LCB_BTYPE_EPHEMERAL
Data not persisted, but replicated.
Definition couchbase.h:243
@ LCB_BTYPE_MEMCACHED
Data not persisted and not replicated.
Definition couchbase.h:244
@ LCB_TYPE_CLUSTER
Handle for administrative access.
Definition couchbase.h:257
@ LCB_TYPE_BUCKET
Handle for data access (default)
Definition couchbase.h:256
structure indicating a buffer and its size
Definition iops.h:78
lcb_RESPCALLBACK lcb_install_callback(lcb_INSTANCE *instance, int cbtype, lcb_RESPCALLBACK cb)
lcb_STATUS lcb_cmdunlock_on_behalf_of(lcb_CMDUNLOCK *cmd, const char *data, size_t data_len)
lcb_CALLBACK_TYPE
The type of response passed to the callback.
Definition couchbase.h:469
lcb_STATUS lcb_cmdexists_on_behalf_of_extra_privilege(lcb_CMDEXISTS *cmd, const char *privilege, size_t privilege_len)
lcb_DURABILITY_LEVEL
Definition couchbase.h:524
void(* lcb_RESPCALLBACK)(lcb_INSTANCE *instance, int cbtype, const lcb_RESPBASE *resp)
Callback invoked for responses.
Definition couchbase.h:554
lcb_STATUS lcb_cmdexists_on_behalf_of(lcb_CMDEXISTS *cmd, const char *data, size_t data_len)
lcb_RESPFLAGS
Response flags.
Definition couchbase.h:430
lcb_RESPCALLBACK lcb_get_callback(lcb_INSTANCE *instance, int cbtype)
const char * lcb_strcbtype(int cbtype)
Returns the type of the callback as a string.
struct lcb_RESPUNLOCK_ lcb_RESPUNLOCK
Unlock a previously locked item using lcb_cmdunlock.
Definition couchbase.h:1294
lcb_STATUS lcb_cmdunlock_on_behalf_of_extra_privilege(lcb_CMDUNLOCK *cmd, const char *privilege, size_t privilege_len)
@ LCB_CALLBACK_ENDURE
lcb_endure3_ctxnew()
Definition couchbase.h:482
@ LCB_CALLBACK_VERSIONS
lcb_server_versions()
Definition couchbase.h:478
@ LCB_CALLBACK_GETCID
lcb_getcid()
Definition couchbase.h:493
@ LCB_CALLBACK_VERBOSITY
lcb_server_verbosity()
Definition couchbase.h:479
@ LCB_CALLBACK_EXISTS
lcb_exists()
Definition couchbase.h:494
@ LCB_CALLBACK_PING
lcb_ping3()
Definition couchbase.h:490
@ LCB_CALLBACK_REMOVE
lcb_remove()
Definition couchbase.h:475
@ LCB_CALLBACK_TOUCH
lcb_touch()
Definition couchbase.h:474
@ LCB_CALLBACK_COLLECTIONS_GET_MANIFEST
lcb_getmanifest()
Definition couchbase.h:492
@ LCB_CALLBACK_NOOP
lcb_noop3()
Definition couchbase.h:489
@ LCB_CALLBACK_STATS
lcb_stats3()
Definition couchbase.h:477
@ LCB_CALLBACK_GET
lcb_get()
Definition couchbase.h:471
@ LCB_CALLBACK_COUNTER
lcb_counter()
Definition couchbase.h:473
@ LCB_CALLBACK_HTTP
lcb_http()
Definition couchbase.h:483
@ LCB_CALLBACK_STORE
lcb_store()
Definition couchbase.h:472
@ LCB_CALLBACK_GETREPLICA
lcb_getreplica()
Definition couchbase.h:481
@ LCB_CALLBACK_UNLOCK
lcb_unlock()
Definition couchbase.h:476
@ LCB_CALLBACK_CBFLUSH
lcb_cbflush3()
Definition couchbase.h:484
@ LCB_CALLBACK_DIAG
lcb_diag()
Definition couchbase.h:491
@ LCB_CALLBACK_SDLOOKUP
<for lcb_storedur3()
Definition couchbase.h:487
@ LCB_CALLBACK_DEFAULT
Default callback invoked as a fallback.
Definition couchbase.h:470
@ LCB_CALLBACK_OBSEQNO
For lcb_observe_seqno3()
Definition couchbase.h:485
@ LCB_CALLBACK_OBSERVE
lcb_observe3_ctxnew()
Definition couchbase.h:480
@ LCB_DURABILITYLEVEL_MAJORITY
Mutation must be replicated to (i.e.
Definition couchbase.h:531
@ LCB_DURABILITYLEVEL_MAJORITY_AND_PERSIST_TO_ACTIVE
As majority, but additionally persisted to the active node.
Definition couchbase.h:535
@ LCB_DURABILITYLEVEL_PERSIST_TO_MAJORITY
Mutation must be persisted to (i.e.
Definition couchbase.h:540
@ LCB_RESP_F_NMVGEN
The response was a result of a not-my-vbucket error.
Definition couchbase.h:442
@ LCB_RESP_F_FINAL
No more responses are to be received for this request.
Definition couchbase.h:432
@ LCB_RESP_F_CLIENTGEN
The response was artificially generated inside the client.
Definition couchbase.h:439
@ LCB_RESP_F_ERRINFO
The response has extra error information as value (see SDK-RFC-28).
Definition couchbase.h:453
@ LCB_RESP_F_SDSINGLE
Flag, only valid for subdoc responses, indicates that the response was processed using the single-ope...
Definition couchbase.h:450
@ LCB_RESP_F_EXTDATA
The response has additional internal data.
Definition couchbase.h:446
int lcb_is_redacting_logs(lcb_INSTANCE *instance)
Returns whether the library redacting logs for this connection instance.
lcb_STATUS lcb_query(lcb_INSTANCE *instance, void *cookie, const lcb_CMDQUERY *cmd)
Execute a N1QL query.
lcb_STATUS lcb_cmdquery_statement(lcb_CMDQUERY *cmd, const char *statement, size_t statement_len)
Sets the actual statement to be executed.
lcb_STATUS lcb_query_cancel(lcb_INSTANCE *instance, lcb_QUERY_HANDLE *handle)
Cancels an in-progress request.
lcb_STATUS lcb_cmdquery_option(lcb_CMDQUERY *cmd, const char *name, size_t name_len, const char *value, size_t value_len)
Set a query option.
lcb_STATUS lcb_cmdquery_named_param(lcb_CMDQUERY *cmd, const char *name, size_t name_len, const char *value, size_t value_len)
Sets a named argument for the query.
lcb_STATUS lcb_cmdquery_reset(lcb_CMDQUERY *cmd)
Reset the lcb_CMDQUERY structure so that it may be reused for a subsequent query.
struct lcb_RESPQUERY_ lcb_RESPQUERY
Opaque query response structure.
Definition couchbase.h:2845
lcb_STATUS lcb_cmdquery_create(lcb_CMDQUERY **cmd)
Create a new lcb_CMDQUERY object.
lcb_STATUS lcb_cmdquery_pipeline_cap(lcb_CMDQUERY *cmd, int value)
Sets maximum number of items each execution operator can buffer between various operators.
struct lcb_CMDQUERY_ lcb_CMDQUERY
Opaque query command structure.
Definition couchbase.h:2850
lcb_STATUS lcb_cmdquery_consistency(lcb_CMDQUERY *cmd, lcb_QUERY_CONSISTENCY mode)
Sets the consistency mode for the request.
lcb_QUERY_CONSISTENCY
Definition couchbase.h:2864
void(* lcb_QUERY_CALLBACK)(lcb_INSTANCE *, int, const lcb_RESPQUERY *)
Callback to be invoked for each row.
Definition couchbase.h:2862
lcb_STATUS lcb_cmdquery_flex_index(lcb_CMDQUERY *cmd, int value)
lcb_STATUS lcb_cmdquery_positional_param(lcb_CMDQUERY *cmd, const char *value, size_t value_len)
lcb_STATUS lcb_cmdquery_scope_qualifier(lcb_CMDQUERY *cmd, const char *qualifier, size_t qualifier_len)
lcb_STATUS lcb_cmdquery_pipeline_batch(lcb_CMDQUERY *cmd, int value)
Sets the number of items execution operators can batch for fetch from the KV.
lcb_STATUS lcb_cmdquery_destroy(lcb_CMDQUERY *cmd)
Free the command structure.
lcb_STATUS lcb_cmdquery_positional_params(lcb_CMDQUERY *cmd, const char *value, size_t value_len)
Sets the positional arguments for the query.
lcb_STATUS lcb_cmdquery_readonly(lcb_CMDQUERY *cmd, int readonly)
Marks query as read-only.
lcb_STATUS lcb_cmdquery_consistency_token_for_keyspace(lcb_CMDQUERY *cmd, const char *keyspace, size_t keyspace_len, const lcb_MUTATION_TOKEN *token)
Indicate that the query should synchronize its internal snapshot to reflect the changes indicated by ...
lcb_STATUS lcb_cmdquery_on_behalf_of(lcb_CMDQUERY *cmd, const char *data, size_t data_len)
lcb_STATUS lcb_cmdquery_encoded_payload(lcb_CMDQUERY *cmd, const char **payload, size_t *payload_len)
Get the JSON-encoded query payload.
lcb_STATUS lcb_cmdquery_payload(lcb_CMDQUERY *cmd, const char *query, size_t query_len)
Sets the JSON-encodes query payload to be executed.
lcb_STATUS lcb_cmdquery_scope_name(lcb_CMDQUERY *cmd, const char *scope, size_t scope_len)
Associate scope name with the query.
struct lcb_QUERY_HANDLE_ lcb_QUERY_HANDLE
Pointer for request instance.
Definition couchbase.h:2854
lcb_STATUS lcb_cmdquery_preserve_expiry(lcb_CMDQUERY *cmd, int preserve_expiry)
lcb_STATUS lcb_cmdquery_scan_cap(lcb_CMDQUERY *cmd, int value)
Sets maximum buffered channel size between the indexer client and the query service for index scans.
@ LCB_QUERY_CONSISTENCY_NONE
No consistency constraints.
Definition couchbase.h:2866
@ LCB_QUERY_CONSISTENCY_RYOW
This is implicitly set by lcb_cmdquery_consistency_token_for_keyspace.
Definition couchbase.h:2873
@ LCB_QUERY_CONSISTENCY_STATEMENT
Refresh the snapshot for each statement.
Definition couchbase.h:2879
@ LCB_QUERY_CONSISTENCY_REQUEST
Refresh the snapshot for each request.
Definition couchbase.h:2876
lcb_STATUS lcb_open(lcb_INSTANCE *instance, const char *bucket, size_t bucket_len)
Opens bucket.
lcb_open_callback lcb_set_open_callback(lcb_INSTANCE *instance, lcb_open_callback callback)
Callback to be called when bucket is opened.
lcb_STATUS lcb_diag(lcb_INSTANCE *instance, void *cookie, const lcb_CMDDIAG *cmd)
Returns diagnostics report about network connections.
lcb_PING_SERVICE
Type of the service.
Definition couchbase.h:1430
lcb_PING_STATUS
Status of the service.
Definition couchbase.h:1417
struct lcb_RESPREMOVE_ lcb_RESPREMOVE
Spool a removal of an item.
Definition couchbase.h:1108
lcb_STATUS lcb_cmdremove_on_behalf_of(lcb_CMDREMOVE *cmd, const char *data, size_t data_len)
lcb_STATUS lcb_cmdremove_on_behalf_of_extra_privilege(lcb_CMDREMOVE *cmd, const char *privilege, size_t privilege_len)
void lcb_sched_leave(lcb_INSTANCE *instance)
Leave the current scheduling context, scheduling the commands within the context to be flushed to the...
void lcb_sched_fail(lcb_INSTANCE *instance)
Fail all commands in the current scheduling context.
void lcb_sched_enter(lcb_INSTANCE *instance)
Enter a scheduling context.
void lcb_sched_flush(lcb_INSTANCE *instance)
Request commands to be flushed to the network.
lcb_STATUS lcb_cmdstore_on_behalf_of(lcb_CMDSTORE *cmd, const char *data, size_t data_len)
lcb_STORE_OPERATION
Values for lcb_CMDSTORE::operation.
Definition couchbase.h:885
lcb_STATUS lcb_cmdstore_on_behalf_of_extra_privilege(lcb_CMDSTORE *cmd, const char *privilege, size_t privilege_len)
struct lcb_RESPSTORE_ lcb_RESPSTORE
Schedule a single storage request.
Definition couchbase.h:978
@ LCB_STORE_APPEND
Rather than setting the contents of the entire document, take the value specified in lcb_CMDSTORE::va...
Definition couchbase.h:913
@ LCB_STORE_INSERT
Will cause the operation to fail if the key already exists in the cluster.
Definition couchbase.h:900
@ LCB_STORE_REPLACE
Will cause the operation to fail unless the key already exists in the cluster.
Definition couchbase.h:906
@ LCB_STORE_UPSERT
The default storage mode.
Definition couchbase.h:894
@ LCB_STORE_PREPEND
Like LCB_STORE_APPEND, but prepends the new value to the existing value.
Definition couchbase.h:918
lcb_STATUS lcb_cmdanalytics_parent_span(lcb_CMDANALYTICS *cmd, lcbtrace_SPAN *span)
Associate parent tracing span with the Analytics request.
lcb_STATUS lcb_cmdquery_parent_span(lcb_CMDQUERY *cmd, lcbtrace_SPAN *span)
Associate parent tracing span with the N1QL request.
lcb_STATUS lcb_cmdsearch_parent_span(lcb_CMDSEARCH *cmd, lcbtrace_SPAN *span)
Associate parent tracing span with the FTS request.
Tracer interface.
Definition tracing.h:73
void(* lcb_VIEW_CALLBACK)(lcb_INSTANCE *instance, int cbtype, const lcb_RESPVIEW *row)
Callback function invoked for each row returned from the view.
Definition couchbase.h:3209
struct lcb_VIEW_HANDLE_ lcb_VIEW_HANDLE
Pointer for request instance.
Definition couchbase.h:3196
lcb_STATUS lcb_wait(lcb_INSTANCE *instance, lcb_WAITFLAGS flags)
Wait for completion of scheduled operations.
int lcb_is_waiting(lcb_INSTANCE *instance)
Check if instance is blocked in the event loop.
lcb_WAITFLAGS
Flags for lcb_wait()
Definition couchbase.h:1859
lcb_STATUS lcb_tick_nowait(lcb_INSTANCE *instance)
void lcb_breakout(lcb_INSTANCE *instance)
Forcefully break from the event loop.
@ LCB_WAIT_DEFAULT
Behave like the old lcb_wait()
Definition couchbase.h:1861
@ LCB_WAIT_NOCHECK
Do not check pending operations before running the event loop.
Definition couchbase.h:1870
Public I/O integration interface.
Low level structures used by commands for buffers.