mt-libcouchbase 1.4.0
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.
- checksums.yaml +7 -0
- data/.gitignore +22 -0
- data/.gitmodules +3 -0
- data/.rspec +1 -0
- data/.travis.yml +38 -0
- data/Gemfile +4 -0
- data/LICENSE +24 -0
- data/README.md +445 -0
- data/Rakefile +76 -0
- data/ext/README.md +6 -0
- data/ext/Rakefile +19 -0
- data/ext/libcouchbase/.gitignore +132 -0
- data/ext/libcouchbase/CMakeLists.txt +455 -0
- data/ext/libcouchbase/CONTRIBUTING.md +105 -0
- data/ext/libcouchbase/LICENSE +202 -0
- data/ext/libcouchbase/README.markdown +195 -0
- data/ext/libcouchbase/RELEASE_NOTES.markdown +3523 -0
- data/ext/libcouchbase/cmake/Modules/ConfigureDtrace.cmake +52 -0
- data/ext/libcouchbase/cmake/Modules/CopyPDB.cmake +42 -0
- data/ext/libcouchbase/cmake/Modules/DistScript.cmake +17 -0
- data/ext/libcouchbase/cmake/Modules/DownloadLcbDep.cmake +18 -0
- data/ext/libcouchbase/cmake/Modules/FindCouchbaseHdrHistogram.cmake +15 -0
- data/ext/libcouchbase/cmake/Modules/FindCouchbaseLibev.cmake +73 -0
- data/ext/libcouchbase/cmake/Modules/FindCouchbaseLibevent.cmake +54 -0
- data/ext/libcouchbase/cmake/Modules/FindCouchbaseLibuv.cmake +57 -0
- data/ext/libcouchbase/cmake/Modules/FindProfiler.cmake +16 -0
- data/ext/libcouchbase/cmake/Modules/GenerateConfigDotH.cmake +49 -0
- data/ext/libcouchbase/cmake/Modules/GetLibcouchbaseFlags.cmake +142 -0
- data/ext/libcouchbase/cmake/Modules/GetPlatformCCInfo.cmake +45 -0
- data/ext/libcouchbase/cmake/Modules/GetVersionInfo.cmake +70 -0
- data/ext/libcouchbase/cmake/config-cmake.h.in +80 -0
- data/ext/libcouchbase/cmake/configure +355 -0
- data/ext/libcouchbase/cmake/defs.mk.in +6 -0
- data/ext/libcouchbase/cmake/dtrace-instr-link.pl +51 -0
- data/ext/libcouchbase/cmake/libcouchbase.stp.in +829 -0
- data/ext/libcouchbase/cmake/source_files.cmake +104 -0
- data/ext/libcouchbase/contrib/cJSON/cJSON.c +1022 -0
- data/ext/libcouchbase/contrib/cJSON/cJSON.h +158 -0
- data/ext/libcouchbase/contrib/cbsasl/CMakeLists.txt +25 -0
- data/ext/libcouchbase/contrib/cbsasl/COPYING +202 -0
- data/ext/libcouchbase/contrib/cbsasl/include/cbsasl/cbsasl.h +259 -0
- data/ext/libcouchbase/contrib/cbsasl/src/client.c +419 -0
- data/ext/libcouchbase/contrib/cbsasl/src/common.c +50 -0
- data/ext/libcouchbase/contrib/cbsasl/src/cram-md5/hmac.c +67 -0
- data/ext/libcouchbase/contrib/cbsasl/src/cram-md5/hmac.h +33 -0
- data/ext/libcouchbase/contrib/cbsasl/src/cram-md5/md5.c +296 -0
- data/ext/libcouchbase/contrib/cbsasl/src/cram-md5/md5.h +45 -0
- data/ext/libcouchbase/contrib/cbsasl/src/hash.c +573 -0
- data/ext/libcouchbase/contrib/cbsasl/src/hash.h +15 -0
- data/ext/libcouchbase/contrib/cbsasl/src/scram-sha/scram_utils.c +500 -0
- data/ext/libcouchbase/contrib/cbsasl/src/scram-sha/scram_utils.h +99 -0
- data/ext/libcouchbase/contrib/cbsasl/src/util.h +31 -0
- data/ext/libcouchbase/contrib/cliopts/CMakeLists.txt +2 -0
- data/ext/libcouchbase/contrib/cliopts/cliopts.c +938 -0
- data/ext/libcouchbase/contrib/cliopts/cliopts.h +610 -0
- data/ext/libcouchbase/contrib/genhash/genhash.c +371 -0
- data/ext/libcouchbase/contrib/genhash/genhash.h +241 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/CHANGES +157 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/CMakeLists.txt +252 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/CONTRIBUTORS +37 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/LICENSE +28 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/MINIFY.sh +15 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/README +435 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/cmake/internal_utils.cmake +227 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-death-test.h +294 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-message.h +250 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-param-test.h +1421 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-param-test.h.pump +487 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-printers.h +855 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-spi.h +232 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-test-part.h +179 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-typed-test.h +259 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest.h +2291 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest_pred_impl.h +358 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest_prod.h +58 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-death-test-internal.h +319 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-filepath.h +206 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-internal.h +1158 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-linked_ptr.h +233 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-param-util-generated.h +5143 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-param-util-generated.h.pump +301 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-param-util.h +619 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-port.h +1947 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-string.h +167 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-tuple.h +1012 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-tuple.h.pump +339 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-type-util.h +3331 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-type-util.h.pump +297 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-all.cc +48 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-death-test.cc +1344 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-filepath.cc +382 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-internal-inl.h +1218 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-port.cc +805 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-printers.cc +363 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-test-part.cc +110 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-typed-test.cc +110 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest.cc +5015 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest_main.cc +38 -0
- data/ext/libcouchbase/contrib/http_parser/LICENSE-MIT +23 -0
- data/ext/libcouchbase/contrib/http_parser/README.md +178 -0
- data/ext/libcouchbase/contrib/http_parser/http_parser.c +2060 -0
- data/ext/libcouchbase/contrib/http_parser/http_parser.h +321 -0
- data/ext/libcouchbase/contrib/jsonsl/LICENSE +20 -0
- data/ext/libcouchbase/contrib/jsonsl/jsonsl.c +1452 -0
- data/ext/libcouchbase/contrib/jsonsl/jsonsl.h +971 -0
- data/ext/libcouchbase/contrib/lcb-jsoncpp/CMakeLists.txt +6 -0
- data/ext/libcouchbase/contrib/lcb-jsoncpp/LICENSE +55 -0
- data/ext/libcouchbase/contrib/lcb-jsoncpp/lcb-jsoncpp-forwards.h +255 -0
- data/ext/libcouchbase/contrib/lcb-jsoncpp/lcb-jsoncpp.cpp +4893 -0
- data/ext/libcouchbase/contrib/lcb-jsoncpp/lcb-jsoncpp.h +1961 -0
- data/ext/libcouchbase/contrib/snappy/CMakeLists.txt +7 -0
- data/ext/libcouchbase/contrib/snappy/COPYING +28 -0
- data/ext/libcouchbase/contrib/snappy/snappy-c.cc +90 -0
- data/ext/libcouchbase/contrib/snappy/snappy-c.h +138 -0
- data/ext/libcouchbase/contrib/snappy/snappy-internal.h +150 -0
- data/ext/libcouchbase/contrib/snappy/snappy-lcb-msvc.h +5 -0
- data/ext/libcouchbase/contrib/snappy/snappy-sinksource.cc +75 -0
- data/ext/libcouchbase/contrib/snappy/snappy-sinksource.h +137 -0
- data/ext/libcouchbase/contrib/snappy/snappy-stubs-internal.cc +42 -0
- data/ext/libcouchbase/contrib/snappy/snappy-stubs-internal.h +491 -0
- data/ext/libcouchbase/contrib/snappy/snappy-stubs-public.h +100 -0
- data/ext/libcouchbase/contrib/snappy/snappy.cc +1312 -0
- data/ext/libcouchbase/contrib/snappy/snappy.h +184 -0
- data/ext/libcouchbase/contrib/win32-defs/iocpdefs.h +133 -0
- data/ext/libcouchbase/contrib/win32-defs/mingwdefs.h +4396 -0
- data/ext/libcouchbase/contrib/win32-defs/win_stdint.h +258 -0
- data/ext/libcouchbase/doc/Doxyfile +2495 -0
- data/ext/libcouchbase/doc/DoxygenLayout.xml +109 -0
- data/ext/libcouchbase/doc/Makefile +44 -0
- data/ext/libcouchbase/doc/apiattr.h +117 -0
- data/ext/libcouchbase/doc/cbc-n1qlback.markdown +88 -0
- data/ext/libcouchbase/doc/cbc-pillowfight.markdown +296 -0
- data/ext/libcouchbase/doc/cbc-subdoc.markdown +299 -0
- data/ext/libcouchbase/doc/cbc.markdown +763 -0
- data/ext/libcouchbase/doc/cbcrc.markdown +52 -0
- data/ext/libcouchbase/doc/common-additional-options.markdown +82 -0
- data/ext/libcouchbase/doc/common-options.markdown +71 -0
- data/ext/libcouchbase/doc/environment.h +93 -0
- data/ext/libcouchbase/doc/example/threads.c +77 -0
- data/ext/libcouchbase/doc/footer.html +22 -0
- data/ext/libcouchbase/doc/genman.sh +25 -0
- data/ext/libcouchbase/doc/header.html +52 -0
- data/ext/libcouchbase/doc/intro.h +130 -0
- data/ext/libcouchbase/doc/mainpage.h +136 -0
- data/ext/libcouchbase/doc/man/cbc-admin.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-bucket-create.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-bucket-delete.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-cat.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-connstr.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-cp.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-create.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-decr.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-flush.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-hash.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-incr.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-lock.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-mcflush.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-mcversion.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-n1ql.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-n1qlback.1 +198 -0
- data/ext/libcouchbase/doc/man/cbc-observe.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-pillowfight.1 +499 -0
- data/ext/libcouchbase/doc/man/cbc-ping.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-rm.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-role-list.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-stats.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-subdoc.1 +494 -0
- data/ext/libcouchbase/doc/man/cbc-unlock.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-user-delete.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-user-list.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-user-upsert.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-verbosity.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-version.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-view.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-watch.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc.1 +1035 -0
- data/ext/libcouchbase/doc/man/cbcrc.4 +71 -0
- data/ext/libcouchbase/doc/style.css +1162 -0
- data/ext/libcouchbase/example/CMakeLists.txt +52 -0
- data/ext/libcouchbase/example/README.markdown +47 -0
- data/ext/libcouchbase/example/analytics/.gitignore +1 -0
- data/ext/libcouchbase/example/analytics/analytics.c +158 -0
- data/ext/libcouchbase/example/analytics/build-queries.rb +34 -0
- data/ext/libcouchbase/example/analytics/cJSON.c +1 -0
- data/ext/libcouchbase/example/analytics/cJSON.h +1 -0
- data/ext/libcouchbase/example/analytics/queries/00-show-dataverse.json +5 -0
- data/ext/libcouchbase/example/analytics/queries/01-setup-dataset-breweries.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/02-setup-dataset-beers.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/03-initiate-shadow.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/04-list-datasets.json +7 -0
- data/ext/libcouchbase/example/analytics/queries/05-count-breweries.json +5 -0
- data/ext/libcouchbase/example/analytics/queries/06-first-brewery.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/07-key-based-lookup.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/08-exact-match-lookup.json +7 -0
- data/ext/libcouchbase/example/analytics/queries/09-exact-match-lookup-different-shape.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/10-other-query-filters.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/11-equijoin.json +9 -0
- data/ext/libcouchbase/example/analytics/queries/12-equijoin-select-star.json +10 -0
- data/ext/libcouchbase/example/analytics/queries/13-ansi-join.json +8 -0
- data/ext/libcouchbase/example/analytics/queries/14-join-select-values.json +8 -0
- data/ext/libcouchbase/example/analytics/queries/15-nested-outer-join.json +7 -0
- data/ext/libcouchbase/example/analytics/queries/16-theta-join.json +8 -0
- data/ext/libcouchbase/example/analytics/queries/17-existential-quantification.json +9 -0
- data/ext/libcouchbase/example/analytics/queries/18-universal-quantification.json +7 -0
- data/ext/libcouchbase/example/analytics/queries/19-simple-aggregation.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/20-simple-aggregation-unwrapped-value.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/21-simple-aggregation-explicit.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/22-grouping-and-aggregation.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/23-grouping-and-aggregation-with-hint.json +7 -0
- data/ext/libcouchbase/example/analytics/queries/24-grouping-and-limits.json +7 -0
- data/ext/libcouchbase/example/analytics/queries/25-named-parameters.json +7 -0
- data/ext/libcouchbase/example/analytics/queries/26-positional-parameters.json +7 -0
- data/ext/libcouchbase/example/analytics/queries.h +113 -0
- data/ext/libcouchbase/example/crypto/.gitignore +2 -0
- data/ext/libcouchbase/example/crypto/Makefile +13 -0
- data/ext/libcouchbase/example/crypto/common_provider.c +26 -0
- data/ext/libcouchbase/example/crypto/common_provider.h +33 -0
- data/ext/libcouchbase/example/crypto/openssl_symmetric_decrypt.c +144 -0
- data/ext/libcouchbase/example/crypto/openssl_symmetric_encrypt.c +146 -0
- data/ext/libcouchbase/example/crypto/openssl_symmetric_provider.c +271 -0
- data/ext/libcouchbase/example/crypto/openssl_symmetric_provider.h +29 -0
- data/ext/libcouchbase/example/db/db.c +171 -0
- data/ext/libcouchbase/example/db/vb.c +227 -0
- data/ext/libcouchbase/example/fts/.gitignore +1 -0
- data/ext/libcouchbase/example/fts/build-queries.rb +33 -0
- data/ext/libcouchbase/example/fts/fts.c +142 -0
- data/ext/libcouchbase/example/fts/queries/00-simple-text-query.json +12 -0
- data/ext/libcouchbase/example/fts/queries/01-simple-text-query-on-non-default-index.json +9 -0
- data/ext/libcouchbase/example/fts/queries/02-simple-text-query-on-stored-field.json +13 -0
- data/ext/libcouchbase/example/fts/queries/03-match-query-with-facet.json +19 -0
- data/ext/libcouchbase/example/fts/queries/04-docid-query.json +11 -0
- data/ext/libcouchbase/example/fts/queries/05-unanalyzed-term-query-with-fuzziness-level-of-0.json +13 -0
- data/ext/libcouchbase/example/fts/queries/06-unanalyzed-term-query-with-fuzziness-level-of-2.json +14 -0
- data/ext/libcouchbase/example/fts/queries/07-match-phrase-query.json +13 -0
- data/ext/libcouchbase/example/fts/queries/08-phrase-query.json +16 -0
- data/ext/libcouchbase/example/fts/queries/09-query-string-query.json +9 -0
- data/ext/libcouchbase/example/fts/queries/10-conjunction-query.json +21 -0
- data/ext/libcouchbase/example/fts/queries/11-wild-card-query.json +13 -0
- data/ext/libcouchbase/example/fts/queries/12-numeric-range-query.json +11 -0
- data/ext/libcouchbase/example/fts/queries/13-regexp-query.json +13 -0
- data/ext/libcouchbase/example/fts/queries.h +61 -0
- data/ext/libcouchbase/example/instancepool/main.cc +112 -0
- data/ext/libcouchbase/example/instancepool/pool.cc +102 -0
- data/ext/libcouchbase/example/instancepool/pool.h +69 -0
- data/ext/libcouchbase/example/libeventdirect/main.c +222 -0
- data/ext/libcouchbase/example/mcc/mcc.cc +246 -0
- data/ext/libcouchbase/example/minimal/.gitignore +1 -0
- data/ext/libcouchbase/example/minimal/minimal.c +132 -0
- data/ext/libcouchbase/example/minimal/query.c +185 -0
- data/ext/libcouchbase/example/observe/durability.c +102 -0
- data/ext/libcouchbase/example/observe/observe.c +159 -0
- data/ext/libcouchbase/example/subdoc/subdoc-multi.cc +143 -0
- data/ext/libcouchbase/example/subdoc/subdoc-simple.cc +201 -0
- data/ext/libcouchbase/example/subdoc/subdoc-xattrs.c +286 -0
- data/ext/libcouchbase/example/tick/tick.c +119 -0
- data/ext/libcouchbase/example/tracing/.gitignore +2 -0
- data/ext/libcouchbase/example/tracing/Makefile +8 -0
- data/ext/libcouchbase/example/tracing/cJSON.c +1 -0
- data/ext/libcouchbase/example/tracing/cJSON.h +1 -0
- data/ext/libcouchbase/example/tracing/tracing.c +439 -0
- data/ext/libcouchbase/example/tracing/views.c +444 -0
- data/ext/libcouchbase/example/users/README +48 -0
- data/ext/libcouchbase/example/users/users.c +147 -0
- data/ext/libcouchbase/example/views/views-example.cc +83 -0
- data/ext/libcouchbase/include/libcouchbase/_cxxwrap.h +150 -0
- data/ext/libcouchbase/include/libcouchbase/api-legacy.h +1689 -0
- data/ext/libcouchbase/include/libcouchbase/api3.h +2 -0
- data/ext/libcouchbase/include/libcouchbase/assert.h +44 -0
- data/ext/libcouchbase/include/libcouchbase/auth.h +297 -0
- data/ext/libcouchbase/include/libcouchbase/cbft.h +151 -0
- data/ext/libcouchbase/include/libcouchbase/cntl-private.h +319 -0
- data/ext/libcouchbase/include/libcouchbase/cntl.h +1418 -0
- data/ext/libcouchbase/include/libcouchbase/configuration.h.in +29 -0
- data/ext/libcouchbase/include/libcouchbase/couchbase.h +4089 -0
- data/ext/libcouchbase/include/libcouchbase/crypto.h +306 -0
- data/ext/libcouchbase/include/libcouchbase/deprecated.h +312 -0
- data/ext/libcouchbase/include/libcouchbase/error.h +680 -0
- data/ext/libcouchbase/include/libcouchbase/http.h +1 -0
- data/ext/libcouchbase/include/libcouchbase/iops.h +1053 -0
- data/ext/libcouchbase/include/libcouchbase/ixmgmt.h +263 -0
- data/ext/libcouchbase/include/libcouchbase/kvbuf.h +137 -0
- data/ext/libcouchbase/include/libcouchbase/metrics.h +79 -0
- data/ext/libcouchbase/include/libcouchbase/n1ql.h +539 -0
- data/ext/libcouchbase/include/libcouchbase/pktfwd.h +270 -0
- data/ext/libcouchbase/include/libcouchbase/plugins/io/bsdio-inl.c +370 -0
- data/ext/libcouchbase/include/libcouchbase/plugins/io/wsaerr-inl.c +76 -0
- data/ext/libcouchbase/include/libcouchbase/plugins/io/wsaerr.h +199 -0
- data/ext/libcouchbase/include/libcouchbase/subdoc.h +347 -0
- data/ext/libcouchbase/include/libcouchbase/sysdefs.h +98 -0
- data/ext/libcouchbase/include/libcouchbase/tracing.h +437 -0
- data/ext/libcouchbase/include/libcouchbase/vbucket.h +680 -0
- data/ext/libcouchbase/include/libcouchbase/views.h +357 -0
- data/ext/libcouchbase/include/libcouchbase/visibility.h +66 -0
- data/ext/libcouchbase/include/memcached/COPYING +30 -0
- data/ext/libcouchbase/include/memcached/README +10 -0
- data/ext/libcouchbase/include/memcached/protocol_binary.h +885 -0
- data/ext/libcouchbase/packaging/README +7 -0
- data/ext/libcouchbase/packaging/abicheck/.gitignore +4 -0
- data/ext/libcouchbase/packaging/abicheck/Makefile +17 -0
- data/ext/libcouchbase/packaging/abicheck/README.md +27 -0
- data/ext/libcouchbase/packaging/abicheck/template.xml +3 -0
- data/ext/libcouchbase/packaging/deb/compat +1 -0
- data/ext/libcouchbase/packaging/deb/control +72 -0
- data/ext/libcouchbase/packaging/deb/copyright +10 -0
- data/ext/libcouchbase/packaging/deb/libcouchbase-dev.docs +3 -0
- data/ext/libcouchbase/packaging/deb/package.mk +31 -0
- data/ext/libcouchbase/packaging/deb/rules +46 -0
- data/ext/libcouchbase/packaging/deb/source/format +1 -0
- data/ext/libcouchbase/packaging/distinfo/README +1 -0
- data/ext/libcouchbase/packaging/distinfo/distinfo.cmake.in +4 -0
- data/ext/libcouchbase/packaging/dllversion.rc.in +39 -0
- data/ext/libcouchbase/packaging/libcouchbase.pc.in +10 -0
- data/ext/libcouchbase/packaging/nuget/libcouchbase.autopkg +76 -0
- data/ext/libcouchbase/packaging/parse-git-describe.pl +166 -0
- data/ext/libcouchbase/packaging/rpm/libcouchbase.spec.in +101 -0
- data/ext/libcouchbase/packaging/rpm/package.mk +40 -0
- data/ext/libcouchbase/plugins/io/iocp/CMakeLists.txt +9 -0
- data/ext/libcouchbase/plugins/io/iocp/iocp_iops.c +467 -0
- data/ext/libcouchbase/plugins/io/iocp/iocp_iops.h +217 -0
- data/ext/libcouchbase/plugins/io/iocp/iocp_loop.c +295 -0
- data/ext/libcouchbase/plugins/io/iocp/iocp_timer.c +79 -0
- data/ext/libcouchbase/plugins/io/iocp/iocp_util.c +229 -0
- data/ext/libcouchbase/plugins/io/libev/CMakeLists.txt +31 -0
- data/ext/libcouchbase/plugins/io/libev/libev_io_opts.h +66 -0
- data/ext/libcouchbase/plugins/io/libev/plugin-libev.c +289 -0
- data/ext/libcouchbase/plugins/io/libevent/CMakeLists.txt +31 -0
- data/ext/libcouchbase/plugins/io/libevent/libevent_io_opts.h +67 -0
- data/ext/libcouchbase/plugins/io/libevent/plugin-libevent.c +292 -0
- data/ext/libcouchbase/plugins/io/libuv/CMakeLists.txt +44 -0
- data/ext/libcouchbase/plugins/io/libuv/libuv_compat.h +218 -0
- data/ext/libcouchbase/plugins/io/libuv/libuv_io_opts.h +118 -0
- data/ext/libcouchbase/plugins/io/libuv/plugin-internal.h +155 -0
- data/ext/libcouchbase/plugins/io/libuv/plugin-libuv.c +709 -0
- data/ext/libcouchbase/plugins/io/select/CMakeLists.txt +13 -0
- data/ext/libcouchbase/plugins/io/select/plugin-select.c +451 -0
- data/ext/libcouchbase/plugins/io/select/select_io_opts.h +39 -0
- data/ext/libcouchbase/src/README.md +101 -0
- data/ext/libcouchbase/src/aspend.h +105 -0
- data/ext/libcouchbase/src/auth-priv.h +85 -0
- data/ext/libcouchbase/src/auth.cc +146 -0
- data/ext/libcouchbase/src/bootstrap.cc +263 -0
- data/ext/libcouchbase/src/bootstrap.h +149 -0
- data/ext/libcouchbase/src/bucketconfig/bc_cccp.cc +450 -0
- data/ext/libcouchbase/src/bucketconfig/bc_file.cc +281 -0
- data/ext/libcouchbase/src/bucketconfig/bc_http.cc +527 -0
- data/ext/libcouchbase/src/bucketconfig/bc_http.h +107 -0
- data/ext/libcouchbase/src/bucketconfig/bc_static.cc +150 -0
- data/ext/libcouchbase/src/bucketconfig/clconfig.h +700 -0
- data/ext/libcouchbase/src/bucketconfig/confmon.cc +403 -0
- data/ext/libcouchbase/src/callbacks.c +380 -0
- data/ext/libcouchbase/src/cbft.cc +253 -0
- data/ext/libcouchbase/src/cntl.cc +1057 -0
- data/ext/libcouchbase/src/config_static.h +176 -0
- data/ext/libcouchbase/src/connspec.cc +555 -0
- data/ext/libcouchbase/src/connspec.h +155 -0
- data/ext/libcouchbase/src/crypto.cc +399 -0
- data/ext/libcouchbase/src/ctx-log-inl.h +44 -0
- data/ext/libcouchbase/src/dns-srv.cc +146 -0
- data/ext/libcouchbase/src/dump.cc +103 -0
- data/ext/libcouchbase/src/errmap.cc +173 -0
- data/ext/libcouchbase/src/errmap.h +271 -0
- data/ext/libcouchbase/src/getconfig.cc +72 -0
- data/ext/libcouchbase/src/gethrtime.c +109 -0
- data/ext/libcouchbase/src/handler.cc +1101 -0
- data/ext/libcouchbase/src/hashtable.c +75 -0
- data/ext/libcouchbase/src/hdr_timings.c +92 -0
- data/ext/libcouchbase/src/hostlist.cc +293 -0
- data/ext/libcouchbase/src/hostlist.h +160 -0
- data/ext/libcouchbase/src/http/http-priv.h +326 -0
- data/ext/libcouchbase/src/http/http.cc +672 -0
- data/ext/libcouchbase/src/http/http.h +1 -0
- data/ext/libcouchbase/src/http/http_io.cc +316 -0
- data/ext/libcouchbase/src/instance.cc +917 -0
- data/ext/libcouchbase/src/internal.h +285 -0
- data/ext/libcouchbase/src/iofactory.c +575 -0
- data/ext/libcouchbase/src/jsparse/parser.cc +445 -0
- data/ext/libcouchbase/src/jsparse/parser.h +159 -0
- data/ext/libcouchbase/src/lcbht/lcbht.cc +177 -0
- data/ext/libcouchbase/src/lcbht/lcbht.h +210 -0
- data/ext/libcouchbase/src/lcbio/connect.cc +603 -0
- data/ext/libcouchbase/src/lcbio/connect.h +400 -0
- data/ext/libcouchbase/src/lcbio/ctx.c +658 -0
- data/ext/libcouchbase/src/lcbio/ctx.h +405 -0
- data/ext/libcouchbase/src/lcbio/iotable.c +290 -0
- data/ext/libcouchbase/src/lcbio/iotable.h +169 -0
- data/ext/libcouchbase/src/lcbio/ioutils.cc +356 -0
- data/ext/libcouchbase/src/lcbio/ioutils.h +144 -0
- data/ext/libcouchbase/src/lcbio/lcbio.h +51 -0
- data/ext/libcouchbase/src/lcbio/manager.cc +579 -0
- data/ext/libcouchbase/src/lcbio/manager.h +195 -0
- data/ext/libcouchbase/src/lcbio/protoctx.c +84 -0
- data/ext/libcouchbase/src/lcbio/rw-inl.h +137 -0
- data/ext/libcouchbase/src/lcbio/ssl.h +159 -0
- data/ext/libcouchbase/src/lcbio/timer-cxx.h +87 -0
- data/ext/libcouchbase/src/lcbio/timer-ng.h +179 -0
- data/ext/libcouchbase/src/lcbio/timer.c +132 -0
- data/ext/libcouchbase/src/legacy.c +431 -0
- data/ext/libcouchbase/src/list.c +144 -0
- data/ext/libcouchbase/src/list.h +127 -0
- data/ext/libcouchbase/src/logging.c +244 -0
- data/ext/libcouchbase/src/logging.h +88 -0
- data/ext/libcouchbase/src/mc/compress.cc +171 -0
- data/ext/libcouchbase/src/mc/compress.h +56 -0
- data/ext/libcouchbase/src/mc/forward.c +186 -0
- data/ext/libcouchbase/src/mc/forward.h +90 -0
- data/ext/libcouchbase/src/mc/iovcursor-inl.h +279 -0
- data/ext/libcouchbase/src/mc/iovcursor.h +66 -0
- data/ext/libcouchbase/src/mc/mcreq-flush-inl.h +115 -0
- data/ext/libcouchbase/src/mc/mcreq.c +983 -0
- data/ext/libcouchbase/src/mc/mcreq.h +1015 -0
- data/ext/libcouchbase/src/mcserver/mcserver.cc +1055 -0
- data/ext/libcouchbase/src/mcserver/mcserver.h +221 -0
- data/ext/libcouchbase/src/mcserver/negotiate.cc +757 -0
- data/ext/libcouchbase/src/mcserver/negotiate.h +128 -0
- data/ext/libcouchbase/src/mctx-helper.h +62 -0
- data/ext/libcouchbase/src/metrics.cc +132 -0
- data/ext/libcouchbase/src/n1ql/ixmgmt.cc +857 -0
- data/ext/libcouchbase/src/n1ql/n1ql-internal.h +22 -0
- data/ext/libcouchbase/src/n1ql/n1ql.cc +830 -0
- data/ext/libcouchbase/src/n1ql/params.cc +260 -0
- data/ext/libcouchbase/src/netbuf/netbuf-defs.h +89 -0
- data/ext/libcouchbase/src/netbuf/netbuf-mblock.h +235 -0
- data/ext/libcouchbase/src/netbuf/netbuf.c +929 -0
- data/ext/libcouchbase/src/netbuf/netbuf.h +452 -0
- data/ext/libcouchbase/src/newconfig.cc +365 -0
- data/ext/libcouchbase/src/nodeinfo.cc +184 -0
- data/ext/libcouchbase/src/operations/cbflush.cc +63 -0
- data/ext/libcouchbase/src/operations/counter.cc +117 -0
- data/ext/libcouchbase/src/operations/durability-cas.cc +251 -0
- data/ext/libcouchbase/src/operations/durability-seqno.cc +170 -0
- data/ext/libcouchbase/src/operations/durability.cc +668 -0
- data/ext/libcouchbase/src/operations/durability_internal.h +306 -0
- data/ext/libcouchbase/src/operations/get.cc +409 -0
- data/ext/libcouchbase/src/operations/observe-seqno.cc +94 -0
- data/ext/libcouchbase/src/operations/observe.cc +367 -0
- data/ext/libcouchbase/src/operations/ping.cc +496 -0
- data/ext/libcouchbase/src/operations/pktfwd.cc +86 -0
- data/ext/libcouchbase/src/operations/remove.cc +84 -0
- data/ext/libcouchbase/src/operations/stats.cc +459 -0
- data/ext/libcouchbase/src/operations/store.cc +358 -0
- data/ext/libcouchbase/src/operations/subdoc.cc +614 -0
- data/ext/libcouchbase/src/operations/touch.cc +84 -0
- data/ext/libcouchbase/src/packetutils.h +388 -0
- data/ext/libcouchbase/src/probes.d +182 -0
- data/ext/libcouchbase/src/rdb/bigalloc.c +225 -0
- data/ext/libcouchbase/src/rdb/bigalloc.h +73 -0
- data/ext/libcouchbase/src/rdb/chunkalloc.c +174 -0
- data/ext/libcouchbase/src/rdb/libcalloc.c +94 -0
- data/ext/libcouchbase/src/rdb/rope.c +419 -0
- data/ext/libcouchbase/src/rdb/rope.h +488 -0
- data/ext/libcouchbase/src/retrychk.cc +113 -0
- data/ext/libcouchbase/src/retryq.cc +458 -0
- data/ext/libcouchbase/src/retryq.h +170 -0
- data/ext/libcouchbase/src/ringbuffer.c +442 -0
- data/ext/libcouchbase/src/ringbuffer.h +100 -0
- data/ext/libcouchbase/src/rnd.cc +61 -0
- data/ext/libcouchbase/src/rnd.h +39 -0
- data/ext/libcouchbase/src/settings.c +125 -0
- data/ext/libcouchbase/src/settings.h +273 -0
- data/ext/libcouchbase/src/sllist-inl.h +197 -0
- data/ext/libcouchbase/src/sllist.h +76 -0
- data/ext/libcouchbase/src/ssl/CMakeLists.txt +11 -0
- data/ext/libcouchbase/src/ssl/ssl_c.c +442 -0
- data/ext/libcouchbase/src/ssl/ssl_common.c +478 -0
- data/ext/libcouchbase/src/ssl/ssl_e.c +421 -0
- data/ext/libcouchbase/src/ssl/ssl_iot_common.h +182 -0
- data/ext/libcouchbase/src/strcodecs/base64.c +307 -0
- data/ext/libcouchbase/src/strcodecs/strcodecs.h +302 -0
- data/ext/libcouchbase/src/timings.c +207 -0
- data/ext/libcouchbase/src/trace.h +117 -0
- data/ext/libcouchbase/src/tracing/span.cc +421 -0
- data/ext/libcouchbase/src/tracing/threshold_logging_tracer.cc +213 -0
- data/ext/libcouchbase/src/tracing/tracer.cc +53 -0
- data/ext/libcouchbase/src/tracing/tracing-internal.h +198 -0
- data/ext/libcouchbase/src/utilities.c +176 -0
- data/ext/libcouchbase/src/vbucket/CMakeLists.txt +2 -0
- data/ext/libcouchbase/src/vbucket/aliases.h +35 -0
- data/ext/libcouchbase/src/vbucket/crc32.h +83 -0
- data/ext/libcouchbase/src/vbucket/hash.h +30 -0
- data/ext/libcouchbase/src/vbucket/json-inl.h +112 -0
- data/ext/libcouchbase/src/vbucket/ketama.c +66 -0
- data/ext/libcouchbase/src/vbucket/rfc1321/global.h +32 -0
- data/ext/libcouchbase/src/vbucket/rfc1321/md5.h +35 -0
- data/ext/libcouchbase/src/vbucket/rfc1321/md5c-inl.h +335 -0
- data/ext/libcouchbase/src/vbucket/vbucket.c +1735 -0
- data/ext/libcouchbase/src/views/docreq.cc +213 -0
- data/ext/libcouchbase/src/views/docreq.h +94 -0
- data/ext/libcouchbase/src/views/viewreq.cc +381 -0
- data/ext/libcouchbase/src/views/viewreq.h +87 -0
- data/ext/libcouchbase/src/wait.cc +156 -0
- data/ext/libcouchbase/tests/CMakeLists.txt +149 -0
- data/ext/libcouchbase/tests/basic/t_base64.cc +109 -0
- data/ext/libcouchbase/tests/basic/t_ccbc103.cc +95 -0
- data/ext/libcouchbase/tests/basic/t_connstr.cc +456 -0
- data/ext/libcouchbase/tests/basic/t_creds.cc +96 -0
- data/ext/libcouchbase/tests/basic/t_ctlcodes.cc +92 -0
- data/ext/libcouchbase/tests/basic/t_host.cc +210 -0
- data/ext/libcouchbase/tests/basic/t_jsparse.cc +82 -0
- data/ext/libcouchbase/tests/basic/t_jsparse.h +589 -0
- data/ext/libcouchbase/tests/basic/t_list.cc +155 -0
- data/ext/libcouchbase/tests/basic/t_logger.cc +65 -0
- data/ext/libcouchbase/tests/basic/t_misc.cc +24 -0
- data/ext/libcouchbase/tests/basic/t_n1qlstrings.cc +17 -0
- data/ext/libcouchbase/tests/basic/t_netbuf.cc +446 -0
- data/ext/libcouchbase/tests/basic/t_packet.cc +215 -0
- data/ext/libcouchbase/tests/basic/t_ringbuffer.cc +278 -0
- data/ext/libcouchbase/tests/basic/t_scram.cc +514 -0
- data/ext/libcouchbase/tests/basic/t_slist.cc +429 -0
- data/ext/libcouchbase/tests/basic/t_strerror.cc +64 -0
- data/ext/libcouchbase/tests/basic/t_urlencode.cc +132 -0
- data/ext/libcouchbase/tests/check-all.cc +612 -0
- data/ext/libcouchbase/tests/htparse/t_basic.cc +173 -0
- data/ext/libcouchbase/tests/ioserver/connection.cc +166 -0
- data/ext/libcouchbase/tests/ioserver/future.cc +50 -0
- data/ext/libcouchbase/tests/ioserver/ioserver.cc +117 -0
- data/ext/libcouchbase/tests/ioserver/ioserver.h +478 -0
- data/ext/libcouchbase/tests/ioserver/socket.cc +88 -0
- data/ext/libcouchbase/tests/ioserver/ssl_connection.cc +145 -0
- data/ext/libcouchbase/tests/ioserver/threads-pthreads.cc +119 -0
- data/ext/libcouchbase/tests/ioserver/threads-win32.cc +117 -0
- data/ext/libcouchbase/tests/ioserver/threads.h +66 -0
- data/ext/libcouchbase/tests/iotests/iotests.h +15 -0
- data/ext/libcouchbase/tests/iotests/mock-environment.cc +632 -0
- data/ext/libcouchbase/tests/iotests/mock-environment.h +480 -0
- data/ext/libcouchbase/tests/iotests/mock-unit-test.cc +67 -0
- data/ext/libcouchbase/tests/iotests/mock-unit-test.h +61 -0
- data/ext/libcouchbase/tests/iotests/serverparams.h +76 -0
- data/ext/libcouchbase/tests/iotests/t_arithmetic.cc +143 -0
- data/ext/libcouchbase/tests/iotests/t_behavior.cc +220 -0
- data/ext/libcouchbase/tests/iotests/t_configcache.cc +117 -0
- data/ext/libcouchbase/tests/iotests/t_confmon.cc +223 -0
- data/ext/libcouchbase/tests/iotests/t_durability.cc +1108 -0
- data/ext/libcouchbase/tests/iotests/t_eerrs.cc +121 -0
- data/ext/libcouchbase/tests/iotests/t_errmap.cc +181 -0
- data/ext/libcouchbase/tests/iotests/t_forward.cc +118 -0
- data/ext/libcouchbase/tests/iotests/t_get.cc +512 -0
- data/ext/libcouchbase/tests/iotests/t_http.cc +438 -0
- data/ext/libcouchbase/tests/iotests/t_iops.cc +175 -0
- data/ext/libcouchbase/tests/iotests/t_lock.cc +274 -0
- data/ext/libcouchbase/tests/iotests/t_misc.cc +777 -0
- data/ext/libcouchbase/tests/iotests/t_mutate.cc +609 -0
- data/ext/libcouchbase/tests/iotests/t_n1ql.cc +270 -0
- data/ext/libcouchbase/tests/iotests/t_netfail.cc +778 -0
- data/ext/libcouchbase/tests/iotests/t_obseqno.cc +156 -0
- data/ext/libcouchbase/tests/iotests/t_regression.cc +321 -0
- data/ext/libcouchbase/tests/iotests/t_sched.cc +87 -0
- data/ext/libcouchbase/tests/iotests/t_serverops.cc +231 -0
- data/ext/libcouchbase/tests/iotests/t_smoke.cc +528 -0
- data/ext/libcouchbase/tests/iotests/t_snappy.cc +316 -0
- data/ext/libcouchbase/tests/iotests/t_subdoc.cc +857 -0
- data/ext/libcouchbase/tests/iotests/t_syncmode.cc +64 -0
- data/ext/libcouchbase/tests/iotests/t_views.cc +417 -0
- data/ext/libcouchbase/tests/iotests/testutil.cc +251 -0
- data/ext/libcouchbase/tests/iotests/testutil.h +163 -0
- data/ext/libcouchbase/tests/mc/mctest.h +119 -0
- data/ext/libcouchbase/tests/mc/pktmaker.h +101 -0
- data/ext/libcouchbase/tests/mc/t_alloc.cc +269 -0
- data/ext/libcouchbase/tests/mc/t_context.cc +100 -0
- data/ext/libcouchbase/tests/mc/t_flush.cc +185 -0
- data/ext/libcouchbase/tests/mc/t_forward.cc +239 -0
- data/ext/libcouchbase/tests/mc/t_ioflush.cc +102 -0
- data/ext/libcouchbase/tests/mc/t_iovcursor.cc +173 -0
- data/ext/libcouchbase/tests/mocksupport/procutil.c +305 -0
- data/ext/libcouchbase/tests/mocksupport/procutil.h +89 -0
- data/ext/libcouchbase/tests/mocksupport/server.c +391 -0
- data/ext/libcouchbase/tests/mocksupport/server.h +72 -0
- data/ext/libcouchbase/tests/mocksupport/timeout.c +69 -0
- data/ext/libcouchbase/tests/nonio_tests.cc +23 -0
- data/ext/libcouchbase/tests/rdb/rdbtest.h +133 -0
- data/ext/libcouchbase/tests/rdb/t_basic.cc +128 -0
- data/ext/libcouchbase/tests/rdb/t_bigalloc.cc +93 -0
- data/ext/libcouchbase/tests/rdb/t_refs.cc +112 -0
- data/ext/libcouchbase/tests/socktests/socktest.cc +344 -0
- data/ext/libcouchbase/tests/socktests/socktest.h +447 -0
- data/ext/libcouchbase/tests/socktests/t_basic.cc +143 -0
- data/ext/libcouchbase/tests/socktests/t_ctx.cc +73 -0
- data/ext/libcouchbase/tests/socktests/t_manager.cc +159 -0
- data/ext/libcouchbase/tests/socktests/t_putex.cc +256 -0
- data/ext/libcouchbase/tests/socktests/t_read.cc +187 -0
- data/ext/libcouchbase/tests/socktests/t_reentrant.cc +143 -0
- data/ext/libcouchbase/tests/socktests/t_ssl.cc +80 -0
- data/ext/libcouchbase/tests/socktests/t_write.cc +95 -0
- data/ext/libcouchbase/tests/start_mock.bat +15 -0
- data/ext/libcouchbase/tests/start_mock.sh +42 -0
- data/ext/libcouchbase/tests/unit_tests.cc +43 -0
- data/ext/libcouchbase/tests/vbucket/confdata/bad.json +101 -0
- data/ext/libcouchbase/tests/vbucket/confdata/full_25.json +363 -0
- data/ext/libcouchbase/tests/vbucket/confdata/ketama_expected.json +2562 -0
- data/ext/libcouchbase/tests/vbucket/confdata/map_node_present_nodesext_missing_nodes.json +94 -0
- data/ext/libcouchbase/tests/vbucket/confdata/memd_25.json +90 -0
- data/ext/libcouchbase/tests/vbucket/confdata/memd_30.json +1 -0
- data/ext/libcouchbase/tests/vbucket/confdata/memd_45.json +1 -0
- data/ext/libcouchbase/tests/vbucket/confdata/memd_ketama_config.json +31 -0
- data/ext/libcouchbase/tests/vbucket/confdata/terse_25.json +291 -0
- data/ext/libcouchbase/tests/vbucket/confdata/terse_30.json +1 -0
- data/ext/libcouchbase/tests/vbucket/t_config.cc +386 -0
- data/ext/libcouchbase/tools/CMakeLists.txt +80 -0
- data/ext/libcouchbase/tools/cbc-handlers.h +636 -0
- data/ext/libcouchbase/tools/cbc-n1qlback.cc +496 -0
- data/ext/libcouchbase/tools/cbc-pillowfight.cc +1230 -0
- data/ext/libcouchbase/tools/cbc-proxy.cc +534 -0
- data/ext/libcouchbase/tools/cbc-subdoc.cc +825 -0
- data/ext/libcouchbase/tools/cbc.cc +1928 -0
- data/ext/libcouchbase/tools/common/histogram.cc +44 -0
- data/ext/libcouchbase/tools/common/histogram.h +23 -0
- data/ext/libcouchbase/tools/common/options.cc +451 -0
- data/ext/libcouchbase/tools/common/options.h +90 -0
- data/ext/libcouchbase/tools/docgen/docgen.h +495 -0
- data/ext/libcouchbase/tools/docgen/loc.h +211 -0
- data/ext/libcouchbase/tools/docgen/placeholders.h +211 -0
- data/ext/libcouchbase/tools/docgen/seqgen.h +122 -0
- data/ext/libcouchbase/tools/extract-packets.rb +110 -0
- data/ext/libcouchbase/tools/linenoise/linenoise.c +1199 -0
- data/ext/libcouchbase/tools/linenoise/linenoise.h +73 -0
- data/lib/mt-libcouchbase/bucket.rb +825 -0
- data/lib/mt-libcouchbase/callbacks.rb +69 -0
- data/lib/mt-libcouchbase/connection.rb +896 -0
- data/lib/mt-libcouchbase/design_docs.rb +92 -0
- data/lib/mt-libcouchbase/error.rb +68 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdbase.rb +23 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdcounter.rb +36 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdendure.rb +26 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdfts.rb +24 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdget.rb +30 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdgetreplica.rb +49 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdhttp.rb +58 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdn1ql.rb +40 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdobseqno.rb +33 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdobserve.rb +30 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdstore.rb +40 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdstoredur.rb +45 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdsubdoc.rb +61 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdverbosity.rb +29 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdviewquery.rb +61 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/contigbuf.rb +14 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/create_st.rb +15 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/create_st0.rb +23 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/create_st1.rb +26 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/create_st2.rb +32 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/create_st3.rb +26 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/crst_u.rb +20 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/durability_opts_st_v.rb +11 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/durability_opts_t.rb +14 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/durabilityopt_sv0.rb +63 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/enums.rb +1007 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/fragbuf.rb +18 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/ftshandle.rb +7 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/histogram.rb +34 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/http_request_t.rb +7 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/keybuf.rb +20 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/multicmd_ctx.rb +30 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/mutation_token.rb +17 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/n1qlhandle.rb +7 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/n1qlparams.rb +7 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respbase.rb +29 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respcounter.rb +32 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respendure.rb +49 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respfts.rb +40 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respget.rb +44 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/resphttp.rb +48 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respmcversion.rb +38 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respn1ql.rb +41 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respobseqno.rb +52 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respobserve.rb +41 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respserverbase.rb +32 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respstats.rb +38 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respstore.rb +32 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respstoredur.rb +38 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respsubdoc.rb +35 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respviewquery.rb +67 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/sdentry.rb +22 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/sdspec.rb +31 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/t.rb +7 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/valbuf.rb +22 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/valbuf_u_buf.rb +14 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/viewhandle.rb +7 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase.rb +1175 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase_libuv.rb +22 -0
- data/lib/mt-libcouchbase/ext/tasks.rb +39 -0
- data/lib/mt-libcouchbase/n1ql.rb +80 -0
- data/lib/mt-libcouchbase/query_full_text.rb +147 -0
- data/lib/mt-libcouchbase/query_n1ql.rb +123 -0
- data/lib/mt-libcouchbase/query_view.rb +135 -0
- data/lib/mt-libcouchbase/results_fiber.rb +281 -0
- data/lib/mt-libcouchbase/results_native.rb +220 -0
- data/lib/mt-libcouchbase/subdoc_request.rb +139 -0
- data/lib/mt-libcouchbase/version.rb +5 -0
- data/lib/mt-libcouchbase.rb +40 -0
- data/mt-libcouchbase.gemspec +68 -0
- data/spec/bucket_spec.rb +290 -0
- data/spec/connection_spec.rb +257 -0
- data/spec/design_docs_spec.rb +31 -0
- data/spec/error_spec.rb +26 -0
- data/spec/fts_spec.rb +135 -0
- data/spec/n1ql_spec.rb +260 -0
- data/spec/results_libuv_spec.rb +244 -0
- data/spec/results_native_spec.rb +259 -0
- data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/design.json +1 -0
- data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/data-0000.cbb +0 -0
- data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/failover.json +1 -0
- data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/meta.json +1 -0
- data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/seqno.json +1 -0
- data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/snapshot_markers.json +1 -0
- data/spec/subdoc_spec.rb +192 -0
- data/spec/view_spec.rb +201 -0
- data/windows_build.md +36 -0
- metadata +873 -0
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
/* -*- Mode: C; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2012 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
|
+
#ifndef LIBCOUCHBASE_WIN_ERRNO_SOCK_H
|
|
18
|
+
#define LIBCOUCHBASE_WIN_ERRNO_SOCK_H 1
|
|
19
|
+
|
|
20
|
+
#include <errno.h>
|
|
21
|
+
|
|
22
|
+
#ifndef EWOULDBLOCK
|
|
23
|
+
#define EWOULDBLOCK WSAEWOULDBLOCK
|
|
24
|
+
#endif
|
|
25
|
+
|
|
26
|
+
#ifndef EINPROGRESS
|
|
27
|
+
#define EINPROGRESS WSAEINPROGRESS
|
|
28
|
+
#endif
|
|
29
|
+
|
|
30
|
+
#ifndef EALREADY
|
|
31
|
+
#define EALREADY WSAEALREADY
|
|
32
|
+
#endif
|
|
33
|
+
|
|
34
|
+
#ifndef ENOTSOCK
|
|
35
|
+
#define ENOTSOCK WSAENOTSOCK
|
|
36
|
+
#endif
|
|
37
|
+
|
|
38
|
+
#ifndef EDESTADDRREQ
|
|
39
|
+
#define EDESTADDRREQ WSAEDESTADDRREQ
|
|
40
|
+
#endif
|
|
41
|
+
|
|
42
|
+
#ifndef EMSGSIZE
|
|
43
|
+
#define EMSGSIZE WSAEMSGSIZE
|
|
44
|
+
#endif
|
|
45
|
+
|
|
46
|
+
#ifndef EPROTOTYPE
|
|
47
|
+
#define EPROTOTYPE WSAEPROTOTYPE
|
|
48
|
+
#endif
|
|
49
|
+
|
|
50
|
+
#ifndef ENOPROTOOPT
|
|
51
|
+
#define ENOPROTOOPT WSAENOPROTOOPT
|
|
52
|
+
#endif
|
|
53
|
+
|
|
54
|
+
#ifndef EPROTONOSUPPORT
|
|
55
|
+
#define EPROTONOSUPPORT WSAEPROTONOSUPPORT
|
|
56
|
+
#endif
|
|
57
|
+
|
|
58
|
+
#ifndef ESOCKTNOSUPPORT
|
|
59
|
+
#define ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT
|
|
60
|
+
#endif
|
|
61
|
+
|
|
62
|
+
#ifndef EOPNOTSUPP
|
|
63
|
+
#define EOPNOTSUPP WSAEOPNOTSUPP
|
|
64
|
+
#endif
|
|
65
|
+
|
|
66
|
+
#ifndef ENOPROTOOPT
|
|
67
|
+
#define ENOPROTOOPT WSAENOPROTOOPT
|
|
68
|
+
#endif
|
|
69
|
+
|
|
70
|
+
#ifndef EPROTONOSUPPORT
|
|
71
|
+
#define EPROTONOSUPPORT WSAEPROTONOSUPPORT
|
|
72
|
+
#endif
|
|
73
|
+
|
|
74
|
+
#ifndef ESOCKTNOSUPPORT
|
|
75
|
+
#define ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT
|
|
76
|
+
#endif
|
|
77
|
+
|
|
78
|
+
#ifndef EPFNOSUPPORT
|
|
79
|
+
#define EPFNOSUPPORT WSAEPFNOSUPPORT
|
|
80
|
+
#endif
|
|
81
|
+
|
|
82
|
+
#ifndef EAFNOSUPPORT
|
|
83
|
+
#define EAFNOSUPPORT WSAEAFNOSUPPORT
|
|
84
|
+
#endif
|
|
85
|
+
|
|
86
|
+
#ifndef EADDRINUSE
|
|
87
|
+
#define EADDRINUSE WSAEADDRINUSE
|
|
88
|
+
#endif
|
|
89
|
+
|
|
90
|
+
#ifndef EADDRNOTAVAIL
|
|
91
|
+
#define EADDRNOTAVAIL WSAEADDRNOTAVAIL
|
|
92
|
+
#endif
|
|
93
|
+
|
|
94
|
+
#ifndef ENETDOWN
|
|
95
|
+
#define ENETDOWN WSAENETDOWN
|
|
96
|
+
#endif
|
|
97
|
+
|
|
98
|
+
#ifndef ENETUNREACH
|
|
99
|
+
#define ENETUNREACH WSAENETUNREACH
|
|
100
|
+
#endif
|
|
101
|
+
|
|
102
|
+
#ifndef ENETRESET
|
|
103
|
+
#define ENETRESET WSAENETRESET
|
|
104
|
+
#endif
|
|
105
|
+
|
|
106
|
+
#ifndef ECONNABORTED
|
|
107
|
+
#define ECONNABORTED WSAECONNABORTED
|
|
108
|
+
#endif
|
|
109
|
+
|
|
110
|
+
#ifndef ECONNRESET
|
|
111
|
+
#define ECONNRESET WSAECONNRESET
|
|
112
|
+
#endif
|
|
113
|
+
|
|
114
|
+
#ifndef ENOBUFS
|
|
115
|
+
#define ENOBUFS WSAENOBUFS
|
|
116
|
+
#endif
|
|
117
|
+
|
|
118
|
+
#ifndef EISCONN
|
|
119
|
+
#define EISCONN WSAEISCONN
|
|
120
|
+
#endif
|
|
121
|
+
|
|
122
|
+
#ifndef ENOTCONN
|
|
123
|
+
#define ENOTCONN WSAENOTCONN
|
|
124
|
+
#endif
|
|
125
|
+
|
|
126
|
+
#ifndef ESHUTDOWN
|
|
127
|
+
#define ESHUTDOWN WSAESHUTDOWN
|
|
128
|
+
#endif
|
|
129
|
+
|
|
130
|
+
#ifndef ETOOMANYREFS
|
|
131
|
+
#define ETOOMANYREFS WSAETOOMANYREFS
|
|
132
|
+
#endif
|
|
133
|
+
|
|
134
|
+
#ifndef ETIMEDOUT
|
|
135
|
+
#define ETIMEDOUT WSAETIMEDOUT
|
|
136
|
+
#endif
|
|
137
|
+
|
|
138
|
+
#ifndef ECONNREFUSED
|
|
139
|
+
#define ECONNREFUSED WSAECONNREFUSED
|
|
140
|
+
#endif
|
|
141
|
+
|
|
142
|
+
#ifndef ELOOP
|
|
143
|
+
#define ELOOP WSAELOOP
|
|
144
|
+
#endif
|
|
145
|
+
|
|
146
|
+
/*
|
|
147
|
+
#ifndef ENAMETOOLONG
|
|
148
|
+
#define ENAMETOOLONG WSAENAMETOOLONG
|
|
149
|
+
#endif
|
|
150
|
+
*/
|
|
151
|
+
|
|
152
|
+
#ifndef EHOSTDOWN
|
|
153
|
+
#define EHOSTDOWN WSAEHOSTDOWN
|
|
154
|
+
#endif
|
|
155
|
+
|
|
156
|
+
#ifndef EHOSTUNREACH
|
|
157
|
+
#define EHOSTUNREACH WSAEHOSTUNREACH
|
|
158
|
+
#endif
|
|
159
|
+
|
|
160
|
+
/*
|
|
161
|
+
#ifndef ENOTEMPTY
|
|
162
|
+
#define ENOTEMPTY WSAENOTEMPTY
|
|
163
|
+
#endif
|
|
164
|
+
*/
|
|
165
|
+
|
|
166
|
+
#ifndef EPROCLIM
|
|
167
|
+
#define EPROCLIM WSAEPROCLIM
|
|
168
|
+
#endif
|
|
169
|
+
|
|
170
|
+
#ifndef EUSERS
|
|
171
|
+
#define EUSERS WSAEUSERS
|
|
172
|
+
#endif
|
|
173
|
+
|
|
174
|
+
#ifndef EDQUOT
|
|
175
|
+
#define EDQUOT WSAEDQUOT
|
|
176
|
+
#endif
|
|
177
|
+
|
|
178
|
+
#ifndef ESTALE
|
|
179
|
+
#define ESTALE WSAESTALE
|
|
180
|
+
#endif
|
|
181
|
+
|
|
182
|
+
#ifndef EREMOTE
|
|
183
|
+
#define EREMOTE WSAEREMOTE
|
|
184
|
+
#endif
|
|
185
|
+
|
|
186
|
+
#ifndef EPROTO
|
|
187
|
+
#define EPROTO WSAEPROTONOSUPPORT
|
|
188
|
+
#endif
|
|
189
|
+
|
|
190
|
+
#ifndef ECANCELED
|
|
191
|
+
#define ECANCELED WSAECANCELLED
|
|
192
|
+
#endif
|
|
193
|
+
|
|
194
|
+
/** Some versions have this; some don't */
|
|
195
|
+
#ifndef ENOTSUP
|
|
196
|
+
#define ENOTSUP -1
|
|
197
|
+
#endif
|
|
198
|
+
|
|
199
|
+
#endif
|
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
/* -*- Mode: C; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2016 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
|
+
#ifndef LCB_SUBDOC_H
|
|
18
|
+
#define LCB_SUBDOC_H
|
|
19
|
+
|
|
20
|
+
#ifdef __cplusplus
|
|
21
|
+
extern "C" {
|
|
22
|
+
#endif
|
|
23
|
+
|
|
24
|
+
/**@ingroup lcb-public-api
|
|
25
|
+
* @defgroup lcb-subdoc Sub-Document API
|
|
26
|
+
* @brief Experimental in-document API access
|
|
27
|
+
* @details The sub-document API uses features from the upcoming Couchbase
|
|
28
|
+
* 4.5 release which allows access to parts of the document. These parts are
|
|
29
|
+
* called _sub-documents_ and can be accessed using the sub-document API
|
|
30
|
+
*
|
|
31
|
+
* @addtogroup lcb-subdoc
|
|
32
|
+
* @{
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @brief Sub-Document command codes
|
|
37
|
+
*
|
|
38
|
+
* These command codes should be applied as values to lcb_SDSPEC::sdcmd and
|
|
39
|
+
* indicate which type of subdoc command the server should perform.
|
|
40
|
+
*/
|
|
41
|
+
typedef enum {
|
|
42
|
+
/**
|
|
43
|
+
* Retrieve the value for a path
|
|
44
|
+
*/
|
|
45
|
+
LCB_SDCMD_GET = 1,
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Check if the value for a path exists. If the path exists then the error
|
|
49
|
+
* code will be @ref LCB_SUCCESS
|
|
50
|
+
*/
|
|
51
|
+
LCB_SDCMD_EXISTS,
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Replace the value at the specified path. This operation can work
|
|
55
|
+
* on any existing and valid path.
|
|
56
|
+
*/
|
|
57
|
+
LCB_SDCMD_REPLACE,
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Add the value at the given path, if the given path does not exist.
|
|
61
|
+
* The penultimate path component must point to an array. The operation
|
|
62
|
+
* may be used in conjunction with @ref LCB_SDSPEC_F_MKINTERMEDIATES to
|
|
63
|
+
* create the parent dictionary (and its parents as well) if it does not
|
|
64
|
+
* yet exist.
|
|
65
|
+
*/
|
|
66
|
+
LCB_SDCMD_DICT_ADD,
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Unconditionally set the value at the path. This logically
|
|
70
|
+
* attempts to perform a @ref LCB_SDCMD_REPLACE, and if it fails, performs
|
|
71
|
+
* an @ref LCB_SDCMD_DICT_ADD.
|
|
72
|
+
*/
|
|
73
|
+
LCB_SDCMD_DICT_UPSERT,
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Prepend the value(s) to the array indicated by the path. The path should
|
|
77
|
+
* reference an array. When the @ref LCB_SDSPEC_F_MKINTERMEDIATES flag
|
|
78
|
+
* is specified then the array may be created if it does not exist.
|
|
79
|
+
*
|
|
80
|
+
* Note that it is possible to add more than a single value to an array
|
|
81
|
+
* in an operation (this is valid for this commnand as well as
|
|
82
|
+
* @ref LCB_SDCMD_ARRAY_ADD_LAST and @ref LCB_SDCMD_ARRAY_INSERT). Multiple
|
|
83
|
+
* items can be specified by placing a comma between then (the values should
|
|
84
|
+
* otherwise be valid JSON).
|
|
85
|
+
*/
|
|
86
|
+
LCB_SDCMD_ARRAY_ADD_FIRST,
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Identical to @ref LCB_SDCMD_ARRAY_ADD_FIRST but places the item(s)
|
|
90
|
+
* at the end of the array rather than at the beginning.
|
|
91
|
+
*/
|
|
92
|
+
LCB_SDCMD_ARRAY_ADD_LAST,
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Add the value to the array indicated by the path, if the value is not
|
|
96
|
+
* already in the array. The @ref LCB_SDSPEC_F_MKINTERMEDIATES flag can
|
|
97
|
+
* be specified to create the array if it does not already exist.
|
|
98
|
+
*
|
|
99
|
+
* Currently the value for this operation must be a JSON primitive (i.e.
|
|
100
|
+
* no arrays or dictionaries) and the existing array itself must also
|
|
101
|
+
* contain only primitives (otherwise a @ref LCB_SUBDOC_PATH_MISMATCH
|
|
102
|
+
* error will be received).
|
|
103
|
+
*/
|
|
104
|
+
LCB_SDCMD_ARRAY_ADD_UNIQUE,
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Add the value at the given array index. Unlike other array operations,
|
|
108
|
+
* the path specified should include the actual index at which the item(s)
|
|
109
|
+
* should be placed, for example `array[2]` will cause the value(s) to be
|
|
110
|
+
* the 3rd item(s) in the array.
|
|
111
|
+
*
|
|
112
|
+
* The array must already exist and the @ref LCB_SDSPEC_F_MKINTERMEDIATES
|
|
113
|
+
* flag is not honored.
|
|
114
|
+
*/
|
|
115
|
+
LCB_SDCMD_ARRAY_INSERT,
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Increment or decrement an existing numeric path. If the number does
|
|
119
|
+
* not exist, it will be created (though its parents will not, unless
|
|
120
|
+
* @ref LCB_SDSPEC_F_MKINTERMEDIATES is specified).
|
|
121
|
+
*
|
|
122
|
+
* The value for this operation should be a valid JSON-encoded integer and
|
|
123
|
+
* must be between `INT64_MIN` and `INT64_MAX`, inclusive.
|
|
124
|
+
*/
|
|
125
|
+
LCB_SDCMD_COUNTER,
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Remove an existing path in the document.
|
|
129
|
+
*/
|
|
130
|
+
LCB_SDCMD_REMOVE,
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Count the number of elements in an array or dictionary
|
|
134
|
+
*/
|
|
135
|
+
LCB_SDCMD_GET_COUNT,
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Retrieve the entire document
|
|
139
|
+
*/
|
|
140
|
+
LCB_SDCMD_GET_FULLDOC,
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Replace the entire document
|
|
144
|
+
*/
|
|
145
|
+
LCB_SDCMD_SET_FULLDOC,
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Remove the entire document
|
|
149
|
+
*/
|
|
150
|
+
LCB_SDCMD_REMOVE_FULLDOC,
|
|
151
|
+
|
|
152
|
+
LCB_SDCMD_MAX
|
|
153
|
+
} lcb_SUBDOCOP;
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* @brief Subdoc command specification.
|
|
157
|
+
* This structure describes an operation and its path, and possibly its value.
|
|
158
|
+
* This structure is provided in an array to the lcb_CMDSUBDOC::specs field.
|
|
159
|
+
*/
|
|
160
|
+
typedef struct {
|
|
161
|
+
/**
|
|
162
|
+
* The command code, @ref lcb_SUBDOCOP. There is no default for this
|
|
163
|
+
* value, and it therefore must be set.
|
|
164
|
+
*/
|
|
165
|
+
lcb_U32 sdcmd;
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Set of option flags for the command. Currently the only option known
|
|
169
|
+
* is @ref LCB_SDSPEC_F_MKINTERMEDIATES
|
|
170
|
+
*/
|
|
171
|
+
lcb_U32 options;
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Path for the operation. This should be assigned using
|
|
175
|
+
* @ref LCB_SDSPEC_SET_PATH. The contents of the path should be valid
|
|
176
|
+
* until the operation is scheduled (lcb_subdoc3())
|
|
177
|
+
*/
|
|
178
|
+
lcb_KEYBUF path;
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Value for the operation. This should be assigned using
|
|
182
|
+
* @ref LCB_SDSPEC_SET_VALUE. The contents of the value should be valid
|
|
183
|
+
* until the operation is scheduled (i.e. lcb_subdoc3())
|
|
184
|
+
*/
|
|
185
|
+
lcb_VALBUF value;
|
|
186
|
+
} lcb_SDSPEC;
|
|
187
|
+
|
|
188
|
+
/** Create intermediate paths */
|
|
189
|
+
#define LCB_SDSPEC_F_MKINTERMEDIATES (1<<16)
|
|
190
|
+
|
|
191
|
+
/** Access document XATTR path */
|
|
192
|
+
#define LCB_SDSPEC_F_XATTRPATH (1<<18)
|
|
193
|
+
|
|
194
|
+
/** Access document virtual/materialized path. Implies F_XATTRPATH */
|
|
195
|
+
#define LCB_SDSPEC_F_XATTR_MACROVALUES (1<<19)
|
|
196
|
+
|
|
197
|
+
/** Access Xattrs of deleted documents */
|
|
198
|
+
#define LCB_SDSPEC_F_XATTR_DELETED_OK (1<<20)
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* Set the path for an @ref lcb_SDSPEC structure
|
|
202
|
+
* @param s pointer to spec
|
|
203
|
+
* @param p the path buffer
|
|
204
|
+
* @param n the length of the path buffer
|
|
205
|
+
*/
|
|
206
|
+
#define LCB_SDSPEC_SET_PATH(s, p, n) do { \
|
|
207
|
+
(s)->path.contig.bytes = p; \
|
|
208
|
+
(s)->path.contig.nbytes = n; \
|
|
209
|
+
(s)->path.type = LCB_KV_COPY; \
|
|
210
|
+
} while (0);
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Set the value for the @ref lcb_SDSPEC structure
|
|
214
|
+
* @param s pointer to spec
|
|
215
|
+
* @param v the value buffer
|
|
216
|
+
* @param n the length of the value buffer
|
|
217
|
+
*/
|
|
218
|
+
#define LCB_SDSPEC_SET_VALUE(s, v, n) \
|
|
219
|
+
LCB_CMD_SET_VALUE(s, v, n)
|
|
220
|
+
|
|
221
|
+
#define LCB_SDSPEC_INIT(spec, cmd_, path_, npath_, val_, nval_) do { \
|
|
222
|
+
(spec)->sdcmd = cmd_; \
|
|
223
|
+
LCB_SDSPEC_SET_PATH(spec, path_, npath_); \
|
|
224
|
+
LCB_CMD_SET_VALUE(spec, val_, nval_); \
|
|
225
|
+
} while (0);
|
|
226
|
+
|
|
227
|
+
#define LCB_SDMULTI_MODE_INVALID 0
|
|
228
|
+
#define LCB_SDMULTI_MODE_LOOKUP 1
|
|
229
|
+
#define LCB_SDMULTI_MODE_MUTATE 2
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* This command flag should be used if the document is to be created
|
|
233
|
+
* if it does not exist.
|
|
234
|
+
*/
|
|
235
|
+
#define LCB_CMDSUBDOC_F_UPSERT_DOC (1<<16)
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* This command flag should be used if the document must be created anew.
|
|
239
|
+
* In this case, it will fail if it already exists
|
|
240
|
+
*/
|
|
241
|
+
#define LCB_CMDSUBDOC_F_INSERT_DOC (1<<17)
|
|
242
|
+
|
|
243
|
+
/**
|
|
244
|
+
* Access a potentially deleted document. For internal Couchbase use
|
|
245
|
+
*/
|
|
246
|
+
#define LCB_CMDSUBDOC_F_ACCESS_DELETED (1<<18)
|
|
247
|
+
|
|
248
|
+
typedef struct {
|
|
249
|
+
LCB_CMD_BASE;
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* An array of one or more command specifications. The storage
|
|
253
|
+
* for the array need only persist for the duration of the
|
|
254
|
+
* lcb_subdoc3() call.
|
|
255
|
+
*
|
|
256
|
+
* The specs array must be valid only through the invocation
|
|
257
|
+
* of lcb_subdoc3(). As such, they can reside on the stack and
|
|
258
|
+
* be re-used for scheduling multiple commands. See subdoc-simple.cc
|
|
259
|
+
*/
|
|
260
|
+
const lcb_SDSPEC *specs;
|
|
261
|
+
/**
|
|
262
|
+
* Number of entries in #specs
|
|
263
|
+
*/
|
|
264
|
+
size_t nspecs;
|
|
265
|
+
/**
|
|
266
|
+
* If the scheduling of the command failed, the index of the entry which
|
|
267
|
+
* caused the failure will be written to this pointer.
|
|
268
|
+
*
|
|
269
|
+
* If the value is -1 then the failure took place at the command level
|
|
270
|
+
* and not at the spec level.
|
|
271
|
+
*/
|
|
272
|
+
int *error_index;
|
|
273
|
+
/**
|
|
274
|
+
* Operation mode to use. This can either be @ref LCB_SDMULTI_MODE_LOOKUP
|
|
275
|
+
* or @ref LCB_SDMULTI_MODE_MUTATE.
|
|
276
|
+
*
|
|
277
|
+
* This field may be left empty, in which case the mode is implicitly
|
|
278
|
+
* derived from the _first_ command issued.
|
|
279
|
+
*/
|
|
280
|
+
lcb_U32 multimode;
|
|
281
|
+
} lcb_CMDSUBDOC;
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* Perform one or more subdocument operations.
|
|
285
|
+
*/
|
|
286
|
+
LIBCOUCHBASE_API
|
|
287
|
+
lcb_error_t
|
|
288
|
+
lcb_subdoc3(lcb_t instance, const void *cookie, const lcb_CMDSUBDOC *cmd);
|
|
289
|
+
|
|
290
|
+
/**
|
|
291
|
+
* Response structure for multi lookups. If the top level response is successful
|
|
292
|
+
* then the individual results may be retrieved using lcb_sdmlookup_next()
|
|
293
|
+
*/
|
|
294
|
+
typedef struct {
|
|
295
|
+
LCB_RESP_BASE
|
|
296
|
+
const void *responses;
|
|
297
|
+
/** Use with lcb_backbuf_ref/unref */
|
|
298
|
+
void *bufh;
|
|
299
|
+
} lcb_RESPSUBDOC;
|
|
300
|
+
|
|
301
|
+
/**
|
|
302
|
+
* Structure for a single sub-document mutation or lookup result.
|
|
303
|
+
* Note that #value and #nvalue are only valid if #status is ::LCB_SUCCESS
|
|
304
|
+
*/
|
|
305
|
+
typedef struct {
|
|
306
|
+
/** Value for the mutation (only applicable for ::LCB_SDCMD_COUNTER, currently) */
|
|
307
|
+
const void *value;
|
|
308
|
+
/** Length of the value */
|
|
309
|
+
size_t nvalue;
|
|
310
|
+
/** Status code */
|
|
311
|
+
lcb_error_t status;
|
|
312
|
+
|
|
313
|
+
/**
|
|
314
|
+
* Request index which this result pertains to. This field only
|
|
315
|
+
* makes sense for multi mutations where not all request specs are returned
|
|
316
|
+
* in the result
|
|
317
|
+
*/
|
|
318
|
+
lcb_U8 index;
|
|
319
|
+
} lcb_SDENTRY;
|
|
320
|
+
|
|
321
|
+
/**
|
|
322
|
+
* Iterate over the results for a subdocument response.
|
|
323
|
+
*
|
|
324
|
+
* @warning
|
|
325
|
+
* This function _must_ be called from within the callback. The response itself
|
|
326
|
+
* may contain a pointer to internal stack data which is no longer valid
|
|
327
|
+
* once the callback exits.
|
|
328
|
+
*
|
|
329
|
+
* @param resp the response received from within the callback.
|
|
330
|
+
* @param[out] out structure to store the current result
|
|
331
|
+
* @param[in,out] iter internal iterator. First call should initialize this to 0
|
|
332
|
+
* Note that this value may be 0, in which case only the first response is
|
|
333
|
+
* returned.
|
|
334
|
+
*
|
|
335
|
+
* @return If this function returns nonzero then `out` will contain a valid
|
|
336
|
+
* entry. If this function returns 0 then `ent` is invalid and no more results
|
|
337
|
+
* remain for the response.
|
|
338
|
+
*/
|
|
339
|
+
LIBCOUCHBASE_API
|
|
340
|
+
int
|
|
341
|
+
lcb_sdresult_next(const lcb_RESPSUBDOC *resp, lcb_SDENTRY *out, size_t *iter);
|
|
342
|
+
|
|
343
|
+
/**@}*/
|
|
344
|
+
#ifdef __cplusplus
|
|
345
|
+
}
|
|
346
|
+
#endif
|
|
347
|
+
#endif
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/* -*- Mode: C; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2010-2012 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
|
+
/**
|
|
19
|
+
* Basic platform includes.
|
|
20
|
+
*/
|
|
21
|
+
#ifndef LCB_SYSDEFS_H
|
|
22
|
+
#define LCB_SYSDEFS_H
|
|
23
|
+
|
|
24
|
+
#ifdef __cplusplus
|
|
25
|
+
extern "C" {
|
|
26
|
+
#endif
|
|
27
|
+
|
|
28
|
+
#ifdef _WIN32
|
|
29
|
+
#include <stddef.h>
|
|
30
|
+
#include <winsock2.h>
|
|
31
|
+
#include <basetsd.h>
|
|
32
|
+
|
|
33
|
+
typedef __int64 lcb_int64_t;
|
|
34
|
+
typedef __int32 lcb_int32_t;
|
|
35
|
+
typedef SIZE_T lcb_size_t;
|
|
36
|
+
typedef SSIZE_T lcb_ssize_t;
|
|
37
|
+
typedef unsigned __int8 lcb_uint8_t;
|
|
38
|
+
typedef unsigned __int16 lcb_vbucket_t;
|
|
39
|
+
typedef unsigned __int16 lcb_uint16_t;
|
|
40
|
+
typedef unsigned __int32 lcb_uint32_t;
|
|
41
|
+
typedef unsigned __int64 lcb_cas_t;
|
|
42
|
+
typedef unsigned __int64 lcb_uint64_t;
|
|
43
|
+
|
|
44
|
+
/** FIXME: This should be a native type, but it's already defined here.. */
|
|
45
|
+
typedef unsigned __int32 lcb_time_t;
|
|
46
|
+
#else
|
|
47
|
+
#include <sys/types.h>
|
|
48
|
+
#include <stdint.h>
|
|
49
|
+
#include <time.h>
|
|
50
|
+
|
|
51
|
+
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
|
|
52
|
+
#include <stddef.h>
|
|
53
|
+
#endif
|
|
54
|
+
|
|
55
|
+
typedef int64_t lcb_int64_t;
|
|
56
|
+
typedef int32_t lcb_int32_t;
|
|
57
|
+
typedef size_t lcb_size_t;
|
|
58
|
+
typedef ssize_t lcb_ssize_t;
|
|
59
|
+
typedef uint16_t lcb_vbucket_t;
|
|
60
|
+
typedef uint8_t lcb_uint8_t;
|
|
61
|
+
typedef uint16_t lcb_uint16_t;
|
|
62
|
+
typedef uint32_t lcb_uint32_t;
|
|
63
|
+
typedef uint64_t lcb_cas_t;
|
|
64
|
+
typedef uint64_t lcb_uint64_t;
|
|
65
|
+
typedef time_t lcb_time_t;
|
|
66
|
+
#endif
|
|
67
|
+
|
|
68
|
+
typedef lcb_int64_t lcb_S64; /**< @brief Signed 64 bit type */
|
|
69
|
+
typedef lcb_uint64_t lcb_U64; /**< @brief Unsigned 64 bit type */
|
|
70
|
+
typedef lcb_uint32_t lcb_U32; /**< @brief Unsigned 32 bit type */
|
|
71
|
+
typedef lcb_int32_t lcb_S32; /**< @brief Signed 32 bit type */
|
|
72
|
+
typedef lcb_uint16_t lcb_U16; /**< @brief Unsigned 16 bit type */
|
|
73
|
+
typedef lcb_uint8_t lcb_U8; /**< @brief unsigned 8 bit type */
|
|
74
|
+
typedef lcb_size_t lcb_SIZE; /**< @brief Unsigned size type */
|
|
75
|
+
typedef lcb_ssize_t lcb_SSIZE; /**<@brief Signed size type */
|
|
76
|
+
typedef lcb_time_t lcb_SECS; /**< @brief Unsigned 'seconds time' type */
|
|
77
|
+
typedef lcb_cas_t lcb_CAS;
|
|
78
|
+
|
|
79
|
+
#ifdef __GNUC__
|
|
80
|
+
#define LCB_DEPRECATED(X) X __attribute__((deprecated))
|
|
81
|
+
#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)
|
|
82
|
+
#define LCB_DEPRECATED2(X, reason) X __attribute__((deprecated(reason)))
|
|
83
|
+
#else
|
|
84
|
+
#define LCB_DEPRECATED2(X, reason) LCB_DEPRECATED(X)
|
|
85
|
+
#endif
|
|
86
|
+
#elif defined(_MSC_VER)
|
|
87
|
+
#define LCB_DEPRECATED(X) __declspec(deprecated) X
|
|
88
|
+
#define LCB_DEPRECATED2(X, reason) __declspec(deprecated(reason)) X
|
|
89
|
+
#else
|
|
90
|
+
#define LCB_DEPRECATED(X) X
|
|
91
|
+
#define LCB_DEPRECATED2(X, reason)
|
|
92
|
+
#endif
|
|
93
|
+
|
|
94
|
+
#ifdef __cplusplus
|
|
95
|
+
}
|
|
96
|
+
#endif
|
|
97
|
+
|
|
98
|
+
#endif /* LCB_SYSDEFS_H */
|