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,125 @@
|
|
|
1
|
+
/* -*- Mode: C; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2014 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
|
+
#include "settings.h"
|
|
19
|
+
#include <lcbio/ssl.h>
|
|
20
|
+
#include <rdb/rope.h>
|
|
21
|
+
|
|
22
|
+
LCB_INTERNAL_API
|
|
23
|
+
void lcb_default_settings(lcb_settings *settings)
|
|
24
|
+
{
|
|
25
|
+
settings->ipv6 = LCB_IPV6_DISABLED;
|
|
26
|
+
settings->operation_timeout = LCB_DEFAULT_TIMEOUT;
|
|
27
|
+
settings->config_timeout = LCB_DEFAULT_CONFIGURATION_TIMEOUT;
|
|
28
|
+
settings->config_node_timeout = LCB_DEFAULT_NODECONFIG_TIMEOUT;
|
|
29
|
+
settings->views_timeout = LCB_DEFAULT_VIEW_TIMEOUT;
|
|
30
|
+
settings->n1ql_timeout = LCB_DEFAULT_N1QL_TIMEOUT;
|
|
31
|
+
settings->durability_timeout = LCB_DEFAULT_DURABILITY_TIMEOUT;
|
|
32
|
+
settings->durability_interval = LCB_DEFAULT_DURABILITY_INTERVAL;
|
|
33
|
+
settings->http_timeout = LCB_DEFAULT_HTTP_TIMEOUT;
|
|
34
|
+
settings->weird_things_threshold = LCB_DEFAULT_CONFIG_ERRORS_THRESHOLD;
|
|
35
|
+
settings->weird_things_delay = LCB_DEFAULT_CONFIG_ERRORS_DELAY;
|
|
36
|
+
settings->max_redir = LCB_DEFAULT_CONFIG_MAXIMUM_REDIRECTS;
|
|
37
|
+
settings->grace_next_cycle = LCB_DEFAULT_CLCONFIG_GRACE_CYCLE;
|
|
38
|
+
settings->grace_next_provider = LCB_DEFAULT_CLCONFIG_GRACE_NEXT;
|
|
39
|
+
settings->bc_http_stream_time = LCB_DEFAULT_BC_HTTP_DISCONNTMO;
|
|
40
|
+
settings->retry_interval = LCB_DEFAULT_RETRY_INTERVAL;
|
|
41
|
+
settings->retry_backoff = LCB_DEFAULT_RETRY_BACKOFF;
|
|
42
|
+
settings->sslopts = 0;
|
|
43
|
+
settings->retry[LCB_RETRY_ON_SOCKERR] = LCB_DEFAULT_NETRETRY;
|
|
44
|
+
settings->retry[LCB_RETRY_ON_TOPOCHANGE] = LCB_DEFAULT_TOPORETRY;
|
|
45
|
+
settings->retry[LCB_RETRY_ON_VBMAPERR] = LCB_DEFAULT_NMVRETRY;
|
|
46
|
+
settings->retry[LCB_RETRY_ON_MISSINGNODE] = 0;
|
|
47
|
+
settings->bc_http_urltype = LCB_DEFAULT_HTCONFIG_URLTYPE;
|
|
48
|
+
settings->compressopts = LCB_DEFAULT_COMPRESSOPTS;
|
|
49
|
+
settings->compress_min_size = LCB_DEFAULT_COMPRESS_MIN_SIZE;
|
|
50
|
+
settings->compress_min_ratio = LCB_DEFAULT_COMPRESS_MIN_RATIO;
|
|
51
|
+
settings->allocator_factory = rdb_bigalloc_new;
|
|
52
|
+
settings->syncmode = LCB_ASYNCHRONOUS;
|
|
53
|
+
settings->detailed_neterr = 0;
|
|
54
|
+
settings->refresh_on_hterr = 1;
|
|
55
|
+
settings->sched_implicit_flush = 1;
|
|
56
|
+
settings->fetch_mutation_tokens = 0;
|
|
57
|
+
settings->dur_mutation_tokens = 1;
|
|
58
|
+
settings->nmv_retry_imm = LCB_DEFAULT_NVM_RETRY_IMM;
|
|
59
|
+
settings->tcp_nodelay = LCB_DEFAULT_TCP_NODELAY;
|
|
60
|
+
settings->retry_nmv_interval = LCB_DEFAULT_RETRY_NMV_INTERVAL;
|
|
61
|
+
settings->vb_noguess = LCB_DEFAULT_VB_NOGUESS;
|
|
62
|
+
settings->vb_noremap = LCB_DEFAULT_VB_NOREMAP;
|
|
63
|
+
settings->select_bucket = LCB_DEFAULT_SELECT_BUCKET;
|
|
64
|
+
settings->tcp_keepalive = LCB_DEFAULT_TCP_KEEPALIVE;
|
|
65
|
+
settings->send_hello = 1;
|
|
66
|
+
settings->config_poll_interval = LCB_DEFAULT_CONFIG_POLL_INTERVAL;
|
|
67
|
+
settings->use_errmap = 1;
|
|
68
|
+
settings->use_collections = 0;
|
|
69
|
+
settings->log_redaction = 0;
|
|
70
|
+
settings->use_tracing = 1;
|
|
71
|
+
settings->network = NULL;
|
|
72
|
+
#ifdef LCB_TRACING
|
|
73
|
+
settings->tracer_orphaned_queue_flush_interval = LCBTRACE_DEFAULT_ORPHANED_QUEUE_FLUSH_INTERVAL;
|
|
74
|
+
settings->tracer_orphaned_queue_size = LCBTRACE_DEFAULT_ORPHANED_QUEUE_SIZE;
|
|
75
|
+
settings->tracer_threshold_queue_flush_interval = LCBTRACE_DEFAULT_THRESHOLD_QUEUE_FLUSH_INTERVAL;
|
|
76
|
+
settings->tracer_threshold_queue_size = LCBTRACE_DEFAULT_THRESHOLD_QUEUE_SIZE;
|
|
77
|
+
settings->tracer_threshold[LCBTRACE_THRESHOLD_KV] = LCBTRACE_DEFAULT_THRESHOLD_KV;
|
|
78
|
+
settings->tracer_threshold[LCBTRACE_THRESHOLD_N1QL] = LCBTRACE_DEFAULT_THRESHOLD_N1QL;
|
|
79
|
+
settings->tracer_threshold[LCBTRACE_THRESHOLD_VIEW] = LCBTRACE_DEFAULT_THRESHOLD_VIEW;
|
|
80
|
+
settings->tracer_threshold[LCBTRACE_THRESHOLD_FTS] = LCBTRACE_DEFAULT_THRESHOLD_FTS;
|
|
81
|
+
settings->tracer_threshold[LCBTRACE_THRESHOLD_ANALYTICS] = LCBTRACE_DEFAULT_THRESHOLD_ANALYTICS;
|
|
82
|
+
#endif
|
|
83
|
+
settings->wait_for_config = 0;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
LCB_INTERNAL_API
|
|
87
|
+
lcb_settings *
|
|
88
|
+
lcb_settings_new(void)
|
|
89
|
+
{
|
|
90
|
+
lcb_settings *settings = calloc(1, sizeof(*settings));
|
|
91
|
+
lcb_default_settings(settings);
|
|
92
|
+
settings->refcount = 1;
|
|
93
|
+
settings->auth = lcbauth_new();
|
|
94
|
+
settings->errmap = lcb_errmap_new();
|
|
95
|
+
return settings;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
LCB_INTERNAL_API
|
|
99
|
+
void
|
|
100
|
+
lcb_settings_unref(lcb_settings *settings)
|
|
101
|
+
{
|
|
102
|
+
if (--settings->refcount) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
free(settings->bucket);
|
|
106
|
+
free(settings->sasl_mech_force);
|
|
107
|
+
free(settings->certpath);
|
|
108
|
+
free(settings->keypath);
|
|
109
|
+
free(settings->client_string);
|
|
110
|
+
free(settings->network);
|
|
111
|
+
|
|
112
|
+
lcbauth_unref(settings->auth);
|
|
113
|
+
lcb_errmap_free(settings->errmap);
|
|
114
|
+
|
|
115
|
+
if (settings->ssl_ctx) {
|
|
116
|
+
lcbio_ssl_free(settings->ssl_ctx);
|
|
117
|
+
}
|
|
118
|
+
if (settings->metrics) {
|
|
119
|
+
lcb_metrics_destroy(settings->metrics);
|
|
120
|
+
}
|
|
121
|
+
if (settings->dtorcb) {
|
|
122
|
+
settings->dtorcb(settings->dtorarg);
|
|
123
|
+
}
|
|
124
|
+
free(settings);
|
|
125
|
+
}
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
/* -*- Mode: C; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2014 Couchbase, Inc.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
#ifndef LCB_SETTINGS_H
|
|
19
|
+
#define LCB_SETTINGS_H
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Handy macros for converting between different time resolutions
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
/** Convert seconds to millis */
|
|
26
|
+
#define LCB_S2MS(s) (((lcb_uint32_t)s) * 1000)
|
|
27
|
+
|
|
28
|
+
/** Convert seconds to microseconds */
|
|
29
|
+
#define LCB_S2US(s) (((lcb_uint32_t)s) * 1000000)
|
|
30
|
+
|
|
31
|
+
/** Convert seconds to nanoseconds */
|
|
32
|
+
#define LCB_S2NS(s) (((hrtime_t)s) * 1000000000)
|
|
33
|
+
|
|
34
|
+
/** Convert nanoseconds to microseconds */
|
|
35
|
+
#define LCB_NS2US(s) ((s) / 1000)
|
|
36
|
+
|
|
37
|
+
#define LCB_MS2US(s) ((s) * 1000)
|
|
38
|
+
|
|
39
|
+
/** Convert microseconds to nanoseconds */
|
|
40
|
+
#define LCB_US2NS(s) (((hrtime_t)s) * 1000)
|
|
41
|
+
/** Convert milliseconds to nanoseconds */
|
|
42
|
+
#define LCB_MS2NS(s) (((hrtime_t)s) * 1000000)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
#define LCB_DEFAULT_TIMEOUT LCB_MS2US(2500)
|
|
46
|
+
|
|
47
|
+
/** 5 seconds for total bootstrap */
|
|
48
|
+
#define LCB_DEFAULT_CONFIGURATION_TIMEOUT LCB_MS2US(5000)
|
|
49
|
+
|
|
50
|
+
/** 2 seconds per node */
|
|
51
|
+
#define LCB_DEFAULT_NODECONFIG_TIMEOUT LCB_MS2US(2000)
|
|
52
|
+
|
|
53
|
+
#define LCB_DEFAULT_VIEW_TIMEOUT LCB_MS2US(75000)
|
|
54
|
+
#define LCB_DEFAULT_N1QL_TIMEOUT LCB_MS2US(75000)
|
|
55
|
+
#define LCB_DEFAULT_DURABILITY_TIMEOUT LCB_MS2US(5000)
|
|
56
|
+
#define LCB_DEFAULT_DURABILITY_INTERVAL LCB_MS2US(100)
|
|
57
|
+
#define LCB_DEFAULT_HTTP_TIMEOUT LCB_MS2US(75000)
|
|
58
|
+
#define LCB_DEFAULT_CONFIG_MAXIMUM_REDIRECTS 3
|
|
59
|
+
#define LCB_DEFAULT_CONFIG_ERRORS_THRESHOLD 100
|
|
60
|
+
|
|
61
|
+
/* 10 milliseconds */
|
|
62
|
+
#define LCB_DEFAULT_CONFIG_ERRORS_DELAY LCB_MS2US(10)
|
|
63
|
+
|
|
64
|
+
/* 1 second */
|
|
65
|
+
#define LCB_DEFAULT_CLCONFIG_GRACE_CYCLE LCB_MS2US(1000)
|
|
66
|
+
|
|
67
|
+
/* 100 ms */
|
|
68
|
+
#define LCB_DEFAULT_CLCONFIG_GRACE_NEXT LCB_MS2US(100)
|
|
69
|
+
|
|
70
|
+
/* Infinite (i.e. compat mode) */
|
|
71
|
+
#define LCB_DEFAULT_BC_HTTP_DISCONNTMO -1
|
|
72
|
+
|
|
73
|
+
/* 10ms */
|
|
74
|
+
#define LCB_DEFAULT_RETRY_INTERVAL LCB_MS2US(10)
|
|
75
|
+
|
|
76
|
+
/* 1.5x */
|
|
77
|
+
#define LCB_DEFAULT_RETRY_BACKOFF 1.5
|
|
78
|
+
|
|
79
|
+
#define LCB_DEFAULT_TOPORETRY LCB_RETRY_CMDS_ALL
|
|
80
|
+
#define LCB_DEFAULT_NETRETRY LCB_RETRY_CMDS_ALL
|
|
81
|
+
#define LCB_DEFAULT_NMVRETRY LCB_RETRY_CMDS_ALL
|
|
82
|
+
#define LCB_DEFAULT_HTCONFIG_URLTYPE LCB_HTCONFIG_URLTYPE_TRYALL
|
|
83
|
+
#define LCB_DEFAULT_COMPRESSOPTS LCB_COMPRESS_INOUT
|
|
84
|
+
|
|
85
|
+
/* in bytes */
|
|
86
|
+
#define LCB_DEFAULT_COMPRESS_MIN_SIZE 32
|
|
87
|
+
/* compressed_bytes / original_bytes */
|
|
88
|
+
#define LCB_DEFAULT_COMPRESS_MIN_RATIO 0.83
|
|
89
|
+
|
|
90
|
+
#define LCB_DEFAULT_NVM_RETRY_IMM 1
|
|
91
|
+
#define LCB_DEFAULT_RETRY_NMV_INTERVAL LCB_MS2US(100)
|
|
92
|
+
#define LCB_DEFAULT_VB_NOGUESS 1
|
|
93
|
+
#define LCB_DEFAULT_VB_NOREMAP 0
|
|
94
|
+
#define LCB_DEFAULT_TCP_NODELAY 1
|
|
95
|
+
#define LCB_DEFAULT_SELECT_BUCKET 1
|
|
96
|
+
#define LCB_DEFAULT_TCP_KEEPALIVE 1
|
|
97
|
+
/* 2.5 s */
|
|
98
|
+
#define LCB_DEFAULT_CONFIG_POLL_INTERVAL LCB_MS2US(2500)
|
|
99
|
+
/* 50 ms */
|
|
100
|
+
#define LCB_CONFIG_POLL_INTERVAL_FLOOR LCB_MS2US(50)
|
|
101
|
+
|
|
102
|
+
#define LCBTRACE_DEFAULT_ORPHANED_QUEUE_FLUSH_INTERVAL LCB_MS2US(10000)
|
|
103
|
+
#define LCBTRACE_DEFAULT_ORPHANED_QUEUE_SIZE 128
|
|
104
|
+
#define LCBTRACE_DEFAULT_THRESHOLD_QUEUE_FLUSH_INTERVAL LCB_MS2US(10000)
|
|
105
|
+
#define LCBTRACE_DEFAULT_THRESHOLD_QUEUE_SIZE 128
|
|
106
|
+
#define LCBTRACE_DEFAULT_THRESHOLD_KV LCB_MS2US(500)
|
|
107
|
+
#define LCBTRACE_DEFAULT_THRESHOLD_N1QL LCB_MS2US(1000)
|
|
108
|
+
#define LCBTRACE_DEFAULT_THRESHOLD_VIEW LCB_MS2US(1000)
|
|
109
|
+
#define LCBTRACE_DEFAULT_THRESHOLD_FTS LCB_MS2US(1000)
|
|
110
|
+
#define LCBTRACE_DEFAULT_THRESHOLD_ANALYTICS LCB_MS2US(1000)
|
|
111
|
+
|
|
112
|
+
#include "config.h"
|
|
113
|
+
#include <libcouchbase/couchbase.h>
|
|
114
|
+
#include <libcouchbase/metrics.h>
|
|
115
|
+
#include "errmap.h"
|
|
116
|
+
|
|
117
|
+
#ifdef LCB_TRACING
|
|
118
|
+
#include <libcouchbase/tracing.h>
|
|
119
|
+
#endif
|
|
120
|
+
|
|
121
|
+
#ifdef __cplusplus
|
|
122
|
+
extern "C" {
|
|
123
|
+
#endif
|
|
124
|
+
|
|
125
|
+
struct lcb_logprocs_st;
|
|
126
|
+
struct lcbio_SSLCTX;
|
|
127
|
+
struct rdb_ALLOCATOR;
|
|
128
|
+
struct lcb_METRICS_st;
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Stateless setting structure.
|
|
132
|
+
* Specifically this contains the 'environment' of the instance for things
|
|
133
|
+
* which are intended to be passed around to other objects.
|
|
134
|
+
*/
|
|
135
|
+
typedef struct lcb_settings_st {
|
|
136
|
+
/* TODO: [SDK3] change to uint64_t as per RFC. logging API exposes it as unsigned int currently */
|
|
137
|
+
lcb_U32 iid;
|
|
138
|
+
lcb_U8 compressopts;
|
|
139
|
+
lcb_U8 syncmode;
|
|
140
|
+
lcb_U32 read_chunk_size;
|
|
141
|
+
lcb_U32 operation_timeout;
|
|
142
|
+
lcb_U32 views_timeout;
|
|
143
|
+
lcb_U32 http_timeout;
|
|
144
|
+
lcb_U32 n1ql_timeout;
|
|
145
|
+
lcb_U32 durability_timeout;
|
|
146
|
+
lcb_U32 durability_interval;
|
|
147
|
+
lcb_U32 config_timeout;
|
|
148
|
+
lcb_U32 config_node_timeout;
|
|
149
|
+
lcb_U32 retry_interval;
|
|
150
|
+
lcb_U32 weird_things_threshold;
|
|
151
|
+
lcb_U32 weird_things_delay;
|
|
152
|
+
|
|
153
|
+
/** Grace period to wait between querying providers */
|
|
154
|
+
lcb_U32 grace_next_provider;
|
|
155
|
+
|
|
156
|
+
/** Grace period to wait between retrying from the beginning */
|
|
157
|
+
lcb_U32 grace_next_cycle;
|
|
158
|
+
|
|
159
|
+
/**For bc_http, the amount of type to keep the stream open, for future
|
|
160
|
+
* updates. */
|
|
161
|
+
lcb_U32 bc_http_stream_time;
|
|
162
|
+
|
|
163
|
+
/** Time to wait in between background config polls. 0 disables this */
|
|
164
|
+
lcb_U32 config_poll_interval;
|
|
165
|
+
|
|
166
|
+
unsigned bc_http_urltype : 4;
|
|
167
|
+
|
|
168
|
+
/** Don't guess next vbucket server. Mainly for testing */
|
|
169
|
+
unsigned vb_noguess : 1;
|
|
170
|
+
/** Whether lcb_destroy is synchronous. This mode will run the I/O event
|
|
171
|
+
* loop as much as possible until no outstanding events remain.*/
|
|
172
|
+
unsigned syncdtor : 1;
|
|
173
|
+
unsigned detailed_neterr : 1;
|
|
174
|
+
unsigned randomize_bootstrap_nodes : 1;
|
|
175
|
+
unsigned conntype : 1;
|
|
176
|
+
unsigned refresh_on_hterr : 1;
|
|
177
|
+
unsigned sched_implicit_flush : 1;
|
|
178
|
+
unsigned nmv_retry_imm : 1;
|
|
179
|
+
unsigned keep_guess_vbs : 1;
|
|
180
|
+
unsigned fetch_mutation_tokens : 1;
|
|
181
|
+
unsigned dur_mutation_tokens : 1;
|
|
182
|
+
unsigned sslopts : 3;
|
|
183
|
+
unsigned ipv6 : 2;
|
|
184
|
+
unsigned tcp_nodelay : 1;
|
|
185
|
+
unsigned readj_ts_wait : 1;
|
|
186
|
+
unsigned use_errmap : 1;
|
|
187
|
+
unsigned select_bucket : 1;
|
|
188
|
+
unsigned tcp_keepalive : 1;
|
|
189
|
+
unsigned send_hello : 1;
|
|
190
|
+
unsigned use_collections : 1;
|
|
191
|
+
unsigned log_redaction : 1;
|
|
192
|
+
unsigned use_tracing : 1;
|
|
193
|
+
/** Do not use remap vbuckets (do not use fast forward map, or any other heuristics) */
|
|
194
|
+
unsigned vb_noremap : 1;
|
|
195
|
+
/** Do not wait for GET_CLUSTER_CONFIG request to finish in lcb_wait(),
|
|
196
|
+
* when it is the only request in retry queue */
|
|
197
|
+
unsigned wait_for_config : 1;
|
|
198
|
+
|
|
199
|
+
short max_redir;
|
|
200
|
+
unsigned refcount;
|
|
201
|
+
|
|
202
|
+
uint8_t retry[LCB_RETRY_ON_MAX];
|
|
203
|
+
float retry_backoff;
|
|
204
|
+
|
|
205
|
+
char *bucket;
|
|
206
|
+
char *sasl_mech_force;
|
|
207
|
+
char *truststorepath;
|
|
208
|
+
char *certpath;
|
|
209
|
+
char *keypath;
|
|
210
|
+
lcb_AUTHENTICATOR *auth;
|
|
211
|
+
struct rdb_ALLOCATOR* (*allocator_factory)(void);
|
|
212
|
+
struct lcbio_SSLCTX *ssl_ctx;
|
|
213
|
+
struct lcb_logprocs_st *logger;
|
|
214
|
+
void (*dtorcb)(const void *);
|
|
215
|
+
void *dtorarg;
|
|
216
|
+
char *client_string;
|
|
217
|
+
lcb_pERRMAP errmap;
|
|
218
|
+
lcb_U32 retry_nmv_interval;
|
|
219
|
+
struct lcb_METRICS_st *metrics;
|
|
220
|
+
#ifdef LCB_TRACING
|
|
221
|
+
lcbtrace_TRACER *tracer;
|
|
222
|
+
lcb_U32 tracer_orphaned_queue_flush_interval;
|
|
223
|
+
lcb_U32 tracer_orphaned_queue_size;
|
|
224
|
+
lcb_U32 tracer_threshold_queue_flush_interval;
|
|
225
|
+
lcb_U32 tracer_threshold_queue_size;
|
|
226
|
+
lcb_U32 tracer_threshold[LCBTRACE_THRESHOLD__MAX];
|
|
227
|
+
#endif
|
|
228
|
+
lcb_U32 compress_min_size;
|
|
229
|
+
float compress_min_ratio;
|
|
230
|
+
char *network; /** network resolution, AKA "Multi Network Configurations" */
|
|
231
|
+
} lcb_settings;
|
|
232
|
+
|
|
233
|
+
LCB_INTERNAL_API
|
|
234
|
+
void lcb_default_settings(lcb_settings *settings);
|
|
235
|
+
|
|
236
|
+
LCB_INTERNAL_API
|
|
237
|
+
lcb_settings *
|
|
238
|
+
lcb_settings_new(void);
|
|
239
|
+
|
|
240
|
+
LCB_INTERNAL_API
|
|
241
|
+
void
|
|
242
|
+
lcb_settings_unref(lcb_settings *);
|
|
243
|
+
|
|
244
|
+
#define lcb_settings_ref(settings) ((void)(settings)->refcount++)
|
|
245
|
+
#define lcb_settings_ref2(settings) ((settings)->refcount++, settings)
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* Metric functionality. Defined in metrics.h, but retains a global-like
|
|
249
|
+
* setting similar to lcb_settings
|
|
250
|
+
*/
|
|
251
|
+
void
|
|
252
|
+
lcb_metrics_dumpio(const lcb_IOMETRICS *metrics, FILE *fp);
|
|
253
|
+
|
|
254
|
+
void
|
|
255
|
+
lcb_metrics_dumpserver(const lcb_SERVERMETRICS *metrics, FILE *fp);
|
|
256
|
+
|
|
257
|
+
lcb_METRICS *
|
|
258
|
+
lcb_metrics_new(void);
|
|
259
|
+
|
|
260
|
+
void
|
|
261
|
+
lcb_metrics_destroy(lcb_METRICS *metrics);
|
|
262
|
+
|
|
263
|
+
lcb_SERVERMETRICS *
|
|
264
|
+
lcb_metrics_getserver(lcb_METRICS *metrics,
|
|
265
|
+
const char *host, const char *port, int create);
|
|
266
|
+
|
|
267
|
+
void
|
|
268
|
+
lcb_metrics_reset_pipeline_gauges(lcb_SERVERMETRICS *metrics);
|
|
269
|
+
|
|
270
|
+
#ifdef __cplusplus
|
|
271
|
+
}
|
|
272
|
+
#endif
|
|
273
|
+
#endif
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
/* -*- Mode: C; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2014 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
|
+
#include "sllist.h"
|
|
19
|
+
#include <stdlib.h>
|
|
20
|
+
#include <assert.h>
|
|
21
|
+
#include <stdio.h>
|
|
22
|
+
#ifndef INLINE
|
|
23
|
+
#ifdef _MSC_VER
|
|
24
|
+
#define INLINE __inline
|
|
25
|
+
#elif __GNUC__
|
|
26
|
+
#define INLINE __inline__
|
|
27
|
+
#else
|
|
28
|
+
#define INLINE inline
|
|
29
|
+
#endif /* MSC_VER */
|
|
30
|
+
#endif /* !INLINE */
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
static INLINE int
|
|
34
|
+
sllist_contains(sllist_root *list, sllist_node *item)
|
|
35
|
+
{
|
|
36
|
+
sllist_node *ll;
|
|
37
|
+
SLLIST_FOREACH(list, ll) {
|
|
38
|
+
if (item == ll) {
|
|
39
|
+
return 1;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return 0;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
static INLINE unsigned
|
|
46
|
+
sllist_get_size(sllist_root *list)
|
|
47
|
+
{
|
|
48
|
+
unsigned ret = 0;
|
|
49
|
+
sllist_node *ll;
|
|
50
|
+
SLLIST_FOREACH(list, ll) {
|
|
51
|
+
ret++;
|
|
52
|
+
}
|
|
53
|
+
return ret;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/* #define SLLIST_DEBUG */
|
|
57
|
+
|
|
58
|
+
#ifdef SLLIST_DEBUG
|
|
59
|
+
#define slist_sanity_insert(l, n) assert(!slist_contains(l, n))
|
|
60
|
+
#else
|
|
61
|
+
#define slist_sanity_insert(l, n)
|
|
62
|
+
#endif
|
|
63
|
+
|
|
64
|
+
static INLINE void
|
|
65
|
+
slist_iter_init_at(sllist_node *node, sllist_iterator *iter)
|
|
66
|
+
{
|
|
67
|
+
iter->cur = node->next;
|
|
68
|
+
iter->prev = node;
|
|
69
|
+
iter->removed = 0;
|
|
70
|
+
|
|
71
|
+
if (iter->cur) {
|
|
72
|
+
iter->next = iter->cur->next;
|
|
73
|
+
} else {
|
|
74
|
+
iter->next = NULL;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
static INLINE void
|
|
79
|
+
slist_iter_init(sllist_root *list, sllist_iterator *iter)
|
|
80
|
+
{
|
|
81
|
+
slist_iter_init_at(&list->first_prev, iter);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
static INLINE void
|
|
85
|
+
slist_iter_incr(sllist_root *list, sllist_iterator *iter)
|
|
86
|
+
{
|
|
87
|
+
if (!iter->removed) {
|
|
88
|
+
iter->prev = iter->prev->next;
|
|
89
|
+
} else {
|
|
90
|
+
iter->removed = 0;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
if ((iter->cur = iter->next)) {
|
|
94
|
+
iter->next = iter->cur->next;
|
|
95
|
+
} else {
|
|
96
|
+
iter->next = NULL;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
assert(iter->cur != iter->prev);
|
|
100
|
+
|
|
101
|
+
(void)list;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
static INLINE void
|
|
105
|
+
sllist_iter_remove(sllist_root *list, sllist_iterator *iter)
|
|
106
|
+
{
|
|
107
|
+
iter->prev->next = iter->next;
|
|
108
|
+
|
|
109
|
+
/** GCC strict aliasing. Yay. */
|
|
110
|
+
if (iter->prev->next == NULL && iter->prev == &list->first_prev) {
|
|
111
|
+
list->last = NULL;
|
|
112
|
+
} else if (iter->cur == list->last && iter->next == NULL) {
|
|
113
|
+
/* removing the last item */
|
|
114
|
+
list->last = iter->prev;
|
|
115
|
+
}
|
|
116
|
+
iter->removed = 1;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
static INLINE void
|
|
120
|
+
sllist_remove_head(sllist_root *list)
|
|
121
|
+
{
|
|
122
|
+
if (!SLLIST_FIRST(list)) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
SLLIST_FIRST(list) = SLLIST_FIRST(list)->next;
|
|
127
|
+
|
|
128
|
+
if (!SLLIST_FIRST(list)) {
|
|
129
|
+
list->last = NULL;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
static INLINE void
|
|
134
|
+
sllist_remove(sllist_root *list, sllist_node *item)
|
|
135
|
+
{
|
|
136
|
+
sllist_iterator iter;
|
|
137
|
+
SLLIST_ITERFOR(list, &iter) {
|
|
138
|
+
if (iter.cur == item) {
|
|
139
|
+
sllist_iter_remove(list, &iter);
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
fprintf(stderr, "SLLIST: Requested to remove item %p which is not in %p\n", (void*)list, (void*)item);
|
|
144
|
+
assert(0);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
static INLINE void
|
|
148
|
+
sllist_append(sllist_root *list, sllist_node *item)
|
|
149
|
+
{
|
|
150
|
+
if (SLLIST_IS_EMPTY(list)) {
|
|
151
|
+
SLLIST_FIRST(list) = list->last = item;
|
|
152
|
+
item->next = NULL;
|
|
153
|
+
} else {
|
|
154
|
+
slist_sanity_insert(list, item);
|
|
155
|
+
list->last->next = item;
|
|
156
|
+
list->last = item;
|
|
157
|
+
}
|
|
158
|
+
item->next = NULL;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
static INLINE void
|
|
162
|
+
sllist_prepend(sllist_root *list, sllist_node *item)
|
|
163
|
+
{
|
|
164
|
+
if (SLLIST_IS_EMPTY(list)) {
|
|
165
|
+
SLLIST_FIRST(list) = list->last = item;
|
|
166
|
+
} else {
|
|
167
|
+
slist_sanity_insert(list, item);
|
|
168
|
+
item->next = SLLIST_FIRST(list);
|
|
169
|
+
SLLIST_FIRST(list) = item;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
static void
|
|
174
|
+
sllist_insert(sllist_root *list, sllist_node *prev, sllist_node *item)
|
|
175
|
+
{
|
|
176
|
+
item->next = prev->next;
|
|
177
|
+
prev->next = item;
|
|
178
|
+
if (item->next == NULL) {
|
|
179
|
+
list->last = item;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
static INLINE void
|
|
184
|
+
sllist_insert_sorted(sllist_root *list, sllist_node *item,
|
|
185
|
+
int (*compar)(sllist_node*, sllist_node*))
|
|
186
|
+
{
|
|
187
|
+
sllist_iterator iter;
|
|
188
|
+
SLLIST_ITERFOR(list, &iter) {
|
|
189
|
+
int rv = compar(item, iter.cur);
|
|
190
|
+
/** if the item we have is before the current, prepend it here */
|
|
191
|
+
if (rv <= 0) {
|
|
192
|
+
sllist_insert(list, iter.prev, item);
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
sllist_append(list, item);
|
|
197
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/* -*- Mode: C; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2014 Couchbase, Inc.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
#ifndef LCB_SLIST_H
|
|
19
|
+
#define LCB_SLIST_H
|
|
20
|
+
|
|
21
|
+
struct slist_node_st;
|
|
22
|
+
typedef struct slist_node_st {
|
|
23
|
+
struct slist_node_st *next;
|
|
24
|
+
} sllist_node;
|
|
25
|
+
|
|
26
|
+
typedef struct {
|
|
27
|
+
sllist_node first_prev;
|
|
28
|
+
sllist_node *last;
|
|
29
|
+
} sllist_root;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Indicates whether the list is empty or not
|
|
33
|
+
*/
|
|
34
|
+
#define SLLIST_FIRST(list) (list)->first_prev.next
|
|
35
|
+
#define SLLIST_LAST(list) (list)->last
|
|
36
|
+
|
|
37
|
+
#define SLLIST_IS_EMPTY(list) (SLLIST_LAST(list) == NULL)
|
|
38
|
+
#define SLLIST_IS_ONE(list) (SLLIST_FIRST(list) && SLLIST_FIRST(list) == SLLIST_LAST(list))
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Iterator for list. This can be used as the 'for' statement; as such this
|
|
42
|
+
* macro should look like such:
|
|
43
|
+
*
|
|
44
|
+
* slist_node *ii;
|
|
45
|
+
* SLIST_FOREACH(list, ii) {
|
|
46
|
+
* my_item *item = LCB_LIST_ITEM(my_item, ii, slnode);
|
|
47
|
+
* }
|
|
48
|
+
*
|
|
49
|
+
* @param list the list to iterate
|
|
50
|
+
* @param pos a local variable to use as the iterator
|
|
51
|
+
*/
|
|
52
|
+
#define SLLIST_FOREACH(list, pos) \
|
|
53
|
+
for (pos = SLLIST_FIRST(list); pos; pos = pos->next)
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
typedef struct sllist_iterator_st {
|
|
57
|
+
sllist_node *cur;
|
|
58
|
+
sllist_node *prev;
|
|
59
|
+
sllist_node *next;
|
|
60
|
+
int removed;
|
|
61
|
+
} sllist_iterator;
|
|
62
|
+
|
|
63
|
+
#define sllist_iter_end(list, iter) ((iter)->cur == NULL)
|
|
64
|
+
|
|
65
|
+
#define SLLIST_ITEM(ptr, type, member) \
|
|
66
|
+
((type *) (void *) ((char *)(ptr) - offsetof(type, member)))
|
|
67
|
+
|
|
68
|
+
#define SLLIST_ITERFOR(list, iter) \
|
|
69
|
+
for (slist_iter_init(list, iter); \
|
|
70
|
+
!sllist_iter_end(list, iter); \
|
|
71
|
+
slist_iter_incr(list, iter))
|
|
72
|
+
|
|
73
|
+
#define SLLIST_ITERBASIC(list, elem) \
|
|
74
|
+
for (elem = SLLIST_FIRST(list); elem; elem = elem->next)
|
|
75
|
+
|
|
76
|
+
#endif
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
IF(OPENSSL_FOUND AND (NOT LCB_NO_SSL))
|
|
2
|
+
INCLUDE_DIRECTORIES(${OPENSSL_INCLUDE_DIR})
|
|
3
|
+
ADD_DEFINITIONS(${OPENSSL_DEFINITIONS})
|
|
4
|
+
ADD_LIBRARY(lcbssl OBJECT ssl_e.c ssl_c.c ssl_common.c)
|
|
5
|
+
SET(lcb_ssl_libs ${OPENSSL_LIBRARIES} PARENT_SCOPE)
|
|
6
|
+
SET(lcb_ssl_objs $<TARGET_OBJECTS:lcbssl> PARENT_SCOPE)
|
|
7
|
+
LCB_UTIL(lcbssl)
|
|
8
|
+
ELSE()
|
|
9
|
+
SET(LCB_NO_SSL ON PARENT_SCOPE)
|
|
10
|
+
SET(lcb_ssl_libs "" PARENT_SCOPE)
|
|
11
|
+
ENDIF()
|