libcouchbase 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +18 -0
- data/.gitmodules +3 -0
- data/.rspec +1 -0
- data/.travis.yml +35 -0
- data/Gemfile +4 -0
- data/LICENSE +24 -0
- data/README.md +389 -0
- data/Rakefile +75 -0
- data/ext/README.md +6 -0
- data/ext/Rakefile +20 -0
- data/ext/libcouchbase/.gitignore +130 -0
- data/ext/libcouchbase/.travis.yml +19 -0
- data/ext/libcouchbase/CMakeLists.txt +429 -0
- data/ext/libcouchbase/CONTRIBUTING.md +124 -0
- data/ext/libcouchbase/LICENSE +202 -0
- data/ext/libcouchbase/README.markdown +163 -0
- data/ext/libcouchbase/RELEASE_NOTES.markdown +2691 -0
- data/ext/libcouchbase/cmake/Modules/ConfigureDtrace.cmake +27 -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 +20 -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 +52 -0
- data/ext/libcouchbase/cmake/Modules/FindCouchbaseLibuv.cmake +56 -0
- data/ext/libcouchbase/cmake/Modules/FindCouchbaseSnappy.cmake +11 -0
- data/ext/libcouchbase/cmake/Modules/GenerateConfigDotH.cmake +29 -0
- data/ext/libcouchbase/cmake/Modules/GetLibcouchbaseFlags.cmake +133 -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 +60 -0
- data/ext/libcouchbase/cmake/configure +357 -0
- data/ext/libcouchbase/cmake/defs.mk.in +8 -0
- data/ext/libcouchbase/cmake/dtrace-instr-link.pl +38 -0
- data/ext/libcouchbase/cmake/source_files.cmake +73 -0
- data/ext/libcouchbase/configure.pl +1 -0
- data/ext/libcouchbase/contrib/cJSON/cJSON.c +624 -0
- data/ext/libcouchbase/contrib/cJSON/cJSON.h +158 -0
- data/ext/libcouchbase/contrib/cbsasl/CMakeLists.txt +9 -0
- data/ext/libcouchbase/contrib/cbsasl/COPYING +202 -0
- data/ext/libcouchbase/contrib/cbsasl/include/cbsasl/cbsasl.h +217 -0
- data/ext/libcouchbase/contrib/cbsasl/src/client.c +205 -0
- data/ext/libcouchbase/contrib/cbsasl/src/common.c +46 -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/util.h +31 -0
- data/ext/libcouchbase/contrib/cliopts/CMakeLists.txt +2 -0
- data/ext/libcouchbase/contrib/cliopts/cliopts.c +747 -0
- data/ext/libcouchbase/contrib/cliopts/cliopts.h +493 -0
- data/ext/libcouchbase/contrib/genhash/genhash.c +372 -0
- data/ext/libcouchbase/contrib/genhash/genhash.h +235 -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 +4892 -0
- data/ext/libcouchbase/contrib/lcb-jsoncpp/lcb-jsoncpp.h +1961 -0
- data/ext/libcouchbase/contrib/snappy/CMakeLists.txt +8 -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 +71 -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 +98 -0
- data/ext/libcouchbase/contrib/snappy/snappy.cc +1307 -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/example/CMakeLists.txt +37 -0
- data/ext/libcouchbase/example/README.markdown +47 -0
- data/ext/libcouchbase/example/db/db.c +167 -0
- data/ext/libcouchbase/example/db/vb.c +227 -0
- data/ext/libcouchbase/example/instancepool/main.cc +102 -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 +148 -0
- data/ext/libcouchbase/example/mcc/mcc.cc +246 -0
- data/ext/libcouchbase/example/minimal/minimal.c +130 -0
- data/ext/libcouchbase/example/observe/observe.c +146 -0
- data/ext/libcouchbase/example/subdoc/subdoc-multi.cc +132 -0
- data/ext/libcouchbase/example/subdoc/subdoc-simple.cc +191 -0
- data/ext/libcouchbase/example/tick/tick.c +119 -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/cbft.h +109 -0
- data/ext/libcouchbase/include/libcouchbase/cntl-private.h +356 -0
- data/ext/libcouchbase/include/libcouchbase/cntl.h +937 -0
- data/ext/libcouchbase/include/libcouchbase/configuration.h.in +23 -0
- data/ext/libcouchbase/include/libcouchbase/couchbase.h +3677 -0
- data/ext/libcouchbase/include/libcouchbase/deprecated.h +300 -0
- data/ext/libcouchbase/include/libcouchbase/error.h +595 -0
- data/ext/libcouchbase/include/libcouchbase/http.h +1 -0
- data/ext/libcouchbase/include/libcouchbase/iops.h +1050 -0
- data/ext/libcouchbase/include/libcouchbase/ixmgmt.h +263 -0
- data/ext/libcouchbase/include/libcouchbase/kvbuf.h +132 -0
- data/ext/libcouchbase/include/libcouchbase/n1ql.h +364 -0
- data/ext/libcouchbase/include/libcouchbase/pktfwd.h +270 -0
- data/ext/libcouchbase/include/libcouchbase/plugins/io/bsdio-inl.c +367 -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 +312 -0
- data/ext/libcouchbase/include/libcouchbase/sysdefs.h +98 -0
- data/ext/libcouchbase/include/libcouchbase/vbucket.h +643 -0
- data/ext/libcouchbase/include/libcouchbase/views.h +298 -0
- data/ext/libcouchbase/include/libcouchbase/visibility.h +65 -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 +1916 -0
- data/ext/libcouchbase/include/memcached/vbucket.h +42 -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 +73 -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 +108 -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 +466 -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 +29 -0
- data/ext/libcouchbase/plugins/io/libev/libev_io_opts.h +65 -0
- data/ext/libcouchbase/plugins/io/libev/plugin-libev.c +289 -0
- data/ext/libcouchbase/plugins/io/libevent/CMakeLists.txt +29 -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 +42 -0
- data/ext/libcouchbase/plugins/io/libuv/libuv_compat.h +212 -0
- data/ext/libcouchbase/plugins/io/libuv/libuv_io_opts.h +118 -0
- data/ext/libcouchbase/plugins/io/libuv/plugin-internal.h +148 -0
- data/ext/libcouchbase/plugins/io/libuv/plugin-libuv.c +648 -0
- data/ext/libcouchbase/plugins/io/select/CMakeLists.txt +11 -0
- data/ext/libcouchbase/plugins/io/select/plugin-select.c +448 -0
- data/ext/libcouchbase/plugins/io/select/select_io_opts.h +39 -0
- data/ext/libcouchbase/src/README.md +103 -0
- data/ext/libcouchbase/src/aspend.h +106 -0
- data/ext/libcouchbase/src/auth.cc +74 -0
- data/ext/libcouchbase/src/auth.h +54 -0
- data/ext/libcouchbase/src/bootstrap.c +269 -0
- data/ext/libcouchbase/src/bootstrap.h +129 -0
- data/ext/libcouchbase/src/bucketconfig/bc_cccp.c +495 -0
- data/ext/libcouchbase/src/bucketconfig/bc_file.c +347 -0
- data/ext/libcouchbase/src/bucketconfig/bc_http.c +630 -0
- data/ext/libcouchbase/src/bucketconfig/bc_http.h +82 -0
- data/ext/libcouchbase/src/bucketconfig/bc_mcraw.c +150 -0
- data/ext/libcouchbase/src/bucketconfig/clconfig.h +681 -0
- data/ext/libcouchbase/src/bucketconfig/confmon.c +474 -0
- data/ext/libcouchbase/src/callbacks.c +378 -0
- data/ext/libcouchbase/src/cbft.cc +210 -0
- data/ext/libcouchbase/src/cntl.cc +847 -0
- data/ext/libcouchbase/src/config_static.h +159 -0
- data/ext/libcouchbase/src/connspec.cc +462 -0
- data/ext/libcouchbase/src/connspec.h +105 -0
- data/ext/libcouchbase/src/ctx-log-inl.h +27 -0
- data/ext/libcouchbase/src/dump.c +98 -0
- data/ext/libcouchbase/src/getconfig.c +100 -0
- data/ext/libcouchbase/src/gethrtime.c +109 -0
- data/ext/libcouchbase/src/handler.c +922 -0
- data/ext/libcouchbase/src/hashset.c +164 -0
- data/ext/libcouchbase/src/hashset.h +86 -0
- data/ext/libcouchbase/src/hashtable.c +75 -0
- data/ext/libcouchbase/src/hdr_timings.c +92 -0
- data/ext/libcouchbase/src/hostlist.cc +301 -0
- data/ext/libcouchbase/src/hostlist.h +171 -0
- data/ext/libcouchbase/src/http/http-priv.h +307 -0
- data/ext/libcouchbase/src/http/http.cc +633 -0
- data/ext/libcouchbase/src/http/http.h +34 -0
- data/ext/libcouchbase/src/http/http_io.cc +307 -0
- data/ext/libcouchbase/src/instance.cc +722 -0
- data/ext/libcouchbase/src/internal.h +244 -0
- data/ext/libcouchbase/src/iofactory.c +575 -0
- data/ext/libcouchbase/src/jsparse/parser.cc +519 -0
- data/ext/libcouchbase/src/jsparse/parser.h +173 -0
- data/ext/libcouchbase/src/lcbht/lcbht.c +282 -0
- data/ext/libcouchbase/src/lcbht/lcbht.h +199 -0
- data/ext/libcouchbase/src/lcbio/connect.c +557 -0
- data/ext/libcouchbase/src/lcbio/connect.h +364 -0
- data/ext/libcouchbase/src/lcbio/ctx.c +611 -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 +84 -0
- data/ext/libcouchbase/src/lcbio/ioutils.c +350 -0
- data/ext/libcouchbase/src/lcbio/ioutils.h +203 -0
- data/ext/libcouchbase/src/lcbio/lcbio.h +51 -0
- data/ext/libcouchbase/src/lcbio/manager.c +584 -0
- data/ext/libcouchbase/src/lcbio/manager.h +156 -0
- data/ext/libcouchbase/src/lcbio/protoctx.c +84 -0
- data/ext/libcouchbase/src/lcbio/rw-inl.h +115 -0
- data/ext/libcouchbase/src/lcbio/ssl.h +149 -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 +430 -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 +86 -0
- data/ext/libcouchbase/src/mc/compress.c +90 -0
- data/ext/libcouchbase/src/mc/compress.h +61 -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 +111 -0
- data/ext/libcouchbase/src/mc/mcreq.c +954 -0
- data/ext/libcouchbase/src/mc/mcreq.h +977 -0
- data/ext/libcouchbase/src/mcserver/mcserver.c +784 -0
- data/ext/libcouchbase/src/mcserver/mcserver.h +121 -0
- data/ext/libcouchbase/src/mcserver/negotiate.c +656 -0
- data/ext/libcouchbase/src/mcserver/negotiate.h +119 -0
- data/ext/libcouchbase/src/n1ql/ixmgmt.cc +860 -0
- data/ext/libcouchbase/src/n1ql/n1ql-internal.h +22 -0
- data/ext/libcouchbase/src/n1ql/n1ql.cc +729 -0
- data/ext/libcouchbase/src/n1ql/params.cc +215 -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.c +385 -0
- data/ext/libcouchbase/src/nodeinfo.cc +194 -0
- data/ext/libcouchbase/src/operations/cbflush.c +71 -0
- data/ext/libcouchbase/src/operations/counter.c +116 -0
- data/ext/libcouchbase/src/operations/durability-cas.c +224 -0
- data/ext/libcouchbase/src/operations/durability-seqno.c +157 -0
- data/ext/libcouchbase/src/operations/durability.c +668 -0
- data/ext/libcouchbase/src/operations/durability_internal.h +199 -0
- data/ext/libcouchbase/src/operations/get.c +409 -0
- data/ext/libcouchbase/src/operations/observe-seqno.c +96 -0
- data/ext/libcouchbase/src/operations/observe.c +340 -0
- data/ext/libcouchbase/src/operations/pktfwd.c +86 -0
- data/ext/libcouchbase/src/operations/remove.c +83 -0
- data/ext/libcouchbase/src/operations/stats.c +461 -0
- data/ext/libcouchbase/src/operations/store.c +360 -0
- data/ext/libcouchbase/src/operations/subdoc.cc +510 -0
- data/ext/libcouchbase/src/operations/touch.c +81 -0
- data/ext/libcouchbase/src/packetutils.c +60 -0
- data/ext/libcouchbase/src/packetutils.h +147 -0
- data/ext/libcouchbase/src/probes.d +211 -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.c +113 -0
- data/ext/libcouchbase/src/retryq.c +424 -0
- data/ext/libcouchbase/src/retryq.h +157 -0
- data/ext/libcouchbase/src/ringbuffer.c +442 -0
- data/ext/libcouchbase/src/ringbuffer.h +100 -0
- data/ext/libcouchbase/src/settings.c +95 -0
- data/ext/libcouchbase/src/settings.h +188 -0
- data/ext/libcouchbase/src/simplestring.c +211 -0
- data/ext/libcouchbase/src/simplestring.h +228 -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 +23 -0
- data/ext/libcouchbase/src/ssl/ssl_c.c +415 -0
- data/ext/libcouchbase/src/ssl/ssl_common.c +454 -0
- data/ext/libcouchbase/src/ssl/ssl_e.c +408 -0
- data/ext/libcouchbase/src/ssl/ssl_iot_common.h +180 -0
- data/ext/libcouchbase/src/ssobuf.h +82 -0
- data/ext/libcouchbase/src/strcodecs/base64.c +123 -0
- data/ext/libcouchbase/src/strcodecs/strcodecs.h +285 -0
- data/ext/libcouchbase/src/timings.c +208 -0
- data/ext/libcouchbase/src/trace.h +105 -0
- data/ext/libcouchbase/src/utilities.c +171 -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 +1543 -0
- data/ext/libcouchbase/src/views/docreq.c +194 -0
- data/ext/libcouchbase/src/views/docreq.h +83 -0
- data/ext/libcouchbase/src/views/viewreq.c +358 -0
- data/ext/libcouchbase/src/views/viewreq.h +36 -0
- data/ext/libcouchbase/src/wait.c +161 -0
- data/ext/libcouchbase/tests/CMakeLists.txt +140 -0
- data/ext/libcouchbase/tests/basic/t_base64.cc +81 -0
- data/ext/libcouchbase/tests/basic/t_ccbc103.cc +95 -0
- data/ext/libcouchbase/tests/basic/t_connstr.cc +404 -0
- data/ext/libcouchbase/tests/basic/t_creds.cc +32 -0
- data/ext/libcouchbase/tests/basic/t_ctlcodes.cc +92 -0
- data/ext/libcouchbase/tests/basic/t_hashset.cc +262 -0
- data/ext/libcouchbase/tests/basic/t_host.cc +198 -0
- data/ext/libcouchbase/tests/basic/t_jsparse.cc +137 -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 +18 -0
- data/ext/libcouchbase/tests/basic/t_netbuf.cc +446 -0
- data/ext/libcouchbase/tests/basic/t_packet.cc +222 -0
- data/ext/libcouchbase/tests/basic/t_ringbuffer.cc +278 -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_string.cc +112 -0
- data/ext/libcouchbase/tests/basic/t_urlencode.cc +132 -0
- data/ext/libcouchbase/tests/check-all.cc +608 -0
- data/ext/libcouchbase/tests/htparse/t_basic.cc +193 -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 +104 -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 +524 -0
- data/ext/libcouchbase/tests/iotests/mock-environment.h +385 -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 +226 -0
- data/ext/libcouchbase/tests/iotests/t_configcache.cc +117 -0
- data/ext/libcouchbase/tests/iotests/t_confmon.cc +241 -0
- data/ext/libcouchbase/tests/iotests/t_durability.cc +1059 -0
- data/ext/libcouchbase/tests/iotests/t_forward.cc +110 -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 +275 -0
- data/ext/libcouchbase/tests/iotests/t_misc.cc +713 -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 +654 -0
- data/ext/libcouchbase/tests/iotests/t_obseqno.cc +157 -0
- data/ext/libcouchbase/tests/iotests/t_regression.cc +321 -0
- data/ext/libcouchbase/tests/iotests/t_sched.cc +88 -0
- data/ext/libcouchbase/tests/iotests/t_serverops.cc +230 -0
- data/ext/libcouchbase/tests/iotests/t_smoke.cc +528 -0
- data/ext/libcouchbase/tests/iotests/t_subdoc.cc +822 -0
- data/ext/libcouchbase/tests/iotests/t_syncmode.cc +64 -0
- data/ext/libcouchbase/tests/iotests/t_views.cc +405 -0
- data/ext/libcouchbase/tests/iotests/testutil.cc +250 -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 +347 -0
- data/ext/libcouchbase/tests/socktests/socktest.h +448 -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 +179 -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/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/terse_25.json +291 -0
- data/ext/libcouchbase/tests/vbucket/confdata/terse_30.json +1 -0
- data/ext/libcouchbase/tests/vbucket/t_config.cc +341 -0
- data/ext/libcouchbase/tools/CMakeLists.txt +51 -0
- data/ext/libcouchbase/tools/cbc-handlers.h +462 -0
- data/ext/libcouchbase/tools/cbc-n1qlback.cc +439 -0
- data/ext/libcouchbase/tools/cbc-pillowfight.cc +822 -0
- data/ext/libcouchbase/tools/cbc.cc +1541 -0
- data/ext/libcouchbase/tools/common/histogram.cc +43 -0
- data/ext/libcouchbase/tools/common/histogram.h +23 -0
- data/ext/libcouchbase/tools/common/my_inttypes.h +22 -0
- data/ext/libcouchbase/tools/common/options.cc +420 -0
- data/ext/libcouchbase/tools/common/options.h +81 -0
- data/ext/libcouchbase/tools/docgen/docgen.h +469 -0
- data/ext/libcouchbase/tools/docgen/loc.h +210 -0
- data/ext/libcouchbase/tools/docgen/placeholders.h +211 -0
- data/ext/libcouchbase/tools/docgen/seqgen.h +94 -0
- data/lib/libcouchbase.rb +36 -0
- data/lib/libcouchbase/bucket.rb +819 -0
- data/lib/libcouchbase/callbacks.rb +72 -0
- data/lib/libcouchbase/connection.rb +790 -0
- data/lib/libcouchbase/design_docs.rb +86 -0
- data/lib/libcouchbase/error.rb +68 -0
- data/lib/libcouchbase/ext/libcouchbase.rb +1135 -0
- data/lib/libcouchbase/ext/libcouchbase/cmdbase.rb +23 -0
- data/lib/libcouchbase/ext/libcouchbase/cmdcounter.rb +36 -0
- data/lib/libcouchbase/ext/libcouchbase/cmdendure.rb +26 -0
- data/lib/libcouchbase/ext/libcouchbase/cmdfts.rb +24 -0
- data/lib/libcouchbase/ext/libcouchbase/cmdget.rb +30 -0
- data/lib/libcouchbase/ext/libcouchbase/cmdgetreplica.rb +49 -0
- data/lib/libcouchbase/ext/libcouchbase/cmdhttp.rb +58 -0
- data/lib/libcouchbase/ext/libcouchbase/cmdn1ql.rb +40 -0
- data/lib/libcouchbase/ext/libcouchbase/cmdobseqno.rb +33 -0
- data/lib/libcouchbase/ext/libcouchbase/cmdobserve.rb +30 -0
- data/lib/libcouchbase/ext/libcouchbase/cmdstore.rb +40 -0
- data/lib/libcouchbase/ext/libcouchbase/cmdstoredur.rb +45 -0
- data/lib/libcouchbase/ext/libcouchbase/cmdsubdoc.rb +49 -0
- data/lib/libcouchbase/ext/libcouchbase/cmdverbosity.rb +29 -0
- data/lib/libcouchbase/ext/libcouchbase/cmdviewquery.rb +61 -0
- data/lib/libcouchbase/ext/libcouchbase/contigbuf.rb +14 -0
- data/lib/libcouchbase/ext/libcouchbase/create_st.rb +15 -0
- data/lib/libcouchbase/ext/libcouchbase/create_st0.rb +23 -0
- data/lib/libcouchbase/ext/libcouchbase/create_st1.rb +26 -0
- data/lib/libcouchbase/ext/libcouchbase/create_st2.rb +32 -0
- data/lib/libcouchbase/ext/libcouchbase/create_st3.rb +26 -0
- data/lib/libcouchbase/ext/libcouchbase/crst_u.rb +20 -0
- data/lib/libcouchbase/ext/libcouchbase/durability_opts_st_v.rb +11 -0
- data/lib/libcouchbase/ext/libcouchbase/durability_opts_t.rb +14 -0
- data/lib/libcouchbase/ext/libcouchbase/durabilityopt_sv0.rb +63 -0
- data/lib/libcouchbase/ext/libcouchbase/enums.rb +991 -0
- data/lib/libcouchbase/ext/libcouchbase/fragbuf.rb +18 -0
- data/lib/libcouchbase/ext/libcouchbase/ftshandle.rb +7 -0
- data/lib/libcouchbase/ext/libcouchbase/histogram.rb +34 -0
- data/lib/libcouchbase/ext/libcouchbase/http_request_t.rb +7 -0
- data/lib/libcouchbase/ext/libcouchbase/keybuf.rb +20 -0
- data/lib/libcouchbase/ext/libcouchbase/multicmd_ctx.rb +30 -0
- data/lib/libcouchbase/ext/libcouchbase/mutation_token.rb +17 -0
- data/lib/libcouchbase/ext/libcouchbase/n1qlhandle.rb +7 -0
- data/lib/libcouchbase/ext/libcouchbase/n1qlparams.rb +7 -0
- data/lib/libcouchbase/ext/libcouchbase/respbase.rb +29 -0
- data/lib/libcouchbase/ext/libcouchbase/respcounter.rb +32 -0
- data/lib/libcouchbase/ext/libcouchbase/respendure.rb +49 -0
- data/lib/libcouchbase/ext/libcouchbase/respfts.rb +40 -0
- data/lib/libcouchbase/ext/libcouchbase/respget.rb +44 -0
- data/lib/libcouchbase/ext/libcouchbase/resphttp.rb +48 -0
- data/lib/libcouchbase/ext/libcouchbase/respmcversion.rb +38 -0
- data/lib/libcouchbase/ext/libcouchbase/respn1ql.rb +41 -0
- data/lib/libcouchbase/ext/libcouchbase/respobseqno.rb +52 -0
- data/lib/libcouchbase/ext/libcouchbase/respobserve.rb +41 -0
- data/lib/libcouchbase/ext/libcouchbase/respserverbase.rb +32 -0
- data/lib/libcouchbase/ext/libcouchbase/respstats.rb +38 -0
- data/lib/libcouchbase/ext/libcouchbase/respstore.rb +32 -0
- data/lib/libcouchbase/ext/libcouchbase/respstoredur.rb +38 -0
- data/lib/libcouchbase/ext/libcouchbase/respsubdoc.rb +35 -0
- data/lib/libcouchbase/ext/libcouchbase/respviewquery.rb +67 -0
- data/lib/libcouchbase/ext/libcouchbase/sdentry.rb +22 -0
- data/lib/libcouchbase/ext/libcouchbase/sdspec.rb +26 -0
- data/lib/libcouchbase/ext/libcouchbase/t.rb +7 -0
- data/lib/libcouchbase/ext/libcouchbase/valbuf.rb +22 -0
- data/lib/libcouchbase/ext/libcouchbase/valbuf_u_buf.rb +14 -0
- data/lib/libcouchbase/ext/libcouchbase/viewhandle.rb +7 -0
- data/lib/libcouchbase/ext/libcouchbase_iocp.rb +26 -0
- data/lib/libcouchbase/ext/libcouchbase_libuv.rb +18 -0
- data/lib/libcouchbase/ext/tasks.rb +87 -0
- data/lib/libcouchbase/n1ql.rb +73 -0
- data/lib/libcouchbase/query_full_text.rb +147 -0
- data/lib/libcouchbase/query_n1ql.rb +121 -0
- data/lib/libcouchbase/query_view.rb +129 -0
- data/lib/libcouchbase/results_fiber.rb +262 -0
- data/lib/libcouchbase/results_native.rb +211 -0
- data/lib/libcouchbase/version.rb +5 -0
- data/libcouchbase.gemspec +61 -0
- data/spec/bucket_spec.rb +270 -0
- data/spec/connection_spec.rb +277 -0
- data/spec/design_docs_spec.rb +23 -0
- data/spec/error_spec.rb +26 -0
- data/spec/fts_spec.rb +129 -0
- data/spec/n1ql_spec.rb +201 -0
- data/spec/results_libuv_spec.rb +229 -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/view_spec.rb +195 -0
- metadata +775 -0
|
@@ -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
|
+
#include "wsaerr.h"
|
|
19
|
+
|
|
20
|
+
static int
|
|
21
|
+
wsaerr_map_impl(DWORD in)
|
|
22
|
+
{
|
|
23
|
+
switch (in) {
|
|
24
|
+
case WSAECONNRESET:
|
|
25
|
+
return ECONNRESET;
|
|
26
|
+
|
|
27
|
+
case WSAECONNABORTED:
|
|
28
|
+
case WSA_OPERATION_ABORTED:
|
|
29
|
+
return ECONNABORTED;
|
|
30
|
+
|
|
31
|
+
case WSA_NOT_ENOUGH_MEMORY:
|
|
32
|
+
return ENOMEM;
|
|
33
|
+
|
|
34
|
+
case WSAEWOULDBLOCK:
|
|
35
|
+
case WSA_IO_PENDING:
|
|
36
|
+
return EWOULDBLOCK;
|
|
37
|
+
|
|
38
|
+
case WSAEINVAL:
|
|
39
|
+
return EINVAL;
|
|
40
|
+
|
|
41
|
+
case WSAEINPROGRESS:
|
|
42
|
+
return EINPROGRESS;
|
|
43
|
+
|
|
44
|
+
case WSAEALREADY:
|
|
45
|
+
return EALREADY;
|
|
46
|
+
|
|
47
|
+
case WSAEISCONN:
|
|
48
|
+
return EISCONN;
|
|
49
|
+
|
|
50
|
+
case WSAENOTCONN:
|
|
51
|
+
case WSAESHUTDOWN:
|
|
52
|
+
return ENOTCONN;
|
|
53
|
+
|
|
54
|
+
case WSAECONNREFUSED:
|
|
55
|
+
return ECONNREFUSED;
|
|
56
|
+
|
|
57
|
+
case WSAEINTR:
|
|
58
|
+
return EINTR;
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
case WSAENETDOWN:
|
|
62
|
+
case WSAENETUNREACH:
|
|
63
|
+
case WSAEHOSTUNREACH:
|
|
64
|
+
case WSAEHOSTDOWN:
|
|
65
|
+
return ENETUNREACH;
|
|
66
|
+
|
|
67
|
+
case WSAETIMEDOUT:
|
|
68
|
+
return ETIMEDOUT;
|
|
69
|
+
|
|
70
|
+
case WSAENOTSOCK:
|
|
71
|
+
return ENOTSOCK;
|
|
72
|
+
|
|
73
|
+
default:
|
|
74
|
+
return EINVAL;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
@@ -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,312 @@
|
|
|
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
|
+
* @warning
|
|
32
|
+
* The sub-document API is experimental and subject to change and is here for
|
|
33
|
+
* demonstration purposes only.
|
|
34
|
+
*
|
|
35
|
+
* @addtogroup lcb-subdoc
|
|
36
|
+
* @{
|
|
37
|
+
*/
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* @brief Sub-Document command codes
|
|
41
|
+
*
|
|
42
|
+
* These command codes should be applied as values to lcb_SDSPEC::sdcmd and
|
|
43
|
+
* indicate which type of subdoc command the server should perform.
|
|
44
|
+
*/
|
|
45
|
+
typedef enum {
|
|
46
|
+
/**
|
|
47
|
+
* Retrieve the value for a path
|
|
48
|
+
*/
|
|
49
|
+
LCB_SDCMD_GET = 1,
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Check if the value for a path exists. If the path exists then the error
|
|
53
|
+
* code will be @ref LCB_SUCCESS
|
|
54
|
+
*/
|
|
55
|
+
LCB_SDCMD_EXISTS,
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Replace the value at the specified path. This operation can work
|
|
59
|
+
* on any existing and valid path.
|
|
60
|
+
*/
|
|
61
|
+
LCB_SDCMD_REPLACE,
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Add the value at the given path, if the given path does not exist.
|
|
65
|
+
* The penultimate path component must point to an array. The operation
|
|
66
|
+
* may be used in conjunction with @ref LCB_SDSPEC_F_MKINTERMEDIATES to
|
|
67
|
+
* create the parent dictionary (and its parents as well) if it does not
|
|
68
|
+
* yet exist.
|
|
69
|
+
*/
|
|
70
|
+
LCB_SDCMD_DICT_ADD,
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Unconditionally set the value at the path. This logically
|
|
74
|
+
* attempts to perform a @ref LCB_SDCMD_REPLACE, and if it fails, performs
|
|
75
|
+
* an @ref LCB_SDCMD_DICT_ADD.
|
|
76
|
+
*/
|
|
77
|
+
LCB_SDCMD_DICT_UPSERT,
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Prepend the value(s) to the array indicated by the path. The path should
|
|
81
|
+
* reference an array. When the @ref LCB_SDSPEC_F_MKINTERMEDIATES flag
|
|
82
|
+
* is specified then the array may be created if it does not exist.
|
|
83
|
+
*
|
|
84
|
+
* Note that it is possible to add more than a single value to an array
|
|
85
|
+
* in an operation (this is valid for this commnand as well as
|
|
86
|
+
* @ref LCB_SDCMD_ARRAY_ADD_LAST and @ref LCB_SDCMD_ARRAY_INSERT). Multiple
|
|
87
|
+
* items can be specified by placing a comma between then (the values should
|
|
88
|
+
* otherwise be valid JSON).
|
|
89
|
+
*/
|
|
90
|
+
LCB_SDCMD_ARRAY_ADD_FIRST,
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Identical to @ref LCB_SDCMD_ARRAY_ADD_FIRST but places the item(s)
|
|
94
|
+
* at the end of the array rather than at the beginning.
|
|
95
|
+
*/
|
|
96
|
+
LCB_SDCMD_ARRAY_ADD_LAST,
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Add the value to the array indicated by the path, if the value is not
|
|
100
|
+
* already in the array. The @ref LCB_SDSPEC_F_MKINTERMEDIATES flag can
|
|
101
|
+
* be specified to create the array if it does not already exist.
|
|
102
|
+
*
|
|
103
|
+
* Currently the value for this operation must be a JSON primitive (i.e.
|
|
104
|
+
* no arrays or dictionaries) and the existing array itself must also
|
|
105
|
+
* contain only primitives (otherwise a @ref LCB_SUBDOC_PATH_MISMATCH
|
|
106
|
+
* error will be received).
|
|
107
|
+
*/
|
|
108
|
+
LCB_SDCMD_ARRAY_ADD_UNIQUE,
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Add the value at the given array index. Unlike other array operations,
|
|
112
|
+
* the path specified should include the actual index at which the item(s)
|
|
113
|
+
* should be placed, for example `array[2]` will cause the value(s) to be
|
|
114
|
+
* the 3rd item(s) in the array.
|
|
115
|
+
*
|
|
116
|
+
* The array must already exist and the @ref LCB_SDCMD_F_MKINTERMEDIATES
|
|
117
|
+
* flag is not honored.
|
|
118
|
+
*/
|
|
119
|
+
LCB_SDCMD_ARRAY_INSERT,
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Increment or decrement an existing numeric path. If the number does
|
|
123
|
+
* not exist, it will be created (though its parents will not, unless
|
|
124
|
+
* @ref LCB_SDSPEC_F_MKINTERMEDIATES is specified).
|
|
125
|
+
*
|
|
126
|
+
* The value for this operation should be a valid JSON-encoded integer and
|
|
127
|
+
* must be between `INT64_MIN` and `INT64_MAX`, inclusive.
|
|
128
|
+
*/
|
|
129
|
+
LCB_SDCMD_COUNTER,
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Remove an existing path in the document.
|
|
133
|
+
*/
|
|
134
|
+
LCB_SDCMD_REMOVE,
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Count the number of elements in an array or dictionary
|
|
138
|
+
*/
|
|
139
|
+
LCB_SDCMD_GET_COUNT,
|
|
140
|
+
|
|
141
|
+
LCB_SDCMD_MAX
|
|
142
|
+
} lcb_SUBDOCOP;
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* @brief Subdoc command specification.
|
|
146
|
+
* This structure describes an operation and its path, and possibly its value.
|
|
147
|
+
* This structure is provided in an array to the lcb_CMDSUBDOC::specs field.
|
|
148
|
+
*/
|
|
149
|
+
typedef struct {
|
|
150
|
+
/**
|
|
151
|
+
* The command code, @ref lcb_SUBDOCOP. There is no default for this
|
|
152
|
+
* value, and it therefore must be set.
|
|
153
|
+
*/
|
|
154
|
+
lcb_U32 sdcmd;
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Set of option flags for the command. Currently the only option known
|
|
158
|
+
* is @ref LCB_SDSPEC_F_MKINTERMEDIATES
|
|
159
|
+
*/
|
|
160
|
+
lcb_U32 options;
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Path for the operation. This should be assigned using
|
|
164
|
+
* @ref LCB_SDSPEC_SET_PATH. The contents of the path should be valid
|
|
165
|
+
* until the operation is scheduled (lcb_subdoc3())
|
|
166
|
+
*/
|
|
167
|
+
lcb_KEYBUF path;
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* @value for the operation. This should be assigned using
|
|
171
|
+
* @ref LCB_SDSPEC_SET_VALUE. The contents of the value should be valid
|
|
172
|
+
* until the operation is scheduled (i.e. lcb_subdoc3())
|
|
173
|
+
*/
|
|
174
|
+
lcb_VALBUF value;
|
|
175
|
+
} lcb_SDSPEC;
|
|
176
|
+
|
|
177
|
+
/** Create intermediate paths */
|
|
178
|
+
#define LCB_SDSPEC_F_MKINTERMEDIATES (1<<16)
|
|
179
|
+
|
|
180
|
+
/** Create document if it does not exist */
|
|
181
|
+
#define LCB_SDSPEC_F_MKDOCUMENT (1<<17)
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Set the path for an @ref lcb_SDSPEC structure
|
|
185
|
+
* @param s pointer to spec
|
|
186
|
+
* @param p the path buffer
|
|
187
|
+
* @param n the length of the path buffer
|
|
188
|
+
*/
|
|
189
|
+
#define LCB_SDSPEC_SET_PATH(s, p, n) do { \
|
|
190
|
+
(s)->path.contig.bytes = p; \
|
|
191
|
+
(s)->path.contig.nbytes = n; \
|
|
192
|
+
(s)->path.type = LCB_KV_COPY; \
|
|
193
|
+
} while (0);
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Set the value for the @ref lcb_SDSPEC structure
|
|
197
|
+
* @param s pointer to spec
|
|
198
|
+
* @param v the value buffer
|
|
199
|
+
* @param n the length of the value buffer
|
|
200
|
+
*/
|
|
201
|
+
#define LCB_SDSPEC_SET_VALUE(s, v, n) \
|
|
202
|
+
LCB_CMD_SET_VALUE(s, v, n)
|
|
203
|
+
|
|
204
|
+
#define LCB_SDSPEC_INIT(spec, cmd_, path_, npath_, val_, nval_) do { \
|
|
205
|
+
(spec)->sdcmd = cmd_; \
|
|
206
|
+
LCB_SDSPEC_SET_PATH(spec, path_, npath_); \
|
|
207
|
+
LCB_CMD_SET_VALUE(spec, val_, nval_); \
|
|
208
|
+
} while (0);
|
|
209
|
+
|
|
210
|
+
#define LCB_SDMULTI_MODE_INVALID 0
|
|
211
|
+
#define LCB_SDMULTI_MODE_LOOKUP 1
|
|
212
|
+
#define LCB_SDMULTI_MODE_MUTATE 2
|
|
213
|
+
typedef struct {
|
|
214
|
+
LCB_CMD_BASE;
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* An array of one or more command specifications. The storage
|
|
218
|
+
* for the array need only persist for the duration of the
|
|
219
|
+
* lcb_subdoc3() call.
|
|
220
|
+
*
|
|
221
|
+
* The specs array must be valid only through the invocation
|
|
222
|
+
* of lcb_subdoc3(). As such, they can reside on the stack and
|
|
223
|
+
* be re-used for scheduling multiple commands. See subdoc-simple.cc
|
|
224
|
+
*/
|
|
225
|
+
const lcb_SDSPEC *specs;
|
|
226
|
+
/**
|
|
227
|
+
* Number of entries in #specs
|
|
228
|
+
*/
|
|
229
|
+
size_t nspecs;
|
|
230
|
+
/**
|
|
231
|
+
* If the scheduling of the command failed, the index of the entry which
|
|
232
|
+
* caused the failure will be written to this pointer.
|
|
233
|
+
*
|
|
234
|
+
* If the value is -1 then the failure took place at the command level
|
|
235
|
+
* and not at the spec level.
|
|
236
|
+
*/
|
|
237
|
+
int *error_index;
|
|
238
|
+
/**
|
|
239
|
+
* Operation mode to use. This can either be @ref LCB_SDMULTI_MODE_LOOKUP
|
|
240
|
+
* or @ref LCB_SDMULTI_MODE_MUTATE.
|
|
241
|
+
*
|
|
242
|
+
* This field may be left empty, in which case the mode is implicitly
|
|
243
|
+
* derived from the _first_ command issued.
|
|
244
|
+
*/
|
|
245
|
+
lcb_U32 multimode;
|
|
246
|
+
} lcb_CMDSUBDOC;
|
|
247
|
+
|
|
248
|
+
/**
|
|
249
|
+
* Perform one or more subdocument operations.
|
|
250
|
+
*/
|
|
251
|
+
LIBCOUCHBASE_API
|
|
252
|
+
lcb_error_t
|
|
253
|
+
lcb_subdoc3(lcb_t instance, const void *cookie, const lcb_CMDSUBDOC *cmd);
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Response structure for multi lookups. If the top level response is successful
|
|
257
|
+
* then the individual results may be retrieved using lcb_sdmlookup_next()
|
|
258
|
+
*/
|
|
259
|
+
typedef struct {
|
|
260
|
+
LCB_RESP_BASE
|
|
261
|
+
const void *responses;
|
|
262
|
+
/** Use with lcb_backbuf_ref/unref */
|
|
263
|
+
void *bufh;
|
|
264
|
+
} lcb_RESPSUBDOC;
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* Structure for a single sub-document mutation or lookup result.
|
|
268
|
+
* Note that #value and #nvalue are only valid if #status is ::LCB_SUCCESS
|
|
269
|
+
*/
|
|
270
|
+
typedef struct {
|
|
271
|
+
/** Value for the mutation (only applicable for ::LCB_SUBDOC_COUNTER, currently) */
|
|
272
|
+
const void *value;
|
|
273
|
+
/** Length of the value */
|
|
274
|
+
size_t nvalue;
|
|
275
|
+
/** Status code */
|
|
276
|
+
lcb_error_t status;
|
|
277
|
+
|
|
278
|
+
/**
|
|
279
|
+
* Request index which this result pertains to. This field only
|
|
280
|
+
* makes sense for multi mutations where not all request specs are returned
|
|
281
|
+
* in the result
|
|
282
|
+
*/
|
|
283
|
+
lcb_U8 index;
|
|
284
|
+
} lcb_SDENTRY;
|
|
285
|
+
|
|
286
|
+
/**
|
|
287
|
+
* Iterate over the results for a subdocument response.
|
|
288
|
+
*
|
|
289
|
+
* @warning
|
|
290
|
+
* This function _must_ be called from within the callback. The response itself
|
|
291
|
+
* may contain a pointer to internal stack data which is no longer valid
|
|
292
|
+
* once the callback exits.
|
|
293
|
+
*
|
|
294
|
+
* @param resp the response received from within the callback.
|
|
295
|
+
* @param[out] out structure to store the current result
|
|
296
|
+
* @param[in,out] iter internal iterator. First call should initialize this to 0
|
|
297
|
+
* Note that this value may be 0, in which case only the first response is
|
|
298
|
+
* returned.
|
|
299
|
+
*
|
|
300
|
+
* @return If this function returns nonzero then `out` will contain a valid
|
|
301
|
+
* entry. If this function returns 0 then `ent` is invalid and no more results
|
|
302
|
+
* remain for the response.
|
|
303
|
+
*/
|
|
304
|
+
LIBCOUCHBASE_API
|
|
305
|
+
int
|
|
306
|
+
lcb_sdresult_next(const lcb_RESPSUBDOC *resp, lcb_SDENTRY *out, size_t *iter);
|
|
307
|
+
|
|
308
|
+
/**@}*/
|
|
309
|
+
#ifdef __cplusplus
|
|
310
|
+
}
|
|
311
|
+
#endif
|
|
312
|
+
#endif
|