libcouchbase-mapo 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +20 -0
  3. data/.gitmodules +3 -0
  4. data/.rspec +1 -0
  5. data/.travis.yml +38 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE +24 -0
  8. data/README.md +445 -0
  9. data/Rakefile +76 -0
  10. data/ext/README.md +6 -0
  11. data/ext/Rakefile +19 -0
  12. data/lib/libcouchbase.rb +40 -0
  13. data/lib/libcouchbase/bucket.rb +825 -0
  14. data/lib/libcouchbase/callbacks.rb +69 -0
  15. data/lib/libcouchbase/connection.rb +886 -0
  16. data/lib/libcouchbase/design_docs.rb +92 -0
  17. data/lib/libcouchbase/error.rb +68 -0
  18. data/lib/libcouchbase/ext/libcouchbase.rb +1175 -0
  19. data/lib/libcouchbase/ext/libcouchbase/cmdbase.rb +23 -0
  20. data/lib/libcouchbase/ext/libcouchbase/cmdcounter.rb +36 -0
  21. data/lib/libcouchbase/ext/libcouchbase/cmdendure.rb +26 -0
  22. data/lib/libcouchbase/ext/libcouchbase/cmdfts.rb +24 -0
  23. data/lib/libcouchbase/ext/libcouchbase/cmdget.rb +30 -0
  24. data/lib/libcouchbase/ext/libcouchbase/cmdgetreplica.rb +49 -0
  25. data/lib/libcouchbase/ext/libcouchbase/cmdhttp.rb +58 -0
  26. data/lib/libcouchbase/ext/libcouchbase/cmdn1ql.rb +40 -0
  27. data/lib/libcouchbase/ext/libcouchbase/cmdobseqno.rb +33 -0
  28. data/lib/libcouchbase/ext/libcouchbase/cmdobserve.rb +30 -0
  29. data/lib/libcouchbase/ext/libcouchbase/cmdstore.rb +40 -0
  30. data/lib/libcouchbase/ext/libcouchbase/cmdstoredur.rb +45 -0
  31. data/lib/libcouchbase/ext/libcouchbase/cmdsubdoc.rb +61 -0
  32. data/lib/libcouchbase/ext/libcouchbase/cmdverbosity.rb +29 -0
  33. data/lib/libcouchbase/ext/libcouchbase/cmdviewquery.rb +61 -0
  34. data/lib/libcouchbase/ext/libcouchbase/contigbuf.rb +14 -0
  35. data/lib/libcouchbase/ext/libcouchbase/create_st.rb +15 -0
  36. data/lib/libcouchbase/ext/libcouchbase/create_st0.rb +23 -0
  37. data/lib/libcouchbase/ext/libcouchbase/create_st1.rb +26 -0
  38. data/lib/libcouchbase/ext/libcouchbase/create_st2.rb +32 -0
  39. data/lib/libcouchbase/ext/libcouchbase/create_st3.rb +26 -0
  40. data/lib/libcouchbase/ext/libcouchbase/crst_u.rb +20 -0
  41. data/lib/libcouchbase/ext/libcouchbase/durability_opts_st_v.rb +11 -0
  42. data/lib/libcouchbase/ext/libcouchbase/durability_opts_t.rb +14 -0
  43. data/lib/libcouchbase/ext/libcouchbase/durabilityopt_sv0.rb +63 -0
  44. data/lib/libcouchbase/ext/libcouchbase/enums.rb +1007 -0
  45. data/lib/libcouchbase/ext/libcouchbase/fragbuf.rb +18 -0
  46. data/lib/libcouchbase/ext/libcouchbase/ftshandle.rb +7 -0
  47. data/lib/libcouchbase/ext/libcouchbase/histogram.rb +34 -0
  48. data/lib/libcouchbase/ext/libcouchbase/http_request_t.rb +7 -0
  49. data/lib/libcouchbase/ext/libcouchbase/keybuf.rb +20 -0
  50. data/lib/libcouchbase/ext/libcouchbase/multicmd_ctx.rb +30 -0
  51. data/lib/libcouchbase/ext/libcouchbase/mutation_token.rb +17 -0
  52. data/lib/libcouchbase/ext/libcouchbase/n1qlhandle.rb +7 -0
  53. data/lib/libcouchbase/ext/libcouchbase/n1qlparams.rb +7 -0
  54. data/lib/libcouchbase/ext/libcouchbase/respbase.rb +29 -0
  55. data/lib/libcouchbase/ext/libcouchbase/respcounter.rb +32 -0
  56. data/lib/libcouchbase/ext/libcouchbase/respendure.rb +49 -0
  57. data/lib/libcouchbase/ext/libcouchbase/respfts.rb +40 -0
  58. data/lib/libcouchbase/ext/libcouchbase/respget.rb +44 -0
  59. data/lib/libcouchbase/ext/libcouchbase/resphttp.rb +48 -0
  60. data/lib/libcouchbase/ext/libcouchbase/respmcversion.rb +38 -0
  61. data/lib/libcouchbase/ext/libcouchbase/respn1ql.rb +41 -0
  62. data/lib/libcouchbase/ext/libcouchbase/respobseqno.rb +52 -0
  63. data/lib/libcouchbase/ext/libcouchbase/respobserve.rb +41 -0
  64. data/lib/libcouchbase/ext/libcouchbase/respserverbase.rb +32 -0
  65. data/lib/libcouchbase/ext/libcouchbase/respstats.rb +38 -0
  66. data/lib/libcouchbase/ext/libcouchbase/respstore.rb +32 -0
  67. data/lib/libcouchbase/ext/libcouchbase/respstoredur.rb +38 -0
  68. data/lib/libcouchbase/ext/libcouchbase/respsubdoc.rb +35 -0
  69. data/lib/libcouchbase/ext/libcouchbase/respviewquery.rb +67 -0
  70. data/lib/libcouchbase/ext/libcouchbase/sdentry.rb +22 -0
  71. data/lib/libcouchbase/ext/libcouchbase/sdspec.rb +31 -0
  72. data/lib/libcouchbase/ext/libcouchbase/t.rb +7 -0
  73. data/lib/libcouchbase/ext/libcouchbase/valbuf.rb +22 -0
  74. data/lib/libcouchbase/ext/libcouchbase/valbuf_u_buf.rb +14 -0
  75. data/lib/libcouchbase/ext/libcouchbase/viewhandle.rb +7 -0
  76. data/lib/libcouchbase/ext/libcouchbase_libuv.rb +22 -0
  77. data/lib/libcouchbase/ext/tasks.rb +39 -0
  78. data/lib/libcouchbase/n1ql.rb +78 -0
  79. data/lib/libcouchbase/query_full_text.rb +147 -0
  80. data/lib/libcouchbase/query_n1ql.rb +123 -0
  81. data/lib/libcouchbase/query_view.rb +135 -0
  82. data/lib/libcouchbase/results_fiber.rb +281 -0
  83. data/lib/libcouchbase/results_native.rb +220 -0
  84. data/lib/libcouchbase/subdoc_request.rb +139 -0
  85. data/lib/libcouchbase/version.rb +5 -0
  86. data/libcouchbase.gemspec +68 -0
  87. data/spec/bucket_spec.rb +290 -0
  88. data/spec/connection_spec.rb +257 -0
  89. data/spec/design_docs_spec.rb +31 -0
  90. data/spec/error_spec.rb +26 -0
  91. data/spec/fts_spec.rb +135 -0
  92. data/spec/n1ql_spec.rb +206 -0
  93. data/spec/results_libuv_spec.rb +244 -0
  94. data/spec/results_native_spec.rb +259 -0
  95. data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/design.json +1 -0
  96. data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/data-0000.cbb +0 -0
  97. data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/failover.json +1 -0
  98. data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/meta.json +1 -0
  99. data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/seqno.json +1 -0
  100. data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/snapshot_markers.json +1 -0
  101. data/spec/subdoc_spec.rb +192 -0
  102. data/spec/view_spec.rb +201 -0
  103. data/windows_build.md +36 -0
  104. metadata +265 -0
@@ -0,0 +1,61 @@
1
+ module Libcouchbase::Ext
2
+ # (Not documented)
3
+ #
4
+ # ## Fields:
5
+ # :cmdflags ::
6
+ # (Integer)
7
+ # :exptime ::
8
+ # (Integer)
9
+ # :cas ::
10
+ # (Integer)
11
+ # :key ::
12
+ # (KEYBUF)
13
+ # :hashkey ::
14
+ # (KEYBUF)
15
+ # :specs ::
16
+ # (SDSPEC) An array of one or more command specifications. The storage
17
+ # for the array need only persist for the duration of the
18
+ # lcb_subdoc3() call.
19
+ #
20
+ # The specs array must be valid only through the invocation
21
+ # of lcb_subdoc3(). As such, they can reside on the stack and
22
+ # be re-used for scheduling multiple commands. See subdoc-simple.cc
23
+ # :nspecs ::
24
+ # (Integer) Number of entries in #specs
25
+ # :error_index ::
26
+ # (FFI::Pointer(*Int)) If the scheduling of the command failed, the index of the entry which
27
+ # caused the failure will be written to this pointer.
28
+ #
29
+ # If the value is -1 then the failure took place at the command level
30
+ # and not at the spec level.
31
+ # :multimode ::
32
+ # (Integer) Operation mode to use. This can either be @ref LCB_SDMULTI_MODE_LOOKUP
33
+ # or @ref LCB_SDMULTI_MODE_MUTATE.
34
+ #
35
+ # This field may be left empty, in which case the mode is implicitly
36
+ # derived from the _first_ command issued.
37
+ class CMDSUBDOC < FFI::Struct
38
+ # CMD flags
39
+ UPSERT_DOC = (1<<16) # document is to be created if it does not exist.
40
+ INSERT_DOC = (1<<17) # document must be created anew. Fail if it exists
41
+ ACCESS_DELETED = (1<<18) # Access a potentially deleted document.
42
+
43
+ SDMULTI_MODE_INVALID = 0
44
+ SDMULTI_MODE_LOOKUP = 1
45
+ SDMULTI_MODE_MUTATE = 2
46
+
47
+ layout :cmdflags, :uint,
48
+ :exptime, :uint,
49
+ :cas, :ulong_long,
50
+ :key, KEYBUF.by_value,
51
+ :hashkey, KEYBUF.by_value,
52
+ :specs, :pointer, # ==> SDSPEC.by_ref,
53
+ :nspecs, :ulong,
54
+ :error_index, :pointer,
55
+
56
+ # This can either be SDMULTI_MODE_LOOKUP or SDMULTI_MODE_MUTATE
57
+ # This field may be left empty, in which case the mode is implicitly derived from the _first_ command issued.
58
+ :multimode, :uint
59
+ end
60
+
61
+ end
@@ -0,0 +1,29 @@
1
+ module Libcouchbase::Ext
2
+ # (Not documented)
3
+ #
4
+ # ## Fields:
5
+ # :cmdflags ::
6
+ # (Integer)
7
+ # :exptime ::
8
+ # (Integer)
9
+ # :cas ::
10
+ # (Integer)
11
+ # :key ::
12
+ # (KEYBUF)
13
+ # :hashkey ::
14
+ # (KEYBUF)
15
+ # :server ::
16
+ # (String)
17
+ # :level ::
18
+ # (VerbosityLevelT)
19
+ class CMDVERBOSITY < FFI::Struct
20
+ layout :cmdflags, :uint,
21
+ :exptime, :uint,
22
+ :cas, :ulong_long,
23
+ :key, KEYBUF.by_value,
24
+ :hashkey, KEYBUF.by_value,
25
+ :server, :string,
26
+ :level, VerbosityLevelT
27
+ end
28
+
29
+ end
@@ -0,0 +1,61 @@
1
+ module Libcouchbase::Ext
2
+ # (Not documented)
3
+ #
4
+ # ## Fields:
5
+ # :cmdflags ::
6
+ # (Integer) Common command flags; e.g. @ref LCB_CMDVIEWQUERY_F_INCLUDE_DOCS
7
+ # :ddoc ::
8
+ # (String) The design document as a string; e.g. `"beer"`
9
+ # :nddoc ::
10
+ # (Integer) Length of design document name
11
+ # :view ::
12
+ # (String) The name of the view as a string; e.g. `"brewery_beers"`
13
+ # :nview ::
14
+ # (Integer) Length of the view name
15
+ # :optstr ::
16
+ # (String) Any URL parameters to be passed to the view should be specified here.
17
+ # The library will internally insert a `?` character before the options
18
+ # (if specified), so do not place one yourself.
19
+ #
20
+ # The format of the options follows the standard for passing parameters
21
+ # via HTTP requests; thus e.g. `key1=value1&key2=value2`. This string
22
+ # is itself not parsed by the library but simply appended to the URL.
23
+ # :noptstr ::
24
+ # (Integer) Length of the option string
25
+ # :postdata ::
26
+ # (String) Some query parameters (in particular; 'keys') may be send via a POST
27
+ # request within the request body, since it might be too long for the
28
+ # URI itself. If you have such data, place it here.
29
+ # :npostdata ::
30
+ # (Integer)
31
+ # :docs_concurrent_max ::
32
+ # (Integer) The maximum number of internal get requests to issue concurrently for
33
+ # @c F_INCLUDE_DOCS. This is useful for large view responses where
34
+ # there is a potential for a large number of responses resulting in a large
35
+ # number of get requests; increasing memory usage.
36
+ #
37
+ # Setting this value will attempt to throttle the number of get requests,
38
+ # so that no more than this number of requests will be in progress at any
39
+ # given time.
40
+ # :callback ::
41
+ # (Proc(callback_viewquerycallback)) Callback to invoke for each row. If not provided, @ref LCB_EINVAL will
42
+ # be returned from lcb_view_query()
43
+ # :handle ::
44
+ # (FFI::Pointer(*VIEWHANDLE)) If not NULL, this will be set to a handle which may be passed to
45
+ # lcb_view_cancel(). See that function for more details
46
+ class CMDVIEWQUERY < FFI::Struct
47
+ layout :cmdflags, :uint,
48
+ :ddoc, :string,
49
+ :nddoc, :ulong,
50
+ :view, :string,
51
+ :nview, :ulong,
52
+ :optstr, :string,
53
+ :noptstr, :ulong,
54
+ :postdata, :string,
55
+ :npostdata, :ulong,
56
+ :docs_concurrent_max, :uint,
57
+ :callback, :viewquerycallback,
58
+ :handle, :pointer
59
+ end
60
+
61
+ end
@@ -0,0 +1,14 @@
1
+ module Libcouchbase::Ext
2
+ # (Not documented)
3
+ #
4
+ # ## Fields:
5
+ # :bytes ::
6
+ # (FFI::Pointer(*Void))
7
+ # :nbytes ::
8
+ # (Integer) Number of total bytes
9
+ class CONTIGBUF < FFI::Struct
10
+ layout :bytes, :pointer,
11
+ :nbytes, :ulong
12
+ end
13
+
14
+ end
@@ -0,0 +1,15 @@
1
+ module Libcouchbase::Ext
2
+ # (Not documented)
3
+ #
4
+ # ## Fields:
5
+ # :version ::
6
+ # (Integer) Indicates which field in the @ref lcb_CRST_u union should be used. Set this to `3`
7
+ # :v ::
8
+ # (CRSTU) This union contains the set of current and historical options. The
9
+ # The #v3 field should be used.
10
+ class CreateSt < FFI::Struct
11
+ layout :version, :int,
12
+ :v, CRSTU.by_value
13
+ end
14
+
15
+ end
@@ -0,0 +1,23 @@
1
+ module Libcouchbase::Ext
2
+ # (Not documented)
3
+ #
4
+ # ## Fields:
5
+ # :host ::
6
+ # (String)
7
+ # :user ::
8
+ # (String)
9
+ # :passwd ::
10
+ # (String)
11
+ # :bucket ::
12
+ # (String)
13
+ # :io ::
14
+ # (FFI::Pointer(*IoOptSt))
15
+ class CreateSt0 < FFI::Struct
16
+ layout :host, :string,
17
+ :user, :string,
18
+ :passwd, :string,
19
+ :bucket, :string,
20
+ :io, :pointer
21
+ end
22
+
23
+ end
@@ -0,0 +1,26 @@
1
+ module Libcouchbase::Ext
2
+ # (Not documented)
3
+ #
4
+ # ## Fields:
5
+ # :host ::
6
+ # (String)
7
+ # :user ::
8
+ # (String)
9
+ # :passwd ::
10
+ # (String)
11
+ # :bucket ::
12
+ # (String)
13
+ # :io ::
14
+ # (FFI::Pointer(*IoOptSt))
15
+ # :type ::
16
+ # (TypeT)
17
+ class CreateSt1 < FFI::Struct
18
+ layout :host, :string,
19
+ :user, :string,
20
+ :passwd, :string,
21
+ :bucket, :string,
22
+ :io, :pointer,
23
+ :type, TypeT
24
+ end
25
+
26
+ end
@@ -0,0 +1,32 @@
1
+ module Libcouchbase::Ext
2
+ # (Not documented)
3
+ #
4
+ # ## Fields:
5
+ # :host ::
6
+ # (String)
7
+ # :user ::
8
+ # (String)
9
+ # :passwd ::
10
+ # (String)
11
+ # :bucket ::
12
+ # (String)
13
+ # :io ::
14
+ # (FFI::Pointer(*IoOptSt))
15
+ # :type ::
16
+ # (TypeT)
17
+ # :mchosts ::
18
+ # (String)
19
+ # :transports ::
20
+ # (FFI::Pointer(*ConfigTransportT))
21
+ class CreateSt2 < FFI::Struct
22
+ layout :host, :string,
23
+ :user, :string,
24
+ :passwd, :string,
25
+ :bucket, :string,
26
+ :io, :pointer,
27
+ :type, TypeT,
28
+ :mchosts, :string,
29
+ :transports, :pointer
30
+ end
31
+
32
+ end
@@ -0,0 +1,26 @@
1
+ module Libcouchbase::Ext
2
+ # (Not documented)
3
+ #
4
+ # ## Fields:
5
+ # :connstr ::
6
+ # (String) < Connection string
7
+ # :username ::
8
+ # (String) < Username for bucket. Unused as of Server 2.5
9
+ # :passwd ::
10
+ # (String) < Password for bucket
11
+ # :pad_bucket ::
12
+ # (FFI::Pointer(*Void)) < @private
13
+ # :io ::
14
+ # (FFI::Pointer(*IoOptSt)) < IO Options
15
+ # :type ::
16
+ # (TypeT)
17
+ class CreateSt3 < FFI::Struct
18
+ layout :connstr, :pointer,
19
+ :username, :pointer,
20
+ :passwd, :pointer,
21
+ :pad_bucket, :pointer,
22
+ :io, :pointer,
23
+ :type, TypeT
24
+ end
25
+
26
+ end
@@ -0,0 +1,20 @@
1
+ module Libcouchbase::Ext
2
+ # (Not documented)
3
+ #
4
+ # ## Fields:
5
+ # :v0 ::
6
+ # (CreateSt0)
7
+ # :v1 ::
8
+ # (CreateSt1)
9
+ # :v2 ::
10
+ # (CreateSt2)
11
+ # :v3 ::
12
+ # (CreateSt3) < Use this field
13
+ class CRSTU < FFI::Union
14
+ layout :v0, CreateSt0.by_value,
15
+ :v1, CreateSt1.by_value,
16
+ :v2, CreateSt2.by_value,
17
+ :v3, CreateSt3.by_value
18
+ end
19
+
20
+ end
@@ -0,0 +1,11 @@
1
+ module Libcouchbase::Ext
2
+ # (Not documented)
3
+ #
4
+ # ## Fields:
5
+ # :v0 ::
6
+ # (DURABILITYOPTSv0)
7
+ class DurabilityOptsStV < FFI::Union
8
+ layout :v0, DURABILITYOPTSv0.by_value
9
+ end
10
+
11
+ end
@@ -0,0 +1,14 @@
1
+ module Libcouchbase::Ext
2
+ # (Not documented)
3
+ #
4
+ # ## Fields:
5
+ # :version ::
6
+ # (Integer)
7
+ # :v ::
8
+ # (DurabilityOptsStV)
9
+ class DurabilityOptsT < FFI::Struct
10
+ layout :version, :int,
11
+ :v, DurabilityOptsStV.by_value
12
+ end
13
+
14
+ end
@@ -0,0 +1,63 @@
1
+ module Libcouchbase::Ext
2
+ # (Not documented)
3
+ #
4
+ # ## Fields:
5
+ # :timeout ::
6
+ # (Integer) Upper limit in microseconds from the scheduling of the command. When
7
+ # this timeout occurs, all remaining non-verified keys will have their
8
+ # callbacks invoked with @ref LCB_ETIMEDOUT.
9
+ #
10
+ # If this field is not set, the value of @ref LCB_CNTL_DURABILITY_TIMEOUT
11
+ # will be used.
12
+ # :interval ::
13
+ # (Integer) The durability check may involve more than a single call to observe - or
14
+ # more than a single packet sent to a server to check the key status. This
15
+ # value determines the time to wait (in microseconds)
16
+ # between multiple probes for the same server.
17
+ # If not set, the @ref LCB_CNTL_DURABILITY_INTERVAL will be used
18
+ # instead.
19
+ # :persist_to ::
20
+ # (Integer) how many nodes the key should be persisted to (including master).
21
+ # If set to 0 then persistence will not be checked. If set to a large
22
+ # number (i.e. UINT16_MAX) and #cap_max is also set, will be set to the
23
+ # maximum number of nodes to which persistence is possible (which will
24
+ # always contain at least the master node).
25
+ #
26
+ # The maximum valid value for this field is
27
+ # 1 + the total number of configured replicas for the bucket which are part
28
+ # of the cluster. If this number is higher then it will either be
29
+ # automatically capped to the maximum available if (#cap_max is set) or
30
+ # will result in an ::LCB_DURABILITY_ETOOMANY error.
31
+ # :replicate_to ::
32
+ # (Integer) how many nodes the key should be persisted to (excluding master).
33
+ # If set to 0 then replication will not be checked. If set to a large
34
+ # number (i.e. UINT16_MAX) and #cap_max is also set, will be set to the
35
+ # maximum number of nodes to which replication is possible (which may
36
+ # be 0 if the bucket is not configured for replicas).
37
+ #
38
+ # The maximum valid value for this field is the total number of configured
39
+ # replicas which are part of the cluster. If this number is higher then
40
+ # it will either be automatically capped to the maximum available
41
+ # if (#cap_max is set) or will result in an ::LCB_DURABILITY_ETOOMANY
42
+ # error.
43
+ # :check_delete ::
44
+ # (Integer) this flag inverts the sense of the durability check and ensures that
45
+ # the key does *not* exist. This should be used if checking durability
46
+ # after an lcb_remove3() operation.
47
+ # :cap_max ::
48
+ # (Integer) If replication/persistence requirements are excessive, cap to
49
+ # the maximum available
50
+ # :pollopts ::
51
+ # (Integer) Set the polling method to use.
52
+ # The value for this field should be one of the @ref lcb_DURMODE constants.
53
+ class DURABILITYOPTSv0 < FFI::Struct
54
+ layout :timeout, :uint,
55
+ :interval, :uint,
56
+ :persist_to, :ushort,
57
+ :replicate_to, :ushort,
58
+ :check_delete, :uchar,
59
+ :cap_max, :uchar,
60
+ :pollopts, :uchar
61
+ end
62
+
63
+ end
@@ -0,0 +1,1007 @@
1
+ module Libcouchbase::Ext
2
+ extend FFI::Library
3
+ # (Not documented)
4
+ #
5
+ # ## Options:
6
+ # :errtype_input ::
7
+ # Error type indicating a likely issue in user input
8
+ # :errtype_network ::
9
+ # Error type indicating a likely network failure
10
+ # :errtype_fatal ::
11
+ # Error type indicating a fatal condition within the server or library
12
+ # :errtype_transient ::
13
+ # Error type indicating a transient condition within the server
14
+ # :errtype_dataop ::
15
+ # Error type indicating a negative server reply for the data
16
+ # :errtype_internal ::
17
+ # Error codes which should never be visible to the user
18
+ # :errtype_plugin ::
19
+ # Error code indicating a plugin failure
20
+ # :errtype_srvload ::
21
+ # Error code indicating the server is under load
22
+ # :errtype_srvgen ::
23
+ # Error code indicating the server generated this message
24
+ # :errtype_subdoc ::
25
+ # Error code indicates document (fulldoc) access ok, but
26
+ # error in performing subdocument operation. Note that this only
27
+ # covers errors which relate to a specific operation, rather than
28
+ # operations which prevent _any_ subdoc operation from executing.
29
+ #
30
+ # @method `enum_errflags_t`
31
+ # @return [Symbol]
32
+ # @scope class
33
+ #
34
+ ErrflagsT = enum [
35
+ :errtype_input, 1,
36
+ :errtype_network, 2,
37
+ :errtype_fatal, 4,
38
+ :errtype_transient, 8,
39
+ :errtype_dataop, 16,
40
+ :errtype_internal, 32,
41
+ :errtype_plugin, 64,
42
+ :errtype_srvload, 128,
43
+ :errtype_srvgen, 256,
44
+ :errtype_subdoc, 512
45
+ ]
46
+
47
+ # (Not documented)
48
+ #
49
+ # ## Options:
50
+ # :kv_copy ::
51
+ #
52
+ # :kv_contig ::
53
+ # < The buffer should be copied
54
+ # :kv_iov ::
55
+ # < The buffer is contiguous and should not be copied
56
+ # :kv_vbid ::
57
+ # For use within the hashkey field, indicates that the _length_
58
+ # of the hashkey is the vBucket ID, rather than an actual hashkey
59
+ # :kv_iovcopy ::
60
+ # The buffers are not contiguous (multi-part buffers) but should be
61
+ # copied. This avoids having to make the buffers contiguous before
62
+ # passing it into the library (only to have the library copy it again)
63
+ #
64
+ # @method `enum_kvbuftype`
65
+ # @return [Symbol]
66
+ # @scope class
67
+ #
68
+ KVBUFTYPE = enum [
69
+ :kv_copy, 0,
70
+ :kv_contig, 1,
71
+ :kv_iov, 2,
72
+ :kv_vbid, 3,
73
+ :kv_iovcopy, 4
74
+ ]
75
+
76
+ # (Not documented)
77
+ #
78
+ # ## Options:
79
+ # :list_end ::
80
+ #
81
+ # :http ::
82
+ #
83
+ # :cccp ::
84
+ #
85
+ # :max ::
86
+ #
87
+ #
88
+ # @method `enum_config_transport_t`
89
+ # @return [Symbol]
90
+ # @scope class
91
+ #
92
+ ConfigTransportT = enum [
93
+ :list_end, 0,
94
+ :http, 1,
95
+ :cccp, 2,
96
+ :max, 3
97
+ ]
98
+
99
+ # (Not documented)
100
+ #
101
+ # ## Options:
102
+ # :resp_f_final ::
103
+ # No more responses are to be received for this request
104
+ # :resp_f_clientgen ::
105
+ # The response was artificially generated inside the client.
106
+ # This does not contain reply data from the server for the command, but
107
+ # rather contains the basic fields to indicate success or failure and is
108
+ # otherwise empty.
109
+ # :resp_f_nmvgen ::
110
+ # The response was a result of a not-my-vbucket error
111
+ # :resp_f_extdata ::
112
+ # The response has additional internal data.
113
+ # Used by lcb_resp_get_mutation_token()
114
+ # :resp_f_sdsingle ::
115
+ # Flag, only valid for subdoc responses, indicates that the response was
116
+ # processed using the single-operation protocol.
117
+ #
118
+ # @method `enum_respflags`
119
+ # @return [Symbol]
120
+ # @scope class
121
+ #
122
+ RESPFLAGS = enum [
123
+ :resp_f_final, 1,
124
+ :resp_f_clientgen, 2,
125
+ :resp_f_nmvgen, 4,
126
+ :resp_f_extdata, 8,
127
+ :resp_f_sdsingle, 16,
128
+ :resp_f_errinfo, 0x20
129
+ ]
130
+
131
+ # (Not documented)
132
+ #
133
+ # ## Options:
134
+ # :first ::
135
+ # Query all the replicas sequentially, retrieving the first successful
136
+ # response
137
+ # :all ::
138
+ # Query all the replicas concurrently, retrieving all the responses
139
+ # :select ::
140
+ # Query the specific replica specified by the
141
+ # lcb_rget3_cmd_t#index field
142
+ #
143
+ # @method `enum_replica_t`
144
+ # @return [Symbol]
145
+ # @scope class
146
+ #
147
+ ReplicaT = enum [
148
+ :first, 0,
149
+ :all, 1,
150
+ :select, 2
151
+ ]
152
+
153
+ # (Not documented)
154
+ #
155
+ # ## Options:
156
+ # :add ::
157
+ # Will cause the operation to fail if the key already exists in the
158
+ # cluster.
159
+ # :replace ::
160
+ # Will cause the operation to fail _unless_ the key already exists in the
161
+ # cluster.
162
+ # :set ::
163
+ # Unconditionally store the item in the cluster
164
+ # :upsert ::
165
+ # The default storage mode. This constant was added in version 2.6.2 for
166
+ # the sake of maintaining a default storage mode, eliminating the need
167
+ # for simple storage operations to explicitly define
168
+ # lcb_CMDSTORE::operation. Behaviorally it is identical to @ref LCB_SET
169
+ # in that it will make the server unconditionally store the item, whether
170
+ # it exists or not.
171
+ # :append ::
172
+ # Rather than setting the contents of the entire document, take the value
173
+ # specified in lcb_CMDSTORE::value and _append_ it to the existing bytes in
174
+ # the value.
175
+ # :prepend ::
176
+ # Like ::LCB_APPEND, but prepends the new value to the existing value.
177
+ #
178
+ # @method `enum_storage_t`
179
+ # @return [Symbol]
180
+ # @scope class
181
+ #
182
+ StorageT = enum [
183
+ :add, 1,
184
+ :replace, 2,
185
+ :set, 3,
186
+ :upsert, 0,
187
+ :append, 4,
188
+ :prepend, 5
189
+ ]
190
+
191
+ # (Not documented)
192
+ #
193
+ # ## Options:
194
+ # :durability_mode_default ::
195
+ # Use the preferred durability. If ::LCB_CNTL_FETCH_MUTATION_TOKENS is
196
+ # enabled and the server version is 4.0 or greater then ::LCB_DURABILITY_MODE_SEQNO
197
+ # is used. Otherwise ::LCB_DURABILITY_MODE_CAS is used.
198
+ # :durability_mode_cas ::
199
+ # Explicitly request CAS-based durability. This is done by checking the
200
+ # CAS of the item on each server with the item specified in the input.
201
+ # The durability operation is considered complete when all items' CAS
202
+ # values match. If the CAS value on the master node changes then the
203
+ # durability operation will fail with ::LCB_KEY_EEXISTS.
204
+ #
205
+ # @note
206
+ # CAS may change either because of a failover or because of another
207
+ # subsequent mutation. These scenarios are possible (though unlikely).
208
+ # The ::LCB_DURABILITY_MODE_SEQNO mode is not subject to these constraints.
209
+ # :durability_mode_seqno ::
210
+ # Use sequence-number based polling. This is done by checking the current
211
+ # "mutation sequence number" for the given mutation. To use this mode
212
+ # either an explicit @ref lcb_MUTATION_TOKEN needs to be passed, or
213
+ # the ::LCB_CNTL_DURABILITY_MUTATION_TOKENS should be set, allowing
214
+ # the caching of the latest mutation token for each vBucket.
215
+ #
216
+ # @method `enum_durmode`
217
+ # @return [Symbol]
218
+ # @scope class
219
+ #
220
+ DURMODE = enum [
221
+ :durability_mode_default, 0,
222
+ :durability_mode_cas, 1,
223
+ :durability_mode_seqno, 2
224
+ ]
225
+
226
+ # (Not documented)
227
+ #
228
+ # ## Options:
229
+ # :found ::
230
+ # The item found in the memory, but not yet on the disk
231
+ # :persisted ::
232
+ # The item hit the disk
233
+ # :not_found ::
234
+ # The item missing on the disk and the memory
235
+ # :logically_deleted ::
236
+ # No knowledge of the key :)
237
+ # :max ::
238
+ #
239
+ #
240
+ # @method `enum_observe_t`
241
+ # @return [Symbol]
242
+ # @scope class
243
+ #
244
+ ObserveT = enum [
245
+ :found, 0,
246
+ :persisted, 1,
247
+ :not_found, 128,
248
+ :logically_deleted, 129,
249
+ :max, 130
250
+ ]
251
+
252
+ # (Not documented)
253
+ #
254
+ # ## Options:
255
+ # :detail ::
256
+ #
257
+ # :debug ::
258
+ #
259
+ # :info ::
260
+ #
261
+ # :warning ::
262
+ #
263
+ #
264
+ # @method `enum_verbosity_level_t`
265
+ # @return [Symbol]
266
+ # @scope class
267
+ #
268
+ VerbosityLevelT = enum [
269
+ :detail, 0,
270
+ :debug, 1,
271
+ :info, 2,
272
+ :warning, 3
273
+ ]
274
+
275
+ # (Not documented)
276
+ #
277
+ # ## Options:
278
+ # :view ::
279
+ # Execute a request against the bucket. The handle must be of
280
+ # @ref LCB_TYPE_BUCKET and must be connected.
281
+ # :management ::
282
+ # Execute a management API request. The credentials used will match
283
+ # those passed during the instance creation time. Thus is the instance
284
+ # type is @ref LCB_TYPE_BUCKET then only bucket-level credentials will
285
+ # be used.
286
+ # :raw ::
287
+ # Execute an arbitrary request against a host and port
288
+ # :n1ql ::
289
+ # Execute an N1QL Query
290
+ # :fts ::
291
+ # Search a fulltext index
292
+ # :max ::
293
+ #
294
+ #
295
+ # @method `enum_http_type_t`
296
+ # @return [Symbol]
297
+ # @scope class
298
+ #
299
+ HttpTypeT = enum [
300
+ :view, 0,
301
+ :management, 1,
302
+ :raw, 2,
303
+ :n1ql, 3,
304
+ :fts, 4,
305
+ :max, 5
306
+ ]
307
+
308
+ # (Not documented)
309
+ #
310
+ # ## Options:
311
+ # :wait_default ::
312
+ # Behave like the old lcb_wait()
313
+ # :wait_nocheck ::
314
+ # Do not check pending operations before running the event loop. By default
315
+ # lcb_wait() will traverse the server list to check if any operations are
316
+ # pending, and if nothing is pending the function will return without
317
+ # running the event loop. This is usually not necessary for applications
318
+ # which already _only_ call lcb_wait() when they know they have scheduled
319
+ # at least one command.
320
+ #
321
+ # @method `enum_waitflags`
322
+ # @return [Symbol]
323
+ # @scope class
324
+ #
325
+ WAITFLAGS = enum [
326
+ :wait_default, 0,
327
+ :wait_nocheck, 1
328
+ ]
329
+
330
+ # (Not documented)
331
+ #
332
+ # ## Options:
333
+ # :value_raw ::
334
+ #
335
+ # :value_f_json ::
336
+ #
337
+ # :value_f_snappycomp ::
338
+ #
339
+ #
340
+ # @method `enum_valueflags`
341
+ # @return [Symbol]
342
+ # @scope class
343
+ #
344
+ VALUEFLAGS = enum [
345
+ :value_raw, 0,
346
+ :value_f_json, 1,
347
+ :value_f_snappycomp, 2
348
+ ]
349
+
350
+ # (Not documented)
351
+ #
352
+ # ## Options:
353
+ # :nsec ::
354
+ #
355
+ # :usec ::
356
+ # < @brief Time is in nanoseconds
357
+ # :msec ::
358
+ # < @brief Time is in microseconds
359
+ # :sec ::
360
+ # < @brief Time is in milliseconds
361
+ #
362
+ # @method `enum_timeunit_t`
363
+ # @return [Symbol]
364
+ # @scope class
365
+ #
366
+ TimeunitT = enum [
367
+ :nsec, 0,
368
+ :usec, 1,
369
+ :msec, 2,
370
+ :sec, 3
371
+ ]
372
+
373
+ # (Not documented)
374
+ #
375
+ # ## Options:
376
+ # :dump_vbconfig ::
377
+ # Dump the raw vbucket configuration
378
+ # :dump_pktinfo ::
379
+ # Dump information about each packet
380
+ # :dump_bufinfo ::
381
+ # Dump memory usage/reservation information about buffers
382
+ # :dump_all ::
383
+ # Dump everything
384
+ #
385
+ # @method `enum_dumpflags`
386
+ # @return [Symbol]
387
+ # @scope class
388
+ #
389
+ DUMPFLAGS = enum [
390
+ :dump_vbconfig, 1,
391
+ :dump_pktinfo, 2,
392
+ :dump_bufinfo, 4,
393
+ :dump_all, 255
394
+ ]
395
+
396
+ # (Not documented)
397
+ #
398
+ # ## Options:
399
+ # :sdcmd_get ::
400
+ # Retrieve the value for a path
401
+ # :sdcmd_exists ::
402
+ # Check if the value for a path exists. If the path exists then the error
403
+ # code will be @ref LCB_SUCCESS
404
+ # :sdcmd_replace ::
405
+ # Replace the value at the specified path. This operation can work
406
+ # on any existing and valid path.
407
+ # :sdcmd_dict_add ::
408
+ # Add the value at the given path, if the given path does not exist.
409
+ # The penultimate path component must point to an array. The operation
410
+ # may be used in conjunction with @ref LCB_SDSPEC_F_MKINTERMEDIATES to
411
+ # create the parent dictionary (and its parents as well) if it does not
412
+ # yet exist.
413
+ # :sdcmd_dict_upsert ::
414
+ # Unconditionally set the value at the path. This logically
415
+ # attempts to perform a @ref LCB_SDCMD_REPLACE, and if it fails, performs
416
+ # an @ref LCB_SDCMD_DICT_ADD.
417
+ # :sdcmd_array_add_first ::
418
+ # Prepend the value(s) to the array indicated by the path. The path should
419
+ # reference an array. When the @ref LCB_SDSPEC_F_MKINTERMEDIATES flag
420
+ # is specified then the array may be created if it does not exist.
421
+ #
422
+ # Note that it is possible to add more than a single value to an array
423
+ # in an operation (this is valid for this commnand as well as
424
+ # @ref LCB_SDCMD_ARRAY_ADD_LAST and @ref LCB_SDCMD_ARRAY_INSERT). Multiple
425
+ # items can be specified by placing a comma between then (the values should
426
+ # otherwise be valid JSON).
427
+ # :sdcmd_array_add_last ::
428
+ # Identical to @ref LCB_SDCMD_ARRAY_ADD_FIRST but places the item(s)
429
+ # at the end of the array rather than at the beginning.
430
+ # :sdcmd_array_add_unique ::
431
+ # Add the value to the array indicated by the path, if the value is not
432
+ # already in the array. The @ref LCB_SDSPEC_F_MKINTERMEDIATES flag can
433
+ # be specified to create the array if it does not already exist.
434
+ #
435
+ # Currently the value for this operation must be a JSON primitive (i.e.
436
+ # no arrays or dictionaries) and the existing array itself must also
437
+ # contain only primitives (otherwise a @ref LCB_SUBDOC_PATH_MISMATCH
438
+ # error will be received).
439
+ # :sdcmd_array_insert ::
440
+ # Add the value at the given array index. Unlike other array operations,
441
+ # the path specified should include the actual index at which the item(s)
442
+ # should be placed, for example `array(2)` will cause the value(s) to be
443
+ # the 3rd item(s) in the array.
444
+ #
445
+ # The array must already exist and the @ref LCB_SDCMD_F_MKINTERMEDIATES
446
+ # flag is not honored.
447
+ # :sdcmd_counter ::
448
+ # Increment or decrement an existing numeric path. If the number does
449
+ # not exist, it will be created (though its parents will not, unless
450
+ # @ref LCB_SDSPEC_F_MKINTERMEDIATES is specified).
451
+ #
452
+ # The value for this operation should be a valid JSON-encoded integer and
453
+ # must be between `INT64_MIN` and `INT64_MAX`, inclusive.
454
+ # :sdcmd_remove ::
455
+ # Remove an existing path in the document.
456
+ # :sdcmd_get_count ::
457
+ # Count the number of elements in an array or dictionary
458
+ # :sdcmd_max ::
459
+ #
460
+ #
461
+ # @method `enum_subdocop`
462
+ # @return [Symbol]
463
+ # @scope class
464
+ #
465
+ SUBDOCOP = enum [
466
+ :sdcmd_get, 1,
467
+ :sdcmd_exists, 2,
468
+ :sdcmd_replace, 3,
469
+ :sdcmd_dict_add, 4,
470
+ :sdcmd_dict_upsert, 5,
471
+ :sdcmd_array_add_first, 6,
472
+ :sdcmd_array_add_last, 7,
473
+ :sdcmd_array_add_unique, 8,
474
+ :sdcmd_array_insert, 9,
475
+ :sdcmd_counter, 10,
476
+ :sdcmd_remove, 11,
477
+ :sdcmd_get_count, 12,
478
+ :sdcmd_max, 13
479
+ ]
480
+
481
+ # (Not documented)
482
+ #
483
+ # ## Options:
484
+ # :success ::
485
+ #
486
+ # :auth_continue ::
487
+ #
488
+ # :auth_error ::
489
+ # This error code is received in callbacks when connecting or reconnecting
490
+ # to the cluster. If received during initial bootstrap
491
+ # (i.e. lcb_get_bootstrap_status()) then it should be considered a fatal
492
+ # errror. This error should not be visible after initial bootstrap.
493
+ #
494
+ # This error may also be received if CCCP bootstrap is used and the bucket does
495
+ # not exist.
496
+ # :delta_badval ::
497
+ # This error is received in callbacks. It is a result of trying to perform
498
+ # an lcb_arithmetic() operation on an item which has an existing value that
499
+ # cannot be parsed as a number.
500
+ # :e2big ::
501
+ # This error is received in callbacks. It indicates that the key and value
502
+ # exceeded the constraints within the server. The current constraints are
503
+ # 150 bytes for a key and 20MB for a value
504
+ # :ebusy ::
505
+ #
506
+ # :einternal ::
507
+ # Internal error within the library. This may be a result of a bug
508
+ # :einval ::
509
+ # If returned from an API call, it indicates invalid values were passed
510
+ # to the function. If received within a callback, it indicates that a
511
+ # malformed packet was sent to the server.
512
+ # :enomem ::
513
+ # This code is received in callbacks. It means the server has no more memory
514
+ # left to store or modify the item.
515
+ # :erange ::
516
+ #
517
+ # :error ::
518
+ # Generic error
519
+ # :etmpfail ::
520
+ # This error is received in callbacks from the server itself to indicate
521
+ # that it could not perform the requested operation. This is usually due to memory and/or
522
+ # resource constraints on the server. This error may also be returned if a
523
+ # key has been locked (see lcb_get()) and an operation has been performed on it
524
+ # without unlocking the item (see lcb_unlock(), or pass the correct CAS value
525
+ # to a mutation function).
526
+ # :key_eexists ::
527
+ # The key already exists in the cluster. This error code is received within
528
+ # callbacks as a result of an _add_ operation in which the key already exists.
529
+ # It is also received for other operations in which a CAS was specified but has
530
+ # changed on the server.
531
+ # :key_enoent ::
532
+ # Received in callbacks to indicate that the server does not contain the item
533
+ # :dlopen_failed ::
534
+ # Error code thrown if an I/O plugin could not be located
535
+ # :dlsym_failed ::
536
+ # Error code thrown of an I/O plugin did not contain a proper initialization routine
537
+ # :network_error ::
538
+ # This is a generic error code returned for various forms of socket
539
+ # operation failures. Newer applications are recommended to enable the
540
+ # @ref LCB_CNTL_DETAILED_ERRCODES setting via lcb_cntl() and receive more
541
+ # detailed information about a socket error.
542
+ #
543
+ # @see lcb_cntl(), @ref LCB_CNTL_DETAILED_ERRCODES
544
+ # :not_my_vbucket ::
545
+ # Error code received in callbacks if the command was forwarded to the wrong
546
+ # server (for example, during a rebalance) and the library settings are configured
547
+ # that the command should not be remapped to a new server
548
+ # :not_stored ::
549
+ # Received in callbacks as a response to an LCB_APPEND or LCB_PREPEND on an
550
+ # item that did not exist in the cluster. Equivalent to LCB_KEY_ENOENT
551
+ # :not_supported ::
552
+ # Returned from API calls if a specific operation is valid but is unsupported
553
+ # in the current version or state of the library. May also be received in a
554
+ # callback if the cluster does not support the operation.
555
+ #
556
+ # This will be returned for unknown settings passed to lcb_cntl() unless
557
+ # @ref LCB_CNTL_DETAILED_ERRCODES is set
558
+ # :unknown_command ::
559
+ # Received in callbacks if the cluster does not know about the command.
560
+ # Similar to LCB_NOT_SUPPORTED
561
+ # :unknown_host ::
562
+ # Error code received if the hostname specified could not be found. It may
563
+ # also be received if a socket could not be created to the host supplied.
564
+ #
565
+ # A more detailed error code may be returned instead if
566
+ # @ref LCB_CNTL_DETAILED_ERRCODES is set.
567
+ # :protocol_error ::
568
+ # Error code received if the server replied with an unexpected response
569
+ # :etimedout ::
570
+ # Error code received in callbacks for operations which did not receive a
571
+ # reply from the server within the timeout limit.
572
+ # @see LCB_CNTL_OP_TIMEOUT
573
+ # :connect_error ::
574
+ # @see LCB_NETWORK_ERROR, LCB_UNKNOWN_HOST, @ref LCB_CNTL_DETAILED_ERRCODES
575
+ # :bucket_enoent ::
576
+ # Received on initial bootstrap if the bucket does not exist. Note that
577
+ # for CCCP bootstrap, @ref LCB_AUTH_ERROR will be received instead
578
+ # :client_enomem ::
579
+ # Client could not allocate memory for internal structures
580
+ # :client_enoconf ::
581
+ # Client could not schedule the request. This is typically received when
582
+ # an operation is requested before the initial bootstrap has completed
583
+ # :ebadhandle ::
584
+ #
585
+ # :server_bug ::
586
+ #
587
+ # :plugin_version_mismatch ::
588
+ #
589
+ # :invalid_host_format ::
590
+ #
591
+ # :invalid_char ::
592
+ #
593
+ # :durability_etoomany ::
594
+ # Received in response to the durability API call, if the amount of nodes
595
+ # or replicas to persist/replicate to exceed the total number of replicas the
596
+ # bucket was configured with.
597
+ # :duplicate_commands ::
598
+ # Received in scheduling if a command with the same key was specified more
599
+ # than once. Some commands will accept this, but others (notably `observe`)
600
+ # will not
601
+ # :no_matching_server ::
602
+ # This error is received from API calls if the master node for the vBucket
603
+ # the key has been hashed to is not present. This will happen in the result
604
+ # of a node failover where no replica exists to replace it.
605
+ # :bad_environment ::
606
+ # Received during initial creation (lcb_create()) if an environment variable
607
+ # was specified with an incorrect or invalid value.
608
+ #
609
+ # @see @ref lcb-env-vars-page
610
+ # :busy ::
611
+ #
612
+ # :invalid_username ::
613
+ # Received from lcb_create() if the username does not match the bucket
614
+ # :config_cache_invalid ::
615
+ #
616
+ # :saslmech_unavailable ::
617
+ # Received during initial bootstrap if the library was configured to force
618
+ # the usage of a specific SASL mechanism and the server did not support this
619
+ # mechanism. @see LCB_CNTL_FORCE_SASL_MECH
620
+ # :too_many_redirects ::
621
+ # Received in the HTTP callback if the response was redirected too many
622
+ # times. @see LCB_CNTL_MAX_REDIRECTS
623
+ # :map_changed ::
624
+ # May be received in operation callbacks if the cluster toplogy changed
625
+ # and the library could not remap the command to a new node. This may be
626
+ # because the internal structure lacked sufficient information to recreate
627
+ # the packet, or because the configuration settings indicated that the command
628
+ # should not be retried. @see LCB_CNTL_RETRYMODE
629
+ # :incomplete_packet ::
630
+ # Returned from the lcb_pktfwd3() function if an incomplete packet was
631
+ # passed
632
+ # :econnrefused ::
633
+ # Mapped directly to the system `ECONNREFUSED` errno. This is received
634
+ # in callbacks if an initial connection to the node could not be established.
635
+ # Check your firewall settings and ensure the specified service is online.
636
+ # :esockshutdown ::
637
+ # Returned in a callback if the socket connection was gracefully closed,
638
+ # but the library wasn't expecting it. This may happen if the system is
639
+ # being shut down.
640
+ # @lcb_see_detailed_neterr
641
+ # :econnreset ::
642
+ # Returned in a callback if the socket connection was forcefully reset,
643
+ # Equivalent to the system `ECONNRESET`.
644
+ # @lcb_see_detailed_neterr
645
+ # :ecantgetport ::
646
+ # Returned in a callback if the library could not allocated a local socket
647
+ # due to TCP local port exhaustion. This means you have either found a bug
648
+ # in the library or are creating too many TCP connections. Keep in mind that
649
+ # a TCP connection will still occupy a slot in your system socket table even
650
+ # after it has been closed (and will thus appear in a `TIME_WAIT` state).
651
+ #
652
+ # @lcb_see_detailed_neterr
653
+ # :efdlimitreached ::
654
+ # Returned if the library could not allocate a new file descriptor for a
655
+ # socket or other resource. This may be more common on systems (such as
656
+ # Mac OS X) which have relatively low limits for file descriptors. To raise
657
+ # the file descriptor limit, refer to the `ulimit -n` command
658
+ #
659
+ # @lcb_see_detailed_neterr
660
+ # :enetunreach ::
661
+ # Returned in callback if the host or subnet containing a node could
662
+ # not be contacted. This may be a result of a bad routing table or being
663
+ # physically disconnected from the network.
664
+ # @lcb_see_detailed_neterr.
665
+ # :ectl_unknown ::
666
+ # An unrecognized setting was passed to the lcb_cntl() function
667
+ # @lcb_see_detailed_neterr
668
+ # :ectl_unsuppmode ::
669
+ # An invalid operation was supplied for a setting to lcb_cntl(). This will
670
+ # happen if you try to write to a read-only setting, or retrieve a value
671
+ # which may only be set. Refer to the documentation for an individual setting
672
+ # to see what modes it supports.
673
+ # @lcb_see_detailed_neterr
674
+ # :ectl_badarg ::
675
+ # A malformed argument was passed to lcb_cntl() for the given setting. See
676
+ # the documentation for the setting to see what arguments it supports and
677
+ # how they are to be supplied.
678
+ #
679
+ # @lcb_see_detailed_neterr
680
+ # :empty_key ::
681
+ # An empty key was passed to an operation. Most commands do not accept
682
+ # empty keys.
683
+ # :ssl_error ::
684
+ # A problem with the SSL system was encountered. Use logging to discover
685
+ # what happened. This error will only be thrown if something internal to the
686
+ # SSL library failed (for example, a bad certificate or bad user input);
687
+ # otherwise a network error will be thrown if an SSL connection was terminated
688
+ # :ssl_cantverify ::
689
+ # The certificate the server sent cannot be verified. This is a possible
690
+ # case of a man-in-the-middle attack, but also of forgetting to supply
691
+ # the path to the CA authority to the library.
692
+ # :schedfail_internal ::
693
+ #
694
+ # :client_feature_unavailable ::
695
+ # An optional client feature was requested, but the current configuration
696
+ # does not allow it to be used. This might be because it is not available
697
+ # on a particular platform/architecture/operating system/configuration, or
698
+ # it has been disabled at the time the library was built.
699
+ # :options_conflict ::
700
+ # An option was passed to a command which is incompatible with other
701
+ # options. This may happen if two fields are mutually exclusive
702
+ # :http_error ::
703
+ # Received in callbacks if an operation failed because of a negative HTTP
704
+ # status code
705
+ # :durability_no_mutation_tokens ::
706
+ # Scheduling error received if @ref LCB_CNTL_DURABILITY_MUTATION_TOKENS was
707
+ # enabled, but there is no available mutation token for the key.
708
+ # :unknown_memcached_error ::
709
+ # The server replied with an unrecognized status code
710
+ # :mutation_lost ::
711
+ # The server replied that the given mutation has been lost
712
+ # :subdoc_path_enoent ::
713
+ #
714
+ # :subdoc_path_mismatch ::
715
+ #
716
+ # :subdoc_path_einval ::
717
+ #
718
+ # :subdoc_path_e2big ::
719
+ #
720
+ # :subdoc_doc_e2deep ::
721
+ #
722
+ # :subdoc_value_cantinsert ::
723
+ #
724
+ # :subdoc_doc_notjson ::
725
+ #
726
+ # :subdoc_num_erange ::
727
+ #
728
+ # :subdoc_bad_delta ::
729
+ #
730
+ # :subdoc_path_eexists ::
731
+ #
732
+ # :subdoc_multi_failure ::
733
+ #
734
+ # :subdoc_value_e2deep ::
735
+ #
736
+ # :einval_mcd ::
737
+ #
738
+ # :empty_path ::
739
+ #
740
+ # :unknown_sdcmd ::
741
+ #
742
+ # :eno_commands ::
743
+ #
744
+ # :query_error ::
745
+ #
746
+ # :max_error ::
747
+ # The errors below this value reserver for libcouchbase usage.
748
+ #
749
+ # @method `enum_error_t`
750
+ # @return [Symbol]
751
+ # @scope class
752
+ #
753
+ ErrorT = enum [
754
+ :success, 0,
755
+ :auth_continue, 1,
756
+ :auth_error, 2,
757
+ :delta_badval, 3,
758
+ :e2big, 4,
759
+ :ebusy, 5,
760
+ :einternal, 6,
761
+ :einval, 7,
762
+ :enomem, 8,
763
+ :erange, 9,
764
+ :error, 10,
765
+ :etmpfail, 11,
766
+ :key_eexists, 12,
767
+ :key_enoent, 13,
768
+ :dlopen_failed, 14,
769
+ :dlsym_failed, 15,
770
+ :network_error, 16,
771
+ :not_my_vbucket, 17,
772
+ :not_stored, 18,
773
+ :not_supported, 19,
774
+ :unknown_command, 20,
775
+ :unknown_host, 21,
776
+ :protocol_error, 22,
777
+ :etimedout, 23,
778
+ :connect_error, 24,
779
+ :bucket_enoent, 25,
780
+ :client_enomem, 26,
781
+ :client_enoconf, 27,
782
+ :ebadhandle, 28,
783
+ :server_bug, 29,
784
+ :plugin_version_mismatch, 30,
785
+ :invalid_host_format, 31,
786
+ :invalid_char, 32,
787
+ :durability_etoomany, 33,
788
+ :duplicate_commands, 34,
789
+ :no_matching_server, 35,
790
+ :bad_environment, 36,
791
+ :busy, 37,
792
+ :invalid_username, 38,
793
+ :config_cache_invalid, 39,
794
+ :saslmech_unavailable, 40,
795
+ :too_many_redirects, 41,
796
+ :map_changed, 42,
797
+ :incomplete_packet, 43,
798
+ :econnrefused, 44,
799
+ :esockshutdown, 45,
800
+ :econnreset, 46,
801
+ :ecantgetport, 47,
802
+ :efdlimitreached, 48,
803
+ :enetunreach, 49,
804
+ :ectl_unknown, 50,
805
+ :ectl_unsuppmode, 51,
806
+ :ectl_badarg, 52,
807
+ :empty_key, 53,
808
+ :ssl_error, 54,
809
+ :ssl_cantverify, 55,
810
+ :schedfail_internal, 56,
811
+ :client_feature_unavailable, 57,
812
+ :options_conflict, 58,
813
+ :http_error, 59,
814
+ :durability_no_mutation_tokens, 60,
815
+ :unknown_memcached_error, 61,
816
+ :mutation_lost, 62,
817
+ :subdoc_path_enoent, 63,
818
+ :subdoc_path_mismatch, 64,
819
+ :subdoc_path_einval, 65,
820
+ :subdoc_path_e2big, 66,
821
+ :subdoc_doc_e2deep, 67,
822
+ :subdoc_value_cantinsert, 68,
823
+ :subdoc_doc_notjson, 69,
824
+ :subdoc_num_erange, 70,
825
+ :subdoc_bad_delta, 71,
826
+ :subdoc_path_eexists, 72,
827
+ :subdoc_multi_failure, 73,
828
+ :subdoc_value_e2deep, 74,
829
+ :einval_mcd, 75,
830
+ :empty_path, 76,
831
+ :unknown_sdcmd, 77,
832
+ :eno_commands, 78,
833
+ :query_error, 79,
834
+ :generic_tmperr, 80,
835
+ :generic_subdocerr, 81,
836
+ :generic_constraint_err, 82,
837
+ :nameserver_error, 83,
838
+ :not_authorized, 84,
839
+ :subdoc_invalid_combo, 85,
840
+ :subdoc_multi_path_failure, 86,
841
+ :subdoc_success_deleted, 87,
842
+ :subdoc_xattr_invalid_flag_combo, 88,
843
+ :subdoc_xattr_invalid_key_combo, 89,
844
+ :subdoc_xattr_unknown_macro, 90,
845
+ :subdoc_xattr_unknown_vattr, 91,
846
+ :subdoc_xattr_cant_modify_vattr, 92,
847
+ :subdoc_multi_path_failure_deleted, 93,
848
+ :subdoc_invalid_xattr_order, 94,
849
+ :max_error, 4096
850
+ ]
851
+
852
+ # (Not documented)
853
+ #
854
+ # ## Options:
855
+ # :bucket ::
856
+ #
857
+ # :cluster ::
858
+ # < Handle for data access (default)
859
+ #
860
+ # @method `enum_type_t`
861
+ # @return [Symbol]
862
+ # @scope class
863
+ #
864
+ TypeT = enum [
865
+ :bucket, 0,
866
+ :cluster, 1
867
+ ]
868
+
869
+ # (Not documented)
870
+ #
871
+ # ## Options:
872
+ # :callback_default ::
873
+ #
874
+ # :callback_get ::
875
+ # < Default callback invoked as a fallback
876
+ # :callback_store ::
877
+ # < lcb_get3()
878
+ # :callback_counter ::
879
+ # < lcb_store3()
880
+ # :callback_touch ::
881
+ # < lcb_counter3()
882
+ # :callback_remove ::
883
+ # < lcb_touch3()
884
+ # :callback_unlock ::
885
+ # < lcb_remove3()
886
+ # :callback_stats ::
887
+ # < lcb_unlock3()
888
+ # :callback_versions ::
889
+ # < lcb_stats3()
890
+ # :callback_verbosity ::
891
+ # < lcb_server_versions3()
892
+ # :callback_flush ::
893
+ # < lcb_server_verbosity3()
894
+ # :callback_observe ::
895
+ # < lcb_flush3()
896
+ # :callback_getreplica ::
897
+ # < lcb_observe3_ctxnew()
898
+ # :callback_endure ::
899
+ # < lcb_rget3()
900
+ # :callback_http ::
901
+ # < lcb_endure3_ctxnew()
902
+ # :callback_cbflush ::
903
+ # < lcb_http3()
904
+ # :callback_obseqno ::
905
+ # < lcb_cbflush3()
906
+ # :callback_storedur ::
907
+ # < For lcb_observe_seqno3()
908
+ # :callback_sdlookup ::
909
+ # <for lcb_storedur3()
910
+ # :callback_sdmutate ::
911
+ #
912
+ # :callback_max ::
913
+ #
914
+ #
915
+ # @method `enum_callbacktype`
916
+ # @return [Symbol]
917
+ # @scope class
918
+ #
919
+ CALLBACKTYPE = enum [
920
+ :callback_default, 0,
921
+ :callback_get, 1,
922
+ :callback_store, 2,
923
+ :callback_counter, 3,
924
+ :callback_touch, 4,
925
+ :callback_remove, 5,
926
+ :callback_unlock, 6,
927
+ :callback_stats, 7,
928
+ :callback_versions, 8,
929
+ :callback_verbosity, 9,
930
+ :callback_flush, 10,
931
+ :callback_observe, 11,
932
+ :callback_getreplica, 12,
933
+ :callback_endure, 13,
934
+ :callback_http, 14,
935
+ :callback_cbflush, 15,
936
+ :callback_obseqno, 16,
937
+ :callback_storedur, 17,
938
+ :callback_sdlookup, 18,
939
+ :callback_sdmutate, 19,
940
+ :callback_max, 20
941
+ ]
942
+
943
+ # (Not documented)
944
+ #
945
+ # ## Options:
946
+ # :get ::
947
+ #
948
+ # :post ::
949
+ #
950
+ # :put ::
951
+ #
952
+ # :delete ::
953
+ #
954
+ # :max ::
955
+ #
956
+ #
957
+ # @method `enum_http_method_t`
958
+ # @return [Symbol]
959
+ # @scope class
960
+ #
961
+ HttpMethodT = enum [
962
+ :get, 0,
963
+ :post, 1,
964
+ :put, 2,
965
+ :delete, 3,
966
+ :max, 4
967
+ ]
968
+
969
+ # (Not documented)
970
+ #
971
+ # ## Options:
972
+ # :node_htconfig ::
973
+ # Get an HTTP configuration (Rest API) node
974
+ # :node_data ::
975
+ # Get a data (memcached) node
976
+ # :node_views ::
977
+ # Get a view (CAPI) node
978
+ # :node_connected ::
979
+ # Only return a node which is connected, or a node which is known to be up
980
+ # :node_nevernull ::
981
+ # Specifying this flag adds additional semantics which instruct the library
982
+ # to search additional resources to return a host, and finally,
983
+ # if no host can be found, return the string
984
+ # constant @ref LCB_GETNODE_UNAVAILABLE.
985
+ # :node_htconfig_connected ::
986
+ # Equivalent to `LCB_NODE_HTCONFIG|LCB_NODE_CONNECTED`
987
+ # :node_htconfig_any ::
988
+ # Equivalent to `LCB_NODE_HTCONFIG|LCB_NODE_NEVERNULL`.
989
+ # When this is passed, some additional attempts may be made by the library
990
+ # to return any kind of host, including searching the initial list of hosts
991
+ # passed to the lcb_create() function.
992
+ #
993
+ # @method `enum_getnodetype`
994
+ # @return [Symbol]
995
+ # @scope class
996
+ #
997
+ GETNODETYPE = enum [
998
+ :node_htconfig, 1,
999
+ :node_data, 2,
1000
+ :node_views, 4,
1001
+ :node_connected, 8,
1002
+ :node_nevernull, 16,
1003
+ :node_htconfig_connected, 9,
1004
+ :node_htconfig_any, 17
1005
+ ]
1006
+
1007
+ end