Name Date Size

..11-Feb-20204 KiB

analytics/H11-Feb-20204 KiB

api4.hH A D11-Feb-20205.8 KiB

aspend.hH A D11-Feb-20202.9 KiB

auth-priv.hH A D11-Feb-20203 KiB

auth.ccH A D11-Feb-20203.8 KiB

bootstrap.ccH A D11-Feb-202011.2 KiB

bootstrap.hH A D11-Feb-20205 KiB

bucketconfig/H11-Feb-20204 KiB

callbacks.cH A D11-Feb-20206.8 KiB

cbft.ccH A D11-Feb-202011.2 KiB

cntl.ccH A D11-Feb-202041.6 KiB

collections.ccH A D11-Feb-20208.4 KiB

collections.hH A D11-Feb-20205.6 KiB

config_static.hH A D11-Feb-20203.3 KiB

connspec.ccH A D11-Feb-202015.9 KiB

connspec.hH A D11-Feb-20206.1 KiB

crypto.ccH A D11-Feb-202015.3 KiB

ctx-log-inl.hH A D11-Feb-20201.7 KiB

dns-srv.ccH A D11-Feb-20203.5 KiB

docreq/H11-Feb-20204 KiB

dump.ccH A D11-Feb-20203.9 KiB

errmap.ccH A D11-Feb-202021.2 KiB

errmap.hH A D11-Feb-202015.4 KiB

getconfig.ccH A D11-Feb-20204 KiB

gethrtime.cH A D11-Feb-20203.1 KiB

handler.ccH A D11-Feb-202040.2 KiB

hashtable.cH A D11-Feb-20201.8 KiB

hdr_timings.cH A D11-Feb-20202.4 KiB

hostlist.ccH A D11-Feb-20206.3 KiB

hostlist.hH A D11-Feb-20205.2 KiB

http/H11-Feb-20204 KiB

instance.ccH A D11-Feb-202028.6 KiB

internal.hH A D11-Feb-20209.5 KiB

internalstructs.hH A D11-Feb-202081.3 KiB

iofactory.cH A D11-Feb-202016.6 KiB

jsparse/H11-Feb-20204 KiB

lcbht/H11-Feb-20204 KiB

lcbio/H11-Feb-20204 KiB

list.cH A D11-Feb-20203.1 KiB

list.hH A D11-Feb-20203.5 KiB

logging.cH A D11-Feb-20206.8 KiB

logging.hH A D11-Feb-20202.7 KiB

mc/H11-Feb-20204 KiB

mcserver/H11-Feb-20204 KiB

mctx-helper.hH A D11-Feb-20202 KiB

metrics.ccH A D11-Feb-20203.9 KiB

n1ql/H11-Feb-20204 KiB

netbuf/H11-Feb-20204 KiB

newconfig.ccH A D11-Feb-202012.3 KiB

nodeinfo.ccH A D11-Feb-20204.4 KiB

operations/H11-Feb-20204 KiB

packetutils.hH A D11-Feb-202010.1 KiB

probes.dH A D11-Feb-20209.5 KiB

rdb/H11-Feb-20204 KiB

README.mdH A D11-Feb-20203.6 KiB

retrychk.ccH A D11-Feb-20203.4 KiB

retryq.ccH A D11-Feb-202013.9 KiB

retryq.hH A D11-Feb-20205.4 KiB

ringbuffer.cH A D11-Feb-202011.5 KiB

ringbuffer.hH A D11-Feb-20203 KiB

rnd.ccH A D11-Feb-20201.1 KiB

rnd.hH A D11-Feb-2020992

settings.cH A D11-Feb-20205.1 KiB

settings.hH A D11-Feb-20208 KiB

sllist-inl.hH A D11-Feb-20204.5 KiB

sllist.hH A D11-Feb-20202.2 KiB

ssl/H11-Feb-20204 KiB

strcodecs/H11-Feb-20204 KiB

timings.cH A D11-Feb-20205.3 KiB

trace.hH A D11-Feb-20207.9 KiB

tracing/H11-Feb-20204 KiB

utilities.cH A D11-Feb-20204 KiB

vbucket/H11-Feb-20204 KiB

views/H11-Feb-20204 KiB

wait.ccH A D11-Feb-20203.1 KiB

README.md

1# Internal source code structure
2
3This directory contains the source code for libcouchbase. Here is a brief
4listing of the various subcomponents and what they do:
5
6* `internal.h` contains the top level internal declarations.
7
8* `config_static.h` contains statically inferred (via macros) platform information.
9
10* `instance.c` contains functions related to creating and destroying the actual
11  `lcb_t` handle. It also contains some convenience functions.
12
13* `bootstrap.{c,h}` contains the top-level logic for _retrieving_ the cluster
14  configuration
15
16* `newconfig.c` contains the logic for _applying_ a new configuration
17
18* `bucketconfig/*` is a directory which contains the low level transport logic used
19  to retrieve a new configuration
20
21* `callbacks.c` contains the functions used to implement the library's `set_callback`
22  accessor functions.
23
24* `operations/*` is a directory which contains the top level entry points for memcached
25  requests
26
27* `handler.c` contains the response handlers for memcached.
28
29* `getconfig.c` contains the implementation for requesting a config from an existing
30  server.
31
32* `connspec.{c,h}` contains the connection string parsing logic
33
34* `cntl.c` contains the handlers for the `lcb_cntl()` family of functions
35
36* `dump.c` contains the handlers for the `lcb_dump()` function
37
38* `gethrtime.c` contains platform-dependent implementations of a nanosecond timer
39
40* `hashset.{c,h}` contains the implementation for a set (unique collection of pointers)
41
42* `list.{c,h}` contains the implementation for a double-linked list
43
44* `sllist.h, sllist-inl.h` contain the implementation for a single-linked list
45
46* `logging.{c,h}` contains the implementation for the library's logging mechanism
47
48* `hostlist.{c,h}` defines a list of hosts, with features for de-duping and converting
49  to other structures
50
51* `nodeinfo.c` contains the implementation for the `lcb_get_node()` function.
52
53* `packetutils.{c,h}` contains utilities and macros for handling partial memcached
54  response packets
55
56* `wait.c` contains the implementation of `lcb_wait()`
57
58* `timings.c` contains the implementation of `lcb_get_timings()`
59
60* `trace.h` contains macros for DTrace functionality
61
62* `utilities.c` contains cross-platform utilities (such as temporary directory,
63  getting environment variables)
64
65* `iofactory.c` contains the plugin intialization/loading functionality for I/O
66  plugins
67
68* `retrychk.c` contains logic which determines if a rety is necessary under certain
69  conditions
70
71* `retryq.{c,h}` contains an internal retried operations, and are placed there if they
72  are eligible for retries.
73
74* `aspend.h` contains definitions for pending operations which are meant to block
75  calls to `lcb_wait()` (implementation in instance.c)
76
77* `lcbio/*` is a directory which contains the cross platform/cross model IO
78  implementation. Most I/O is done in this subdirectory
79
80* `http/*` contains the API implementation for user-level HTTP requests
81
82* `lcbht/*` contains an HTTP response parsing API/implementation
83
84* `mc/*` contains the memcached/Couchbase structure and packet/buffer allocation
85  and scheduling logic.
86
87* `mcserver/*` contains the operation/failure/IO logic for memcached connections
88
89* `vbucket/*` contains the raw vBucket config parsing and hashing/mapping implementation
90  (formerly known as "libvbucket")
91
92* `rdb/*` contains an extensible pooled read buffer implementation
93
94* `netbuf/*` contains an extensible high performance output buffer implementation
95
96* `rigbuffer.{c,h}` contains a circular buffer implementation.
97
98* `ssl/*` contains the OpenSSL interfacing routines
99
100* `strcodecs/*` contains utility functions to encode/decode strings to/from
101  various formats.
102