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.
Files changed (707) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +22 -0
  3. data/.gitmodules +3 -0
  4. data/.rspec +1 -0
  5. data/.travis.yml +38 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE +24 -0
  8. data/README.md +445 -0
  9. data/Rakefile +76 -0
  10. data/ext/README.md +6 -0
  11. data/ext/Rakefile +19 -0
  12. data/ext/libcouchbase/.gitignore +132 -0
  13. data/ext/libcouchbase/CMakeLists.txt +455 -0
  14. data/ext/libcouchbase/CONTRIBUTING.md +105 -0
  15. data/ext/libcouchbase/LICENSE +202 -0
  16. data/ext/libcouchbase/README.markdown +195 -0
  17. data/ext/libcouchbase/RELEASE_NOTES.markdown +3523 -0
  18. data/ext/libcouchbase/cmake/Modules/ConfigureDtrace.cmake +52 -0
  19. data/ext/libcouchbase/cmake/Modules/CopyPDB.cmake +42 -0
  20. data/ext/libcouchbase/cmake/Modules/DistScript.cmake +17 -0
  21. data/ext/libcouchbase/cmake/Modules/DownloadLcbDep.cmake +18 -0
  22. data/ext/libcouchbase/cmake/Modules/FindCouchbaseHdrHistogram.cmake +15 -0
  23. data/ext/libcouchbase/cmake/Modules/FindCouchbaseLibev.cmake +73 -0
  24. data/ext/libcouchbase/cmake/Modules/FindCouchbaseLibevent.cmake +54 -0
  25. data/ext/libcouchbase/cmake/Modules/FindCouchbaseLibuv.cmake +57 -0
  26. data/ext/libcouchbase/cmake/Modules/FindProfiler.cmake +16 -0
  27. data/ext/libcouchbase/cmake/Modules/GenerateConfigDotH.cmake +49 -0
  28. data/ext/libcouchbase/cmake/Modules/GetLibcouchbaseFlags.cmake +142 -0
  29. data/ext/libcouchbase/cmake/Modules/GetPlatformCCInfo.cmake +45 -0
  30. data/ext/libcouchbase/cmake/Modules/GetVersionInfo.cmake +70 -0
  31. data/ext/libcouchbase/cmake/config-cmake.h.in +80 -0
  32. data/ext/libcouchbase/cmake/configure +355 -0
  33. data/ext/libcouchbase/cmake/defs.mk.in +6 -0
  34. data/ext/libcouchbase/cmake/dtrace-instr-link.pl +51 -0
  35. data/ext/libcouchbase/cmake/libcouchbase.stp.in +829 -0
  36. data/ext/libcouchbase/cmake/source_files.cmake +104 -0
  37. data/ext/libcouchbase/contrib/cJSON/cJSON.c +1022 -0
  38. data/ext/libcouchbase/contrib/cJSON/cJSON.h +158 -0
  39. data/ext/libcouchbase/contrib/cbsasl/CMakeLists.txt +25 -0
  40. data/ext/libcouchbase/contrib/cbsasl/COPYING +202 -0
  41. data/ext/libcouchbase/contrib/cbsasl/include/cbsasl/cbsasl.h +259 -0
  42. data/ext/libcouchbase/contrib/cbsasl/src/client.c +419 -0
  43. data/ext/libcouchbase/contrib/cbsasl/src/common.c +50 -0
  44. data/ext/libcouchbase/contrib/cbsasl/src/cram-md5/hmac.c +67 -0
  45. data/ext/libcouchbase/contrib/cbsasl/src/cram-md5/hmac.h +33 -0
  46. data/ext/libcouchbase/contrib/cbsasl/src/cram-md5/md5.c +296 -0
  47. data/ext/libcouchbase/contrib/cbsasl/src/cram-md5/md5.h +45 -0
  48. data/ext/libcouchbase/contrib/cbsasl/src/hash.c +573 -0
  49. data/ext/libcouchbase/contrib/cbsasl/src/hash.h +15 -0
  50. data/ext/libcouchbase/contrib/cbsasl/src/scram-sha/scram_utils.c +500 -0
  51. data/ext/libcouchbase/contrib/cbsasl/src/scram-sha/scram_utils.h +99 -0
  52. data/ext/libcouchbase/contrib/cbsasl/src/util.h +31 -0
  53. data/ext/libcouchbase/contrib/cliopts/CMakeLists.txt +2 -0
  54. data/ext/libcouchbase/contrib/cliopts/cliopts.c +938 -0
  55. data/ext/libcouchbase/contrib/cliopts/cliopts.h +610 -0
  56. data/ext/libcouchbase/contrib/genhash/genhash.c +371 -0
  57. data/ext/libcouchbase/contrib/genhash/genhash.h +241 -0
  58. data/ext/libcouchbase/contrib/gtest-1.7.0/CHANGES +157 -0
  59. data/ext/libcouchbase/contrib/gtest-1.7.0/CMakeLists.txt +252 -0
  60. data/ext/libcouchbase/contrib/gtest-1.7.0/CONTRIBUTORS +37 -0
  61. data/ext/libcouchbase/contrib/gtest-1.7.0/LICENSE +28 -0
  62. data/ext/libcouchbase/contrib/gtest-1.7.0/MINIFY.sh +15 -0
  63. data/ext/libcouchbase/contrib/gtest-1.7.0/README +435 -0
  64. data/ext/libcouchbase/contrib/gtest-1.7.0/cmake/internal_utils.cmake +227 -0
  65. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-death-test.h +294 -0
  66. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-message.h +250 -0
  67. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-param-test.h +1421 -0
  68. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-param-test.h.pump +487 -0
  69. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-printers.h +855 -0
  70. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-spi.h +232 -0
  71. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-test-part.h +179 -0
  72. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-typed-test.h +259 -0
  73. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest.h +2291 -0
  74. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest_pred_impl.h +358 -0
  75. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest_prod.h +58 -0
  76. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-death-test-internal.h +319 -0
  77. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-filepath.h +206 -0
  78. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-internal.h +1158 -0
  79. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-linked_ptr.h +233 -0
  80. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-param-util-generated.h +5143 -0
  81. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-param-util-generated.h.pump +301 -0
  82. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-param-util.h +619 -0
  83. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-port.h +1947 -0
  84. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-string.h +167 -0
  85. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-tuple.h +1012 -0
  86. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-tuple.h.pump +339 -0
  87. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-type-util.h +3331 -0
  88. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-type-util.h.pump +297 -0
  89. data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-all.cc +48 -0
  90. data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-death-test.cc +1344 -0
  91. data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-filepath.cc +382 -0
  92. data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-internal-inl.h +1218 -0
  93. data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-port.cc +805 -0
  94. data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-printers.cc +363 -0
  95. data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-test-part.cc +110 -0
  96. data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-typed-test.cc +110 -0
  97. data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest.cc +5015 -0
  98. data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest_main.cc +38 -0
  99. data/ext/libcouchbase/contrib/http_parser/LICENSE-MIT +23 -0
  100. data/ext/libcouchbase/contrib/http_parser/README.md +178 -0
  101. data/ext/libcouchbase/contrib/http_parser/http_parser.c +2060 -0
  102. data/ext/libcouchbase/contrib/http_parser/http_parser.h +321 -0
  103. data/ext/libcouchbase/contrib/jsonsl/LICENSE +20 -0
  104. data/ext/libcouchbase/contrib/jsonsl/jsonsl.c +1452 -0
  105. data/ext/libcouchbase/contrib/jsonsl/jsonsl.h +971 -0
  106. data/ext/libcouchbase/contrib/lcb-jsoncpp/CMakeLists.txt +6 -0
  107. data/ext/libcouchbase/contrib/lcb-jsoncpp/LICENSE +55 -0
  108. data/ext/libcouchbase/contrib/lcb-jsoncpp/lcb-jsoncpp-forwards.h +255 -0
  109. data/ext/libcouchbase/contrib/lcb-jsoncpp/lcb-jsoncpp.cpp +4893 -0
  110. data/ext/libcouchbase/contrib/lcb-jsoncpp/lcb-jsoncpp.h +1961 -0
  111. data/ext/libcouchbase/contrib/snappy/CMakeLists.txt +7 -0
  112. data/ext/libcouchbase/contrib/snappy/COPYING +28 -0
  113. data/ext/libcouchbase/contrib/snappy/snappy-c.cc +90 -0
  114. data/ext/libcouchbase/contrib/snappy/snappy-c.h +138 -0
  115. data/ext/libcouchbase/contrib/snappy/snappy-internal.h +150 -0
  116. data/ext/libcouchbase/contrib/snappy/snappy-lcb-msvc.h +5 -0
  117. data/ext/libcouchbase/contrib/snappy/snappy-sinksource.cc +75 -0
  118. data/ext/libcouchbase/contrib/snappy/snappy-sinksource.h +137 -0
  119. data/ext/libcouchbase/contrib/snappy/snappy-stubs-internal.cc +42 -0
  120. data/ext/libcouchbase/contrib/snappy/snappy-stubs-internal.h +491 -0
  121. data/ext/libcouchbase/contrib/snappy/snappy-stubs-public.h +100 -0
  122. data/ext/libcouchbase/contrib/snappy/snappy.cc +1312 -0
  123. data/ext/libcouchbase/contrib/snappy/snappy.h +184 -0
  124. data/ext/libcouchbase/contrib/win32-defs/iocpdefs.h +133 -0
  125. data/ext/libcouchbase/contrib/win32-defs/mingwdefs.h +4396 -0
  126. data/ext/libcouchbase/contrib/win32-defs/win_stdint.h +258 -0
  127. data/ext/libcouchbase/doc/Doxyfile +2495 -0
  128. data/ext/libcouchbase/doc/DoxygenLayout.xml +109 -0
  129. data/ext/libcouchbase/doc/Makefile +44 -0
  130. data/ext/libcouchbase/doc/apiattr.h +117 -0
  131. data/ext/libcouchbase/doc/cbc-n1qlback.markdown +88 -0
  132. data/ext/libcouchbase/doc/cbc-pillowfight.markdown +296 -0
  133. data/ext/libcouchbase/doc/cbc-subdoc.markdown +299 -0
  134. data/ext/libcouchbase/doc/cbc.markdown +763 -0
  135. data/ext/libcouchbase/doc/cbcrc.markdown +52 -0
  136. data/ext/libcouchbase/doc/common-additional-options.markdown +82 -0
  137. data/ext/libcouchbase/doc/common-options.markdown +71 -0
  138. data/ext/libcouchbase/doc/environment.h +93 -0
  139. data/ext/libcouchbase/doc/example/threads.c +77 -0
  140. data/ext/libcouchbase/doc/footer.html +22 -0
  141. data/ext/libcouchbase/doc/genman.sh +25 -0
  142. data/ext/libcouchbase/doc/header.html +52 -0
  143. data/ext/libcouchbase/doc/intro.h +130 -0
  144. data/ext/libcouchbase/doc/mainpage.h +136 -0
  145. data/ext/libcouchbase/doc/man/cbc-admin.1 +1 -0
  146. data/ext/libcouchbase/doc/man/cbc-bucket-create.1 +1 -0
  147. data/ext/libcouchbase/doc/man/cbc-bucket-delete.1 +1 -0
  148. data/ext/libcouchbase/doc/man/cbc-cat.1 +1 -0
  149. data/ext/libcouchbase/doc/man/cbc-connstr.1 +1 -0
  150. data/ext/libcouchbase/doc/man/cbc-cp.1 +1 -0
  151. data/ext/libcouchbase/doc/man/cbc-create.1 +1 -0
  152. data/ext/libcouchbase/doc/man/cbc-decr.1 +1 -0
  153. data/ext/libcouchbase/doc/man/cbc-flush.1 +1 -0
  154. data/ext/libcouchbase/doc/man/cbc-hash.1 +1 -0
  155. data/ext/libcouchbase/doc/man/cbc-incr.1 +1 -0
  156. data/ext/libcouchbase/doc/man/cbc-lock.1 +1 -0
  157. data/ext/libcouchbase/doc/man/cbc-mcflush.1 +1 -0
  158. data/ext/libcouchbase/doc/man/cbc-mcversion.1 +1 -0
  159. data/ext/libcouchbase/doc/man/cbc-n1ql.1 +1 -0
  160. data/ext/libcouchbase/doc/man/cbc-n1qlback.1 +198 -0
  161. data/ext/libcouchbase/doc/man/cbc-observe.1 +1 -0
  162. data/ext/libcouchbase/doc/man/cbc-pillowfight.1 +499 -0
  163. data/ext/libcouchbase/doc/man/cbc-ping.1 +1 -0
  164. data/ext/libcouchbase/doc/man/cbc-rm.1 +1 -0
  165. data/ext/libcouchbase/doc/man/cbc-role-list.1 +1 -0
  166. data/ext/libcouchbase/doc/man/cbc-stats.1 +1 -0
  167. data/ext/libcouchbase/doc/man/cbc-subdoc.1 +494 -0
  168. data/ext/libcouchbase/doc/man/cbc-unlock.1 +1 -0
  169. data/ext/libcouchbase/doc/man/cbc-user-delete.1 +1 -0
  170. data/ext/libcouchbase/doc/man/cbc-user-list.1 +1 -0
  171. data/ext/libcouchbase/doc/man/cbc-user-upsert.1 +1 -0
  172. data/ext/libcouchbase/doc/man/cbc-verbosity.1 +1 -0
  173. data/ext/libcouchbase/doc/man/cbc-version.1 +1 -0
  174. data/ext/libcouchbase/doc/man/cbc-view.1 +1 -0
  175. data/ext/libcouchbase/doc/man/cbc-watch.1 +1 -0
  176. data/ext/libcouchbase/doc/man/cbc.1 +1035 -0
  177. data/ext/libcouchbase/doc/man/cbcrc.4 +71 -0
  178. data/ext/libcouchbase/doc/style.css +1162 -0
  179. data/ext/libcouchbase/example/CMakeLists.txt +52 -0
  180. data/ext/libcouchbase/example/README.markdown +47 -0
  181. data/ext/libcouchbase/example/analytics/.gitignore +1 -0
  182. data/ext/libcouchbase/example/analytics/analytics.c +158 -0
  183. data/ext/libcouchbase/example/analytics/build-queries.rb +34 -0
  184. data/ext/libcouchbase/example/analytics/cJSON.c +1 -0
  185. data/ext/libcouchbase/example/analytics/cJSON.h +1 -0
  186. data/ext/libcouchbase/example/analytics/queries/00-show-dataverse.json +5 -0
  187. data/ext/libcouchbase/example/analytics/queries/01-setup-dataset-breweries.json +6 -0
  188. data/ext/libcouchbase/example/analytics/queries/02-setup-dataset-beers.json +6 -0
  189. data/ext/libcouchbase/example/analytics/queries/03-initiate-shadow.json +6 -0
  190. data/ext/libcouchbase/example/analytics/queries/04-list-datasets.json +7 -0
  191. data/ext/libcouchbase/example/analytics/queries/05-count-breweries.json +5 -0
  192. data/ext/libcouchbase/example/analytics/queries/06-first-brewery.json +6 -0
  193. data/ext/libcouchbase/example/analytics/queries/07-key-based-lookup.json +6 -0
  194. data/ext/libcouchbase/example/analytics/queries/08-exact-match-lookup.json +7 -0
  195. data/ext/libcouchbase/example/analytics/queries/09-exact-match-lookup-different-shape.json +6 -0
  196. data/ext/libcouchbase/example/analytics/queries/10-other-query-filters.json +6 -0
  197. data/ext/libcouchbase/example/analytics/queries/11-equijoin.json +9 -0
  198. data/ext/libcouchbase/example/analytics/queries/12-equijoin-select-star.json +10 -0
  199. data/ext/libcouchbase/example/analytics/queries/13-ansi-join.json +8 -0
  200. data/ext/libcouchbase/example/analytics/queries/14-join-select-values.json +8 -0
  201. data/ext/libcouchbase/example/analytics/queries/15-nested-outer-join.json +7 -0
  202. data/ext/libcouchbase/example/analytics/queries/16-theta-join.json +8 -0
  203. data/ext/libcouchbase/example/analytics/queries/17-existential-quantification.json +9 -0
  204. data/ext/libcouchbase/example/analytics/queries/18-universal-quantification.json +7 -0
  205. data/ext/libcouchbase/example/analytics/queries/19-simple-aggregation.json +6 -0
  206. data/ext/libcouchbase/example/analytics/queries/20-simple-aggregation-unwrapped-value.json +6 -0
  207. data/ext/libcouchbase/example/analytics/queries/21-simple-aggregation-explicit.json +6 -0
  208. data/ext/libcouchbase/example/analytics/queries/22-grouping-and-aggregation.json +6 -0
  209. data/ext/libcouchbase/example/analytics/queries/23-grouping-and-aggregation-with-hint.json +7 -0
  210. data/ext/libcouchbase/example/analytics/queries/24-grouping-and-limits.json +7 -0
  211. data/ext/libcouchbase/example/analytics/queries/25-named-parameters.json +7 -0
  212. data/ext/libcouchbase/example/analytics/queries/26-positional-parameters.json +7 -0
  213. data/ext/libcouchbase/example/analytics/queries.h +113 -0
  214. data/ext/libcouchbase/example/crypto/.gitignore +2 -0
  215. data/ext/libcouchbase/example/crypto/Makefile +13 -0
  216. data/ext/libcouchbase/example/crypto/common_provider.c +26 -0
  217. data/ext/libcouchbase/example/crypto/common_provider.h +33 -0
  218. data/ext/libcouchbase/example/crypto/openssl_symmetric_decrypt.c +144 -0
  219. data/ext/libcouchbase/example/crypto/openssl_symmetric_encrypt.c +146 -0
  220. data/ext/libcouchbase/example/crypto/openssl_symmetric_provider.c +271 -0
  221. data/ext/libcouchbase/example/crypto/openssl_symmetric_provider.h +29 -0
  222. data/ext/libcouchbase/example/db/db.c +171 -0
  223. data/ext/libcouchbase/example/db/vb.c +227 -0
  224. data/ext/libcouchbase/example/fts/.gitignore +1 -0
  225. data/ext/libcouchbase/example/fts/build-queries.rb +33 -0
  226. data/ext/libcouchbase/example/fts/fts.c +142 -0
  227. data/ext/libcouchbase/example/fts/queries/00-simple-text-query.json +12 -0
  228. data/ext/libcouchbase/example/fts/queries/01-simple-text-query-on-non-default-index.json +9 -0
  229. data/ext/libcouchbase/example/fts/queries/02-simple-text-query-on-stored-field.json +13 -0
  230. data/ext/libcouchbase/example/fts/queries/03-match-query-with-facet.json +19 -0
  231. data/ext/libcouchbase/example/fts/queries/04-docid-query.json +11 -0
  232. data/ext/libcouchbase/example/fts/queries/05-unanalyzed-term-query-with-fuzziness-level-of-0.json +13 -0
  233. data/ext/libcouchbase/example/fts/queries/06-unanalyzed-term-query-with-fuzziness-level-of-2.json +14 -0
  234. data/ext/libcouchbase/example/fts/queries/07-match-phrase-query.json +13 -0
  235. data/ext/libcouchbase/example/fts/queries/08-phrase-query.json +16 -0
  236. data/ext/libcouchbase/example/fts/queries/09-query-string-query.json +9 -0
  237. data/ext/libcouchbase/example/fts/queries/10-conjunction-query.json +21 -0
  238. data/ext/libcouchbase/example/fts/queries/11-wild-card-query.json +13 -0
  239. data/ext/libcouchbase/example/fts/queries/12-numeric-range-query.json +11 -0
  240. data/ext/libcouchbase/example/fts/queries/13-regexp-query.json +13 -0
  241. data/ext/libcouchbase/example/fts/queries.h +61 -0
  242. data/ext/libcouchbase/example/instancepool/main.cc +112 -0
  243. data/ext/libcouchbase/example/instancepool/pool.cc +102 -0
  244. data/ext/libcouchbase/example/instancepool/pool.h +69 -0
  245. data/ext/libcouchbase/example/libeventdirect/main.c +222 -0
  246. data/ext/libcouchbase/example/mcc/mcc.cc +246 -0
  247. data/ext/libcouchbase/example/minimal/.gitignore +1 -0
  248. data/ext/libcouchbase/example/minimal/minimal.c +132 -0
  249. data/ext/libcouchbase/example/minimal/query.c +185 -0
  250. data/ext/libcouchbase/example/observe/durability.c +102 -0
  251. data/ext/libcouchbase/example/observe/observe.c +159 -0
  252. data/ext/libcouchbase/example/subdoc/subdoc-multi.cc +143 -0
  253. data/ext/libcouchbase/example/subdoc/subdoc-simple.cc +201 -0
  254. data/ext/libcouchbase/example/subdoc/subdoc-xattrs.c +286 -0
  255. data/ext/libcouchbase/example/tick/tick.c +119 -0
  256. data/ext/libcouchbase/example/tracing/.gitignore +2 -0
  257. data/ext/libcouchbase/example/tracing/Makefile +8 -0
  258. data/ext/libcouchbase/example/tracing/cJSON.c +1 -0
  259. data/ext/libcouchbase/example/tracing/cJSON.h +1 -0
  260. data/ext/libcouchbase/example/tracing/tracing.c +439 -0
  261. data/ext/libcouchbase/example/tracing/views.c +444 -0
  262. data/ext/libcouchbase/example/users/README +48 -0
  263. data/ext/libcouchbase/example/users/users.c +147 -0
  264. data/ext/libcouchbase/example/views/views-example.cc +83 -0
  265. data/ext/libcouchbase/include/libcouchbase/_cxxwrap.h +150 -0
  266. data/ext/libcouchbase/include/libcouchbase/api-legacy.h +1689 -0
  267. data/ext/libcouchbase/include/libcouchbase/api3.h +2 -0
  268. data/ext/libcouchbase/include/libcouchbase/assert.h +44 -0
  269. data/ext/libcouchbase/include/libcouchbase/auth.h +297 -0
  270. data/ext/libcouchbase/include/libcouchbase/cbft.h +151 -0
  271. data/ext/libcouchbase/include/libcouchbase/cntl-private.h +319 -0
  272. data/ext/libcouchbase/include/libcouchbase/cntl.h +1418 -0
  273. data/ext/libcouchbase/include/libcouchbase/configuration.h.in +29 -0
  274. data/ext/libcouchbase/include/libcouchbase/couchbase.h +4089 -0
  275. data/ext/libcouchbase/include/libcouchbase/crypto.h +306 -0
  276. data/ext/libcouchbase/include/libcouchbase/deprecated.h +312 -0
  277. data/ext/libcouchbase/include/libcouchbase/error.h +680 -0
  278. data/ext/libcouchbase/include/libcouchbase/http.h +1 -0
  279. data/ext/libcouchbase/include/libcouchbase/iops.h +1053 -0
  280. data/ext/libcouchbase/include/libcouchbase/ixmgmt.h +263 -0
  281. data/ext/libcouchbase/include/libcouchbase/kvbuf.h +137 -0
  282. data/ext/libcouchbase/include/libcouchbase/metrics.h +79 -0
  283. data/ext/libcouchbase/include/libcouchbase/n1ql.h +539 -0
  284. data/ext/libcouchbase/include/libcouchbase/pktfwd.h +270 -0
  285. data/ext/libcouchbase/include/libcouchbase/plugins/io/bsdio-inl.c +370 -0
  286. data/ext/libcouchbase/include/libcouchbase/plugins/io/wsaerr-inl.c +76 -0
  287. data/ext/libcouchbase/include/libcouchbase/plugins/io/wsaerr.h +199 -0
  288. data/ext/libcouchbase/include/libcouchbase/subdoc.h +347 -0
  289. data/ext/libcouchbase/include/libcouchbase/sysdefs.h +98 -0
  290. data/ext/libcouchbase/include/libcouchbase/tracing.h +437 -0
  291. data/ext/libcouchbase/include/libcouchbase/vbucket.h +680 -0
  292. data/ext/libcouchbase/include/libcouchbase/views.h +357 -0
  293. data/ext/libcouchbase/include/libcouchbase/visibility.h +66 -0
  294. data/ext/libcouchbase/include/memcached/COPYING +30 -0
  295. data/ext/libcouchbase/include/memcached/README +10 -0
  296. data/ext/libcouchbase/include/memcached/protocol_binary.h +885 -0
  297. data/ext/libcouchbase/packaging/README +7 -0
  298. data/ext/libcouchbase/packaging/abicheck/.gitignore +4 -0
  299. data/ext/libcouchbase/packaging/abicheck/Makefile +17 -0
  300. data/ext/libcouchbase/packaging/abicheck/README.md +27 -0
  301. data/ext/libcouchbase/packaging/abicheck/template.xml +3 -0
  302. data/ext/libcouchbase/packaging/deb/compat +1 -0
  303. data/ext/libcouchbase/packaging/deb/control +72 -0
  304. data/ext/libcouchbase/packaging/deb/copyright +10 -0
  305. data/ext/libcouchbase/packaging/deb/libcouchbase-dev.docs +3 -0
  306. data/ext/libcouchbase/packaging/deb/package.mk +31 -0
  307. data/ext/libcouchbase/packaging/deb/rules +46 -0
  308. data/ext/libcouchbase/packaging/deb/source/format +1 -0
  309. data/ext/libcouchbase/packaging/distinfo/README +1 -0
  310. data/ext/libcouchbase/packaging/distinfo/distinfo.cmake.in +4 -0
  311. data/ext/libcouchbase/packaging/dllversion.rc.in +39 -0
  312. data/ext/libcouchbase/packaging/libcouchbase.pc.in +10 -0
  313. data/ext/libcouchbase/packaging/nuget/libcouchbase.autopkg +76 -0
  314. data/ext/libcouchbase/packaging/parse-git-describe.pl +166 -0
  315. data/ext/libcouchbase/packaging/rpm/libcouchbase.spec.in +101 -0
  316. data/ext/libcouchbase/packaging/rpm/package.mk +40 -0
  317. data/ext/libcouchbase/plugins/io/iocp/CMakeLists.txt +9 -0
  318. data/ext/libcouchbase/plugins/io/iocp/iocp_iops.c +467 -0
  319. data/ext/libcouchbase/plugins/io/iocp/iocp_iops.h +217 -0
  320. data/ext/libcouchbase/plugins/io/iocp/iocp_loop.c +295 -0
  321. data/ext/libcouchbase/plugins/io/iocp/iocp_timer.c +79 -0
  322. data/ext/libcouchbase/plugins/io/iocp/iocp_util.c +229 -0
  323. data/ext/libcouchbase/plugins/io/libev/CMakeLists.txt +31 -0
  324. data/ext/libcouchbase/plugins/io/libev/libev_io_opts.h +66 -0
  325. data/ext/libcouchbase/plugins/io/libev/plugin-libev.c +289 -0
  326. data/ext/libcouchbase/plugins/io/libevent/CMakeLists.txt +31 -0
  327. data/ext/libcouchbase/plugins/io/libevent/libevent_io_opts.h +67 -0
  328. data/ext/libcouchbase/plugins/io/libevent/plugin-libevent.c +292 -0
  329. data/ext/libcouchbase/plugins/io/libuv/CMakeLists.txt +44 -0
  330. data/ext/libcouchbase/plugins/io/libuv/libuv_compat.h +218 -0
  331. data/ext/libcouchbase/plugins/io/libuv/libuv_io_opts.h +118 -0
  332. data/ext/libcouchbase/plugins/io/libuv/plugin-internal.h +155 -0
  333. data/ext/libcouchbase/plugins/io/libuv/plugin-libuv.c +709 -0
  334. data/ext/libcouchbase/plugins/io/select/CMakeLists.txt +13 -0
  335. data/ext/libcouchbase/plugins/io/select/plugin-select.c +451 -0
  336. data/ext/libcouchbase/plugins/io/select/select_io_opts.h +39 -0
  337. data/ext/libcouchbase/src/README.md +101 -0
  338. data/ext/libcouchbase/src/aspend.h +105 -0
  339. data/ext/libcouchbase/src/auth-priv.h +85 -0
  340. data/ext/libcouchbase/src/auth.cc +146 -0
  341. data/ext/libcouchbase/src/bootstrap.cc +263 -0
  342. data/ext/libcouchbase/src/bootstrap.h +149 -0
  343. data/ext/libcouchbase/src/bucketconfig/bc_cccp.cc +450 -0
  344. data/ext/libcouchbase/src/bucketconfig/bc_file.cc +281 -0
  345. data/ext/libcouchbase/src/bucketconfig/bc_http.cc +527 -0
  346. data/ext/libcouchbase/src/bucketconfig/bc_http.h +107 -0
  347. data/ext/libcouchbase/src/bucketconfig/bc_static.cc +150 -0
  348. data/ext/libcouchbase/src/bucketconfig/clconfig.h +700 -0
  349. data/ext/libcouchbase/src/bucketconfig/confmon.cc +403 -0
  350. data/ext/libcouchbase/src/callbacks.c +380 -0
  351. data/ext/libcouchbase/src/cbft.cc +253 -0
  352. data/ext/libcouchbase/src/cntl.cc +1057 -0
  353. data/ext/libcouchbase/src/config_static.h +176 -0
  354. data/ext/libcouchbase/src/connspec.cc +555 -0
  355. data/ext/libcouchbase/src/connspec.h +155 -0
  356. data/ext/libcouchbase/src/crypto.cc +399 -0
  357. data/ext/libcouchbase/src/ctx-log-inl.h +44 -0
  358. data/ext/libcouchbase/src/dns-srv.cc +146 -0
  359. data/ext/libcouchbase/src/dump.cc +103 -0
  360. data/ext/libcouchbase/src/errmap.cc +173 -0
  361. data/ext/libcouchbase/src/errmap.h +271 -0
  362. data/ext/libcouchbase/src/getconfig.cc +72 -0
  363. data/ext/libcouchbase/src/gethrtime.c +109 -0
  364. data/ext/libcouchbase/src/handler.cc +1101 -0
  365. data/ext/libcouchbase/src/hashtable.c +75 -0
  366. data/ext/libcouchbase/src/hdr_timings.c +92 -0
  367. data/ext/libcouchbase/src/hostlist.cc +293 -0
  368. data/ext/libcouchbase/src/hostlist.h +160 -0
  369. data/ext/libcouchbase/src/http/http-priv.h +326 -0
  370. data/ext/libcouchbase/src/http/http.cc +672 -0
  371. data/ext/libcouchbase/src/http/http.h +1 -0
  372. data/ext/libcouchbase/src/http/http_io.cc +316 -0
  373. data/ext/libcouchbase/src/instance.cc +917 -0
  374. data/ext/libcouchbase/src/internal.h +285 -0
  375. data/ext/libcouchbase/src/iofactory.c +575 -0
  376. data/ext/libcouchbase/src/jsparse/parser.cc +445 -0
  377. data/ext/libcouchbase/src/jsparse/parser.h +159 -0
  378. data/ext/libcouchbase/src/lcbht/lcbht.cc +177 -0
  379. data/ext/libcouchbase/src/lcbht/lcbht.h +210 -0
  380. data/ext/libcouchbase/src/lcbio/connect.cc +603 -0
  381. data/ext/libcouchbase/src/lcbio/connect.h +400 -0
  382. data/ext/libcouchbase/src/lcbio/ctx.c +658 -0
  383. data/ext/libcouchbase/src/lcbio/ctx.h +405 -0
  384. data/ext/libcouchbase/src/lcbio/iotable.c +290 -0
  385. data/ext/libcouchbase/src/lcbio/iotable.h +169 -0
  386. data/ext/libcouchbase/src/lcbio/ioutils.cc +356 -0
  387. data/ext/libcouchbase/src/lcbio/ioutils.h +144 -0
  388. data/ext/libcouchbase/src/lcbio/lcbio.h +51 -0
  389. data/ext/libcouchbase/src/lcbio/manager.cc +579 -0
  390. data/ext/libcouchbase/src/lcbio/manager.h +195 -0
  391. data/ext/libcouchbase/src/lcbio/protoctx.c +84 -0
  392. data/ext/libcouchbase/src/lcbio/rw-inl.h +137 -0
  393. data/ext/libcouchbase/src/lcbio/ssl.h +159 -0
  394. data/ext/libcouchbase/src/lcbio/timer-cxx.h +87 -0
  395. data/ext/libcouchbase/src/lcbio/timer-ng.h +179 -0
  396. data/ext/libcouchbase/src/lcbio/timer.c +132 -0
  397. data/ext/libcouchbase/src/legacy.c +431 -0
  398. data/ext/libcouchbase/src/list.c +144 -0
  399. data/ext/libcouchbase/src/list.h +127 -0
  400. data/ext/libcouchbase/src/logging.c +244 -0
  401. data/ext/libcouchbase/src/logging.h +88 -0
  402. data/ext/libcouchbase/src/mc/compress.cc +171 -0
  403. data/ext/libcouchbase/src/mc/compress.h +56 -0
  404. data/ext/libcouchbase/src/mc/forward.c +186 -0
  405. data/ext/libcouchbase/src/mc/forward.h +90 -0
  406. data/ext/libcouchbase/src/mc/iovcursor-inl.h +279 -0
  407. data/ext/libcouchbase/src/mc/iovcursor.h +66 -0
  408. data/ext/libcouchbase/src/mc/mcreq-flush-inl.h +115 -0
  409. data/ext/libcouchbase/src/mc/mcreq.c +983 -0
  410. data/ext/libcouchbase/src/mc/mcreq.h +1015 -0
  411. data/ext/libcouchbase/src/mcserver/mcserver.cc +1055 -0
  412. data/ext/libcouchbase/src/mcserver/mcserver.h +221 -0
  413. data/ext/libcouchbase/src/mcserver/negotiate.cc +757 -0
  414. data/ext/libcouchbase/src/mcserver/negotiate.h +128 -0
  415. data/ext/libcouchbase/src/mctx-helper.h +62 -0
  416. data/ext/libcouchbase/src/metrics.cc +132 -0
  417. data/ext/libcouchbase/src/n1ql/ixmgmt.cc +857 -0
  418. data/ext/libcouchbase/src/n1ql/n1ql-internal.h +22 -0
  419. data/ext/libcouchbase/src/n1ql/n1ql.cc +830 -0
  420. data/ext/libcouchbase/src/n1ql/params.cc +260 -0
  421. data/ext/libcouchbase/src/netbuf/netbuf-defs.h +89 -0
  422. data/ext/libcouchbase/src/netbuf/netbuf-mblock.h +235 -0
  423. data/ext/libcouchbase/src/netbuf/netbuf.c +929 -0
  424. data/ext/libcouchbase/src/netbuf/netbuf.h +452 -0
  425. data/ext/libcouchbase/src/newconfig.cc +365 -0
  426. data/ext/libcouchbase/src/nodeinfo.cc +184 -0
  427. data/ext/libcouchbase/src/operations/cbflush.cc +63 -0
  428. data/ext/libcouchbase/src/operations/counter.cc +117 -0
  429. data/ext/libcouchbase/src/operations/durability-cas.cc +251 -0
  430. data/ext/libcouchbase/src/operations/durability-seqno.cc +170 -0
  431. data/ext/libcouchbase/src/operations/durability.cc +668 -0
  432. data/ext/libcouchbase/src/operations/durability_internal.h +306 -0
  433. data/ext/libcouchbase/src/operations/get.cc +409 -0
  434. data/ext/libcouchbase/src/operations/observe-seqno.cc +94 -0
  435. data/ext/libcouchbase/src/operations/observe.cc +367 -0
  436. data/ext/libcouchbase/src/operations/ping.cc +496 -0
  437. data/ext/libcouchbase/src/operations/pktfwd.cc +86 -0
  438. data/ext/libcouchbase/src/operations/remove.cc +84 -0
  439. data/ext/libcouchbase/src/operations/stats.cc +459 -0
  440. data/ext/libcouchbase/src/operations/store.cc +358 -0
  441. data/ext/libcouchbase/src/operations/subdoc.cc +614 -0
  442. data/ext/libcouchbase/src/operations/touch.cc +84 -0
  443. data/ext/libcouchbase/src/packetutils.h +388 -0
  444. data/ext/libcouchbase/src/probes.d +182 -0
  445. data/ext/libcouchbase/src/rdb/bigalloc.c +225 -0
  446. data/ext/libcouchbase/src/rdb/bigalloc.h +73 -0
  447. data/ext/libcouchbase/src/rdb/chunkalloc.c +174 -0
  448. data/ext/libcouchbase/src/rdb/libcalloc.c +94 -0
  449. data/ext/libcouchbase/src/rdb/rope.c +419 -0
  450. data/ext/libcouchbase/src/rdb/rope.h +488 -0
  451. data/ext/libcouchbase/src/retrychk.cc +113 -0
  452. data/ext/libcouchbase/src/retryq.cc +458 -0
  453. data/ext/libcouchbase/src/retryq.h +170 -0
  454. data/ext/libcouchbase/src/ringbuffer.c +442 -0
  455. data/ext/libcouchbase/src/ringbuffer.h +100 -0
  456. data/ext/libcouchbase/src/rnd.cc +61 -0
  457. data/ext/libcouchbase/src/rnd.h +39 -0
  458. data/ext/libcouchbase/src/settings.c +125 -0
  459. data/ext/libcouchbase/src/settings.h +273 -0
  460. data/ext/libcouchbase/src/sllist-inl.h +197 -0
  461. data/ext/libcouchbase/src/sllist.h +76 -0
  462. data/ext/libcouchbase/src/ssl/CMakeLists.txt +11 -0
  463. data/ext/libcouchbase/src/ssl/ssl_c.c +442 -0
  464. data/ext/libcouchbase/src/ssl/ssl_common.c +478 -0
  465. data/ext/libcouchbase/src/ssl/ssl_e.c +421 -0
  466. data/ext/libcouchbase/src/ssl/ssl_iot_common.h +182 -0
  467. data/ext/libcouchbase/src/strcodecs/base64.c +307 -0
  468. data/ext/libcouchbase/src/strcodecs/strcodecs.h +302 -0
  469. data/ext/libcouchbase/src/timings.c +207 -0
  470. data/ext/libcouchbase/src/trace.h +117 -0
  471. data/ext/libcouchbase/src/tracing/span.cc +421 -0
  472. data/ext/libcouchbase/src/tracing/threshold_logging_tracer.cc +213 -0
  473. data/ext/libcouchbase/src/tracing/tracer.cc +53 -0
  474. data/ext/libcouchbase/src/tracing/tracing-internal.h +198 -0
  475. data/ext/libcouchbase/src/utilities.c +176 -0
  476. data/ext/libcouchbase/src/vbucket/CMakeLists.txt +2 -0
  477. data/ext/libcouchbase/src/vbucket/aliases.h +35 -0
  478. data/ext/libcouchbase/src/vbucket/crc32.h +83 -0
  479. data/ext/libcouchbase/src/vbucket/hash.h +30 -0
  480. data/ext/libcouchbase/src/vbucket/json-inl.h +112 -0
  481. data/ext/libcouchbase/src/vbucket/ketama.c +66 -0
  482. data/ext/libcouchbase/src/vbucket/rfc1321/global.h +32 -0
  483. data/ext/libcouchbase/src/vbucket/rfc1321/md5.h +35 -0
  484. data/ext/libcouchbase/src/vbucket/rfc1321/md5c-inl.h +335 -0
  485. data/ext/libcouchbase/src/vbucket/vbucket.c +1735 -0
  486. data/ext/libcouchbase/src/views/docreq.cc +213 -0
  487. data/ext/libcouchbase/src/views/docreq.h +94 -0
  488. data/ext/libcouchbase/src/views/viewreq.cc +381 -0
  489. data/ext/libcouchbase/src/views/viewreq.h +87 -0
  490. data/ext/libcouchbase/src/wait.cc +156 -0
  491. data/ext/libcouchbase/tests/CMakeLists.txt +149 -0
  492. data/ext/libcouchbase/tests/basic/t_base64.cc +109 -0
  493. data/ext/libcouchbase/tests/basic/t_ccbc103.cc +95 -0
  494. data/ext/libcouchbase/tests/basic/t_connstr.cc +456 -0
  495. data/ext/libcouchbase/tests/basic/t_creds.cc +96 -0
  496. data/ext/libcouchbase/tests/basic/t_ctlcodes.cc +92 -0
  497. data/ext/libcouchbase/tests/basic/t_host.cc +210 -0
  498. data/ext/libcouchbase/tests/basic/t_jsparse.cc +82 -0
  499. data/ext/libcouchbase/tests/basic/t_jsparse.h +589 -0
  500. data/ext/libcouchbase/tests/basic/t_list.cc +155 -0
  501. data/ext/libcouchbase/tests/basic/t_logger.cc +65 -0
  502. data/ext/libcouchbase/tests/basic/t_misc.cc +24 -0
  503. data/ext/libcouchbase/tests/basic/t_n1qlstrings.cc +17 -0
  504. data/ext/libcouchbase/tests/basic/t_netbuf.cc +446 -0
  505. data/ext/libcouchbase/tests/basic/t_packet.cc +215 -0
  506. data/ext/libcouchbase/tests/basic/t_ringbuffer.cc +278 -0
  507. data/ext/libcouchbase/tests/basic/t_scram.cc +514 -0
  508. data/ext/libcouchbase/tests/basic/t_slist.cc +429 -0
  509. data/ext/libcouchbase/tests/basic/t_strerror.cc +64 -0
  510. data/ext/libcouchbase/tests/basic/t_urlencode.cc +132 -0
  511. data/ext/libcouchbase/tests/check-all.cc +612 -0
  512. data/ext/libcouchbase/tests/htparse/t_basic.cc +173 -0
  513. data/ext/libcouchbase/tests/ioserver/connection.cc +166 -0
  514. data/ext/libcouchbase/tests/ioserver/future.cc +50 -0
  515. data/ext/libcouchbase/tests/ioserver/ioserver.cc +117 -0
  516. data/ext/libcouchbase/tests/ioserver/ioserver.h +478 -0
  517. data/ext/libcouchbase/tests/ioserver/socket.cc +88 -0
  518. data/ext/libcouchbase/tests/ioserver/ssl_connection.cc +145 -0
  519. data/ext/libcouchbase/tests/ioserver/threads-pthreads.cc +119 -0
  520. data/ext/libcouchbase/tests/ioserver/threads-win32.cc +117 -0
  521. data/ext/libcouchbase/tests/ioserver/threads.h +66 -0
  522. data/ext/libcouchbase/tests/iotests/iotests.h +15 -0
  523. data/ext/libcouchbase/tests/iotests/mock-environment.cc +632 -0
  524. data/ext/libcouchbase/tests/iotests/mock-environment.h +480 -0
  525. data/ext/libcouchbase/tests/iotests/mock-unit-test.cc +67 -0
  526. data/ext/libcouchbase/tests/iotests/mock-unit-test.h +61 -0
  527. data/ext/libcouchbase/tests/iotests/serverparams.h +76 -0
  528. data/ext/libcouchbase/tests/iotests/t_arithmetic.cc +143 -0
  529. data/ext/libcouchbase/tests/iotests/t_behavior.cc +220 -0
  530. data/ext/libcouchbase/tests/iotests/t_configcache.cc +117 -0
  531. data/ext/libcouchbase/tests/iotests/t_confmon.cc +223 -0
  532. data/ext/libcouchbase/tests/iotests/t_durability.cc +1108 -0
  533. data/ext/libcouchbase/tests/iotests/t_eerrs.cc +121 -0
  534. data/ext/libcouchbase/tests/iotests/t_errmap.cc +181 -0
  535. data/ext/libcouchbase/tests/iotests/t_forward.cc +118 -0
  536. data/ext/libcouchbase/tests/iotests/t_get.cc +512 -0
  537. data/ext/libcouchbase/tests/iotests/t_http.cc +438 -0
  538. data/ext/libcouchbase/tests/iotests/t_iops.cc +175 -0
  539. data/ext/libcouchbase/tests/iotests/t_lock.cc +274 -0
  540. data/ext/libcouchbase/tests/iotests/t_misc.cc +777 -0
  541. data/ext/libcouchbase/tests/iotests/t_mutate.cc +609 -0
  542. data/ext/libcouchbase/tests/iotests/t_n1ql.cc +270 -0
  543. data/ext/libcouchbase/tests/iotests/t_netfail.cc +778 -0
  544. data/ext/libcouchbase/tests/iotests/t_obseqno.cc +156 -0
  545. data/ext/libcouchbase/tests/iotests/t_regression.cc +321 -0
  546. data/ext/libcouchbase/tests/iotests/t_sched.cc +87 -0
  547. data/ext/libcouchbase/tests/iotests/t_serverops.cc +231 -0
  548. data/ext/libcouchbase/tests/iotests/t_smoke.cc +528 -0
  549. data/ext/libcouchbase/tests/iotests/t_snappy.cc +316 -0
  550. data/ext/libcouchbase/tests/iotests/t_subdoc.cc +857 -0
  551. data/ext/libcouchbase/tests/iotests/t_syncmode.cc +64 -0
  552. data/ext/libcouchbase/tests/iotests/t_views.cc +417 -0
  553. data/ext/libcouchbase/tests/iotests/testutil.cc +251 -0
  554. data/ext/libcouchbase/tests/iotests/testutil.h +163 -0
  555. data/ext/libcouchbase/tests/mc/mctest.h +119 -0
  556. data/ext/libcouchbase/tests/mc/pktmaker.h +101 -0
  557. data/ext/libcouchbase/tests/mc/t_alloc.cc +269 -0
  558. data/ext/libcouchbase/tests/mc/t_context.cc +100 -0
  559. data/ext/libcouchbase/tests/mc/t_flush.cc +185 -0
  560. data/ext/libcouchbase/tests/mc/t_forward.cc +239 -0
  561. data/ext/libcouchbase/tests/mc/t_ioflush.cc +102 -0
  562. data/ext/libcouchbase/tests/mc/t_iovcursor.cc +173 -0
  563. data/ext/libcouchbase/tests/mocksupport/procutil.c +305 -0
  564. data/ext/libcouchbase/tests/mocksupport/procutil.h +89 -0
  565. data/ext/libcouchbase/tests/mocksupport/server.c +391 -0
  566. data/ext/libcouchbase/tests/mocksupport/server.h +72 -0
  567. data/ext/libcouchbase/tests/mocksupport/timeout.c +69 -0
  568. data/ext/libcouchbase/tests/nonio_tests.cc +23 -0
  569. data/ext/libcouchbase/tests/rdb/rdbtest.h +133 -0
  570. data/ext/libcouchbase/tests/rdb/t_basic.cc +128 -0
  571. data/ext/libcouchbase/tests/rdb/t_bigalloc.cc +93 -0
  572. data/ext/libcouchbase/tests/rdb/t_refs.cc +112 -0
  573. data/ext/libcouchbase/tests/socktests/socktest.cc +344 -0
  574. data/ext/libcouchbase/tests/socktests/socktest.h +447 -0
  575. data/ext/libcouchbase/tests/socktests/t_basic.cc +143 -0
  576. data/ext/libcouchbase/tests/socktests/t_ctx.cc +73 -0
  577. data/ext/libcouchbase/tests/socktests/t_manager.cc +159 -0
  578. data/ext/libcouchbase/tests/socktests/t_putex.cc +256 -0
  579. data/ext/libcouchbase/tests/socktests/t_read.cc +187 -0
  580. data/ext/libcouchbase/tests/socktests/t_reentrant.cc +143 -0
  581. data/ext/libcouchbase/tests/socktests/t_ssl.cc +80 -0
  582. data/ext/libcouchbase/tests/socktests/t_write.cc +95 -0
  583. data/ext/libcouchbase/tests/start_mock.bat +15 -0
  584. data/ext/libcouchbase/tests/start_mock.sh +42 -0
  585. data/ext/libcouchbase/tests/unit_tests.cc +43 -0
  586. data/ext/libcouchbase/tests/vbucket/confdata/bad.json +101 -0
  587. data/ext/libcouchbase/tests/vbucket/confdata/full_25.json +363 -0
  588. data/ext/libcouchbase/tests/vbucket/confdata/ketama_expected.json +2562 -0
  589. data/ext/libcouchbase/tests/vbucket/confdata/map_node_present_nodesext_missing_nodes.json +94 -0
  590. data/ext/libcouchbase/tests/vbucket/confdata/memd_25.json +90 -0
  591. data/ext/libcouchbase/tests/vbucket/confdata/memd_30.json +1 -0
  592. data/ext/libcouchbase/tests/vbucket/confdata/memd_45.json +1 -0
  593. data/ext/libcouchbase/tests/vbucket/confdata/memd_ketama_config.json +31 -0
  594. data/ext/libcouchbase/tests/vbucket/confdata/terse_25.json +291 -0
  595. data/ext/libcouchbase/tests/vbucket/confdata/terse_30.json +1 -0
  596. data/ext/libcouchbase/tests/vbucket/t_config.cc +386 -0
  597. data/ext/libcouchbase/tools/CMakeLists.txt +80 -0
  598. data/ext/libcouchbase/tools/cbc-handlers.h +636 -0
  599. data/ext/libcouchbase/tools/cbc-n1qlback.cc +496 -0
  600. data/ext/libcouchbase/tools/cbc-pillowfight.cc +1230 -0
  601. data/ext/libcouchbase/tools/cbc-proxy.cc +534 -0
  602. data/ext/libcouchbase/tools/cbc-subdoc.cc +825 -0
  603. data/ext/libcouchbase/tools/cbc.cc +1928 -0
  604. data/ext/libcouchbase/tools/common/histogram.cc +44 -0
  605. data/ext/libcouchbase/tools/common/histogram.h +23 -0
  606. data/ext/libcouchbase/tools/common/options.cc +451 -0
  607. data/ext/libcouchbase/tools/common/options.h +90 -0
  608. data/ext/libcouchbase/tools/docgen/docgen.h +495 -0
  609. data/ext/libcouchbase/tools/docgen/loc.h +211 -0
  610. data/ext/libcouchbase/tools/docgen/placeholders.h +211 -0
  611. data/ext/libcouchbase/tools/docgen/seqgen.h +122 -0
  612. data/ext/libcouchbase/tools/extract-packets.rb +110 -0
  613. data/ext/libcouchbase/tools/linenoise/linenoise.c +1199 -0
  614. data/ext/libcouchbase/tools/linenoise/linenoise.h +73 -0
  615. data/lib/mt-libcouchbase/bucket.rb +825 -0
  616. data/lib/mt-libcouchbase/callbacks.rb +69 -0
  617. data/lib/mt-libcouchbase/connection.rb +896 -0
  618. data/lib/mt-libcouchbase/design_docs.rb +92 -0
  619. data/lib/mt-libcouchbase/error.rb +68 -0
  620. data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdbase.rb +23 -0
  621. data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdcounter.rb +36 -0
  622. data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdendure.rb +26 -0
  623. data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdfts.rb +24 -0
  624. data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdget.rb +30 -0
  625. data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdgetreplica.rb +49 -0
  626. data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdhttp.rb +58 -0
  627. data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdn1ql.rb +40 -0
  628. data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdobseqno.rb +33 -0
  629. data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdobserve.rb +30 -0
  630. data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdstore.rb +40 -0
  631. data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdstoredur.rb +45 -0
  632. data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdsubdoc.rb +61 -0
  633. data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdverbosity.rb +29 -0
  634. data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdviewquery.rb +61 -0
  635. data/lib/mt-libcouchbase/ext/mt-libcouchbase/contigbuf.rb +14 -0
  636. data/lib/mt-libcouchbase/ext/mt-libcouchbase/create_st.rb +15 -0
  637. data/lib/mt-libcouchbase/ext/mt-libcouchbase/create_st0.rb +23 -0
  638. data/lib/mt-libcouchbase/ext/mt-libcouchbase/create_st1.rb +26 -0
  639. data/lib/mt-libcouchbase/ext/mt-libcouchbase/create_st2.rb +32 -0
  640. data/lib/mt-libcouchbase/ext/mt-libcouchbase/create_st3.rb +26 -0
  641. data/lib/mt-libcouchbase/ext/mt-libcouchbase/crst_u.rb +20 -0
  642. data/lib/mt-libcouchbase/ext/mt-libcouchbase/durability_opts_st_v.rb +11 -0
  643. data/lib/mt-libcouchbase/ext/mt-libcouchbase/durability_opts_t.rb +14 -0
  644. data/lib/mt-libcouchbase/ext/mt-libcouchbase/durabilityopt_sv0.rb +63 -0
  645. data/lib/mt-libcouchbase/ext/mt-libcouchbase/enums.rb +1007 -0
  646. data/lib/mt-libcouchbase/ext/mt-libcouchbase/fragbuf.rb +18 -0
  647. data/lib/mt-libcouchbase/ext/mt-libcouchbase/ftshandle.rb +7 -0
  648. data/lib/mt-libcouchbase/ext/mt-libcouchbase/histogram.rb +34 -0
  649. data/lib/mt-libcouchbase/ext/mt-libcouchbase/http_request_t.rb +7 -0
  650. data/lib/mt-libcouchbase/ext/mt-libcouchbase/keybuf.rb +20 -0
  651. data/lib/mt-libcouchbase/ext/mt-libcouchbase/multicmd_ctx.rb +30 -0
  652. data/lib/mt-libcouchbase/ext/mt-libcouchbase/mutation_token.rb +17 -0
  653. data/lib/mt-libcouchbase/ext/mt-libcouchbase/n1qlhandle.rb +7 -0
  654. data/lib/mt-libcouchbase/ext/mt-libcouchbase/n1qlparams.rb +7 -0
  655. data/lib/mt-libcouchbase/ext/mt-libcouchbase/respbase.rb +29 -0
  656. data/lib/mt-libcouchbase/ext/mt-libcouchbase/respcounter.rb +32 -0
  657. data/lib/mt-libcouchbase/ext/mt-libcouchbase/respendure.rb +49 -0
  658. data/lib/mt-libcouchbase/ext/mt-libcouchbase/respfts.rb +40 -0
  659. data/lib/mt-libcouchbase/ext/mt-libcouchbase/respget.rb +44 -0
  660. data/lib/mt-libcouchbase/ext/mt-libcouchbase/resphttp.rb +48 -0
  661. data/lib/mt-libcouchbase/ext/mt-libcouchbase/respmcversion.rb +38 -0
  662. data/lib/mt-libcouchbase/ext/mt-libcouchbase/respn1ql.rb +41 -0
  663. data/lib/mt-libcouchbase/ext/mt-libcouchbase/respobseqno.rb +52 -0
  664. data/lib/mt-libcouchbase/ext/mt-libcouchbase/respobserve.rb +41 -0
  665. data/lib/mt-libcouchbase/ext/mt-libcouchbase/respserverbase.rb +32 -0
  666. data/lib/mt-libcouchbase/ext/mt-libcouchbase/respstats.rb +38 -0
  667. data/lib/mt-libcouchbase/ext/mt-libcouchbase/respstore.rb +32 -0
  668. data/lib/mt-libcouchbase/ext/mt-libcouchbase/respstoredur.rb +38 -0
  669. data/lib/mt-libcouchbase/ext/mt-libcouchbase/respsubdoc.rb +35 -0
  670. data/lib/mt-libcouchbase/ext/mt-libcouchbase/respviewquery.rb +67 -0
  671. data/lib/mt-libcouchbase/ext/mt-libcouchbase/sdentry.rb +22 -0
  672. data/lib/mt-libcouchbase/ext/mt-libcouchbase/sdspec.rb +31 -0
  673. data/lib/mt-libcouchbase/ext/mt-libcouchbase/t.rb +7 -0
  674. data/lib/mt-libcouchbase/ext/mt-libcouchbase/valbuf.rb +22 -0
  675. data/lib/mt-libcouchbase/ext/mt-libcouchbase/valbuf_u_buf.rb +14 -0
  676. data/lib/mt-libcouchbase/ext/mt-libcouchbase/viewhandle.rb +7 -0
  677. data/lib/mt-libcouchbase/ext/mt-libcouchbase.rb +1175 -0
  678. data/lib/mt-libcouchbase/ext/mt-libcouchbase_libuv.rb +22 -0
  679. data/lib/mt-libcouchbase/ext/tasks.rb +39 -0
  680. data/lib/mt-libcouchbase/n1ql.rb +80 -0
  681. data/lib/mt-libcouchbase/query_full_text.rb +147 -0
  682. data/lib/mt-libcouchbase/query_n1ql.rb +123 -0
  683. data/lib/mt-libcouchbase/query_view.rb +135 -0
  684. data/lib/mt-libcouchbase/results_fiber.rb +281 -0
  685. data/lib/mt-libcouchbase/results_native.rb +220 -0
  686. data/lib/mt-libcouchbase/subdoc_request.rb +139 -0
  687. data/lib/mt-libcouchbase/version.rb +5 -0
  688. data/lib/mt-libcouchbase.rb +40 -0
  689. data/mt-libcouchbase.gemspec +68 -0
  690. data/spec/bucket_spec.rb +290 -0
  691. data/spec/connection_spec.rb +257 -0
  692. data/spec/design_docs_spec.rb +31 -0
  693. data/spec/error_spec.rb +26 -0
  694. data/spec/fts_spec.rb +135 -0
  695. data/spec/n1ql_spec.rb +260 -0
  696. data/spec/results_libuv_spec.rb +244 -0
  697. data/spec/results_native_spec.rb +259 -0
  698. data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/design.json +1 -0
  699. data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/data-0000.cbb +0 -0
  700. data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/failover.json +1 -0
  701. data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/meta.json +1 -0
  702. data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/seqno.json +1 -0
  703. data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/snapshot_markers.json +1 -0
  704. data/spec/subdoc_spec.rb +192 -0
  705. data/spec/view_spec.rb +201 -0
  706. data/windows_build.md +36 -0
  707. metadata +873 -0
@@ -0,0 +1,1012 @@
1
+ // This file was GENERATED by command:
2
+ // pump.py gtest-tuple.h.pump
3
+ // DO NOT EDIT BY HAND!!!
4
+
5
+ // Copyright 2009 Google Inc.
6
+ // All Rights Reserved.
7
+ //
8
+ // Redistribution and use in source and binary forms, with or without
9
+ // modification, are permitted provided that the following conditions are
10
+ // met:
11
+ //
12
+ // * Redistributions of source code must retain the above copyright
13
+ // notice, this list of conditions and the following disclaimer.
14
+ // * Redistributions in binary form must reproduce the above
15
+ // copyright notice, this list of conditions and the following disclaimer
16
+ // in the documentation and/or other materials provided with the
17
+ // distribution.
18
+ // * Neither the name of Google Inc. nor the names of its
19
+ // contributors may be used to endorse or promote products derived from
20
+ // this software without specific prior written permission.
21
+ //
22
+ // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23
+ // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24
+ // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25
+ // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26
+ // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27
+ // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28
+ // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29
+ // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30
+ // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31
+ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32
+ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33
+ //
34
+ // Author: wan@google.com (Zhanyong Wan)
35
+
36
+ // Implements a subset of TR1 tuple needed by Google Test and Google Mock.
37
+
38
+ #ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TUPLE_H_
39
+ #define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TUPLE_H_
40
+
41
+ #include <utility> // For ::std::pair.
42
+
43
+ // The compiler used in Symbian has a bug that prevents us from declaring the
44
+ // tuple template as a friend (it complains that tuple is redefined). This
45
+ // hack bypasses the bug by declaring the members that should otherwise be
46
+ // private as public.
47
+ // Sun Studio versions < 12 also have the above bug.
48
+ #if defined(__SYMBIAN32__) || (defined(__SUNPRO_CC) && __SUNPRO_CC < 0x590)
49
+ # define GTEST_DECLARE_TUPLE_AS_FRIEND_ public:
50
+ #else
51
+ # define GTEST_DECLARE_TUPLE_AS_FRIEND_ \
52
+ template <GTEST_10_TYPENAMES_(U)> friend class tuple; \
53
+ private:
54
+ #endif
55
+
56
+ // GTEST_n_TUPLE_(T) is the type of an n-tuple.
57
+ #define GTEST_0_TUPLE_(T) tuple<>
58
+ #define GTEST_1_TUPLE_(T) tuple<T##0, void, void, void, void, void, void, \
59
+ void, void, void>
60
+ #define GTEST_2_TUPLE_(T) tuple<T##0, T##1, void, void, void, void, void, \
61
+ void, void, void>
62
+ #define GTEST_3_TUPLE_(T) tuple<T##0, T##1, T##2, void, void, void, void, \
63
+ void, void, void>
64
+ #define GTEST_4_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, void, void, void, \
65
+ void, void, void>
66
+ #define GTEST_5_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, T##4, void, void, \
67
+ void, void, void>
68
+ #define GTEST_6_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, T##4, T##5, void, \
69
+ void, void, void>
70
+ #define GTEST_7_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, T##4, T##5, T##6, \
71
+ void, void, void>
72
+ #define GTEST_8_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, T##4, T##5, T##6, \
73
+ T##7, void, void>
74
+ #define GTEST_9_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, T##4, T##5, T##6, \
75
+ T##7, T##8, void>
76
+ #define GTEST_10_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, T##4, T##5, T##6, \
77
+ T##7, T##8, T##9>
78
+
79
+ // GTEST_n_TYPENAMES_(T) declares a list of n typenames.
80
+ #define GTEST_0_TYPENAMES_(T)
81
+ #define GTEST_1_TYPENAMES_(T) typename T##0
82
+ #define GTEST_2_TYPENAMES_(T) typename T##0, typename T##1
83
+ #define GTEST_3_TYPENAMES_(T) typename T##0, typename T##1, typename T##2
84
+ #define GTEST_4_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \
85
+ typename T##3
86
+ #define GTEST_5_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \
87
+ typename T##3, typename T##4
88
+ #define GTEST_6_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \
89
+ typename T##3, typename T##4, typename T##5
90
+ #define GTEST_7_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \
91
+ typename T##3, typename T##4, typename T##5, typename T##6
92
+ #define GTEST_8_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \
93
+ typename T##3, typename T##4, typename T##5, typename T##6, typename T##7
94
+ #define GTEST_9_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \
95
+ typename T##3, typename T##4, typename T##5, typename T##6, \
96
+ typename T##7, typename T##8
97
+ #define GTEST_10_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \
98
+ typename T##3, typename T##4, typename T##5, typename T##6, \
99
+ typename T##7, typename T##8, typename T##9
100
+
101
+ // In theory, defining stuff in the ::std namespace is undefined
102
+ // behavior. We can do this as we are playing the role of a standard
103
+ // library vendor.
104
+ namespace std {
105
+ namespace tr1 {
106
+
107
+ template <typename T0 = void, typename T1 = void, typename T2 = void,
108
+ typename T3 = void, typename T4 = void, typename T5 = void,
109
+ typename T6 = void, typename T7 = void, typename T8 = void,
110
+ typename T9 = void>
111
+ class tuple;
112
+
113
+ // Anything in namespace gtest_internal is Google Test's INTERNAL
114
+ // IMPLEMENTATION DETAIL and MUST NOT BE USED DIRECTLY in user code.
115
+ namespace gtest_internal {
116
+
117
+ // ByRef<T>::type is T if T is a reference; otherwise it's const T&.
118
+ template <typename T>
119
+ struct ByRef { typedef const T& type; }; // NOLINT
120
+ template <typename T>
121
+ struct ByRef<T&> { typedef T& type; }; // NOLINT
122
+
123
+ // A handy wrapper for ByRef.
124
+ #define GTEST_BY_REF_(T) typename ::std::tr1::gtest_internal::ByRef<T>::type
125
+
126
+ // AddRef<T>::type is T if T is a reference; otherwise it's T&. This
127
+ // is the same as tr1::add_reference<T>::type.
128
+ template <typename T>
129
+ struct AddRef { typedef T& type; }; // NOLINT
130
+ template <typename T>
131
+ struct AddRef<T&> { typedef T& type; }; // NOLINT
132
+
133
+ // A handy wrapper for AddRef.
134
+ #define GTEST_ADD_REF_(T) typename ::std::tr1::gtest_internal::AddRef<T>::type
135
+
136
+ // A helper for implementing get<k>().
137
+ template <int k> class Get;
138
+
139
+ // A helper for implementing tuple_element<k, T>. kIndexValid is true
140
+ // iff k < the number of fields in tuple type T.
141
+ template <bool kIndexValid, int kIndex, class Tuple>
142
+ struct TupleElement;
143
+
144
+ template <GTEST_10_TYPENAMES_(T)>
145
+ struct TupleElement<true, 0, GTEST_10_TUPLE_(T) > {
146
+ typedef T0 type;
147
+ };
148
+
149
+ template <GTEST_10_TYPENAMES_(T)>
150
+ struct TupleElement<true, 1, GTEST_10_TUPLE_(T) > {
151
+ typedef T1 type;
152
+ };
153
+
154
+ template <GTEST_10_TYPENAMES_(T)>
155
+ struct TupleElement<true, 2, GTEST_10_TUPLE_(T) > {
156
+ typedef T2 type;
157
+ };
158
+
159
+ template <GTEST_10_TYPENAMES_(T)>
160
+ struct TupleElement<true, 3, GTEST_10_TUPLE_(T) > {
161
+ typedef T3 type;
162
+ };
163
+
164
+ template <GTEST_10_TYPENAMES_(T)>
165
+ struct TupleElement<true, 4, GTEST_10_TUPLE_(T) > {
166
+ typedef T4 type;
167
+ };
168
+
169
+ template <GTEST_10_TYPENAMES_(T)>
170
+ struct TupleElement<true, 5, GTEST_10_TUPLE_(T) > {
171
+ typedef T5 type;
172
+ };
173
+
174
+ template <GTEST_10_TYPENAMES_(T)>
175
+ struct TupleElement<true, 6, GTEST_10_TUPLE_(T) > {
176
+ typedef T6 type;
177
+ };
178
+
179
+ template <GTEST_10_TYPENAMES_(T)>
180
+ struct TupleElement<true, 7, GTEST_10_TUPLE_(T) > {
181
+ typedef T7 type;
182
+ };
183
+
184
+ template <GTEST_10_TYPENAMES_(T)>
185
+ struct TupleElement<true, 8, GTEST_10_TUPLE_(T) > {
186
+ typedef T8 type;
187
+ };
188
+
189
+ template <GTEST_10_TYPENAMES_(T)>
190
+ struct TupleElement<true, 9, GTEST_10_TUPLE_(T) > {
191
+ typedef T9 type;
192
+ };
193
+
194
+ } // namespace gtest_internal
195
+
196
+ template <>
197
+ class tuple<> {
198
+ public:
199
+ tuple() {}
200
+ tuple(const tuple& /* t */) {}
201
+ tuple& operator=(const tuple& /* t */) { return *this; }
202
+ };
203
+
204
+ template <GTEST_1_TYPENAMES_(T)>
205
+ class GTEST_1_TUPLE_(T) {
206
+ public:
207
+ template <int k> friend class gtest_internal::Get;
208
+
209
+ tuple() : f0_() {}
210
+
211
+ explicit tuple(GTEST_BY_REF_(T0) f0) : f0_(f0) {}
212
+
213
+ tuple(const tuple& t) : f0_(t.f0_) {}
214
+
215
+ template <GTEST_1_TYPENAMES_(U)>
216
+ tuple(const GTEST_1_TUPLE_(U)& t) : f0_(t.f0_) {}
217
+
218
+ tuple& operator=(const tuple& t) { return CopyFrom(t); }
219
+
220
+ template <GTEST_1_TYPENAMES_(U)>
221
+ tuple& operator=(const GTEST_1_TUPLE_(U)& t) {
222
+ return CopyFrom(t);
223
+ }
224
+
225
+ GTEST_DECLARE_TUPLE_AS_FRIEND_
226
+
227
+ template <GTEST_1_TYPENAMES_(U)>
228
+ tuple& CopyFrom(const GTEST_1_TUPLE_(U)& t) {
229
+ f0_ = t.f0_;
230
+ return *this;
231
+ }
232
+
233
+ T0 f0_;
234
+ };
235
+
236
+ template <GTEST_2_TYPENAMES_(T)>
237
+ class GTEST_2_TUPLE_(T) {
238
+ public:
239
+ template <int k> friend class gtest_internal::Get;
240
+
241
+ tuple() : f0_(), f1_() {}
242
+
243
+ explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1) : f0_(f0),
244
+ f1_(f1) {}
245
+
246
+ tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_) {}
247
+
248
+ template <GTEST_2_TYPENAMES_(U)>
249
+ tuple(const GTEST_2_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_) {}
250
+ template <typename U0, typename U1>
251
+ tuple(const ::std::pair<U0, U1>& p) : f0_(p.first), f1_(p.second) {}
252
+
253
+ tuple& operator=(const tuple& t) { return CopyFrom(t); }
254
+
255
+ template <GTEST_2_TYPENAMES_(U)>
256
+ tuple& operator=(const GTEST_2_TUPLE_(U)& t) {
257
+ return CopyFrom(t);
258
+ }
259
+ template <typename U0, typename U1>
260
+ tuple& operator=(const ::std::pair<U0, U1>& p) {
261
+ f0_ = p.first;
262
+ f1_ = p.second;
263
+ return *this;
264
+ }
265
+
266
+ GTEST_DECLARE_TUPLE_AS_FRIEND_
267
+
268
+ template <GTEST_2_TYPENAMES_(U)>
269
+ tuple& CopyFrom(const GTEST_2_TUPLE_(U)& t) {
270
+ f0_ = t.f0_;
271
+ f1_ = t.f1_;
272
+ return *this;
273
+ }
274
+
275
+ T0 f0_;
276
+ T1 f1_;
277
+ };
278
+
279
+ template <GTEST_3_TYPENAMES_(T)>
280
+ class GTEST_3_TUPLE_(T) {
281
+ public:
282
+ template <int k> friend class gtest_internal::Get;
283
+
284
+ tuple() : f0_(), f1_(), f2_() {}
285
+
286
+ explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1,
287
+ GTEST_BY_REF_(T2) f2) : f0_(f0), f1_(f1), f2_(f2) {}
288
+
289
+ tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_) {}
290
+
291
+ template <GTEST_3_TYPENAMES_(U)>
292
+ tuple(const GTEST_3_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_) {}
293
+
294
+ tuple& operator=(const tuple& t) { return CopyFrom(t); }
295
+
296
+ template <GTEST_3_TYPENAMES_(U)>
297
+ tuple& operator=(const GTEST_3_TUPLE_(U)& t) {
298
+ return CopyFrom(t);
299
+ }
300
+
301
+ GTEST_DECLARE_TUPLE_AS_FRIEND_
302
+
303
+ template <GTEST_3_TYPENAMES_(U)>
304
+ tuple& CopyFrom(const GTEST_3_TUPLE_(U)& t) {
305
+ f0_ = t.f0_;
306
+ f1_ = t.f1_;
307
+ f2_ = t.f2_;
308
+ return *this;
309
+ }
310
+
311
+ T0 f0_;
312
+ T1 f1_;
313
+ T2 f2_;
314
+ };
315
+
316
+ template <GTEST_4_TYPENAMES_(T)>
317
+ class GTEST_4_TUPLE_(T) {
318
+ public:
319
+ template <int k> friend class gtest_internal::Get;
320
+
321
+ tuple() : f0_(), f1_(), f2_(), f3_() {}
322
+
323
+ explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1,
324
+ GTEST_BY_REF_(T2) f2, GTEST_BY_REF_(T3) f3) : f0_(f0), f1_(f1), f2_(f2),
325
+ f3_(f3) {}
326
+
327
+ tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), f3_(t.f3_) {}
328
+
329
+ template <GTEST_4_TYPENAMES_(U)>
330
+ tuple(const GTEST_4_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_),
331
+ f3_(t.f3_) {}
332
+
333
+ tuple& operator=(const tuple& t) { return CopyFrom(t); }
334
+
335
+ template <GTEST_4_TYPENAMES_(U)>
336
+ tuple& operator=(const GTEST_4_TUPLE_(U)& t) {
337
+ return CopyFrom(t);
338
+ }
339
+
340
+ GTEST_DECLARE_TUPLE_AS_FRIEND_
341
+
342
+ template <GTEST_4_TYPENAMES_(U)>
343
+ tuple& CopyFrom(const GTEST_4_TUPLE_(U)& t) {
344
+ f0_ = t.f0_;
345
+ f1_ = t.f1_;
346
+ f2_ = t.f2_;
347
+ f3_ = t.f3_;
348
+ return *this;
349
+ }
350
+
351
+ T0 f0_;
352
+ T1 f1_;
353
+ T2 f2_;
354
+ T3 f3_;
355
+ };
356
+
357
+ template <GTEST_5_TYPENAMES_(T)>
358
+ class GTEST_5_TUPLE_(T) {
359
+ public:
360
+ template <int k> friend class gtest_internal::Get;
361
+
362
+ tuple() : f0_(), f1_(), f2_(), f3_(), f4_() {}
363
+
364
+ explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1,
365
+ GTEST_BY_REF_(T2) f2, GTEST_BY_REF_(T3) f3,
366
+ GTEST_BY_REF_(T4) f4) : f0_(f0), f1_(f1), f2_(f2), f3_(f3), f4_(f4) {}
367
+
368
+ tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), f3_(t.f3_),
369
+ f4_(t.f4_) {}
370
+
371
+ template <GTEST_5_TYPENAMES_(U)>
372
+ tuple(const GTEST_5_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_),
373
+ f3_(t.f3_), f4_(t.f4_) {}
374
+
375
+ tuple& operator=(const tuple& t) { return CopyFrom(t); }
376
+
377
+ template <GTEST_5_TYPENAMES_(U)>
378
+ tuple& operator=(const GTEST_5_TUPLE_(U)& t) {
379
+ return CopyFrom(t);
380
+ }
381
+
382
+ GTEST_DECLARE_TUPLE_AS_FRIEND_
383
+
384
+ template <GTEST_5_TYPENAMES_(U)>
385
+ tuple& CopyFrom(const GTEST_5_TUPLE_(U)& t) {
386
+ f0_ = t.f0_;
387
+ f1_ = t.f1_;
388
+ f2_ = t.f2_;
389
+ f3_ = t.f3_;
390
+ f4_ = t.f4_;
391
+ return *this;
392
+ }
393
+
394
+ T0 f0_;
395
+ T1 f1_;
396
+ T2 f2_;
397
+ T3 f3_;
398
+ T4 f4_;
399
+ };
400
+
401
+ template <GTEST_6_TYPENAMES_(T)>
402
+ class GTEST_6_TUPLE_(T) {
403
+ public:
404
+ template <int k> friend class gtest_internal::Get;
405
+
406
+ tuple() : f0_(), f1_(), f2_(), f3_(), f4_(), f5_() {}
407
+
408
+ explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1,
409
+ GTEST_BY_REF_(T2) f2, GTEST_BY_REF_(T3) f3, GTEST_BY_REF_(T4) f4,
410
+ GTEST_BY_REF_(T5) f5) : f0_(f0), f1_(f1), f2_(f2), f3_(f3), f4_(f4),
411
+ f5_(f5) {}
412
+
413
+ tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), f3_(t.f3_),
414
+ f4_(t.f4_), f5_(t.f5_) {}
415
+
416
+ template <GTEST_6_TYPENAMES_(U)>
417
+ tuple(const GTEST_6_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_),
418
+ f3_(t.f3_), f4_(t.f4_), f5_(t.f5_) {}
419
+
420
+ tuple& operator=(const tuple& t) { return CopyFrom(t); }
421
+
422
+ template <GTEST_6_TYPENAMES_(U)>
423
+ tuple& operator=(const GTEST_6_TUPLE_(U)& t) {
424
+ return CopyFrom(t);
425
+ }
426
+
427
+ GTEST_DECLARE_TUPLE_AS_FRIEND_
428
+
429
+ template <GTEST_6_TYPENAMES_(U)>
430
+ tuple& CopyFrom(const GTEST_6_TUPLE_(U)& t) {
431
+ f0_ = t.f0_;
432
+ f1_ = t.f1_;
433
+ f2_ = t.f2_;
434
+ f3_ = t.f3_;
435
+ f4_ = t.f4_;
436
+ f5_ = t.f5_;
437
+ return *this;
438
+ }
439
+
440
+ T0 f0_;
441
+ T1 f1_;
442
+ T2 f2_;
443
+ T3 f3_;
444
+ T4 f4_;
445
+ T5 f5_;
446
+ };
447
+
448
+ template <GTEST_7_TYPENAMES_(T)>
449
+ class GTEST_7_TUPLE_(T) {
450
+ public:
451
+ template <int k> friend class gtest_internal::Get;
452
+
453
+ tuple() : f0_(), f1_(), f2_(), f3_(), f4_(), f5_(), f6_() {}
454
+
455
+ explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1,
456
+ GTEST_BY_REF_(T2) f2, GTEST_BY_REF_(T3) f3, GTEST_BY_REF_(T4) f4,
457
+ GTEST_BY_REF_(T5) f5, GTEST_BY_REF_(T6) f6) : f0_(f0), f1_(f1), f2_(f2),
458
+ f3_(f3), f4_(f4), f5_(f5), f6_(f6) {}
459
+
460
+ tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), f3_(t.f3_),
461
+ f4_(t.f4_), f5_(t.f5_), f6_(t.f6_) {}
462
+
463
+ template <GTEST_7_TYPENAMES_(U)>
464
+ tuple(const GTEST_7_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_),
465
+ f3_(t.f3_), f4_(t.f4_), f5_(t.f5_), f6_(t.f6_) {}
466
+
467
+ tuple& operator=(const tuple& t) { return CopyFrom(t); }
468
+
469
+ template <GTEST_7_TYPENAMES_(U)>
470
+ tuple& operator=(const GTEST_7_TUPLE_(U)& t) {
471
+ return CopyFrom(t);
472
+ }
473
+
474
+ GTEST_DECLARE_TUPLE_AS_FRIEND_
475
+
476
+ template <GTEST_7_TYPENAMES_(U)>
477
+ tuple& CopyFrom(const GTEST_7_TUPLE_(U)& t) {
478
+ f0_ = t.f0_;
479
+ f1_ = t.f1_;
480
+ f2_ = t.f2_;
481
+ f3_ = t.f3_;
482
+ f4_ = t.f4_;
483
+ f5_ = t.f5_;
484
+ f6_ = t.f6_;
485
+ return *this;
486
+ }
487
+
488
+ T0 f0_;
489
+ T1 f1_;
490
+ T2 f2_;
491
+ T3 f3_;
492
+ T4 f4_;
493
+ T5 f5_;
494
+ T6 f6_;
495
+ };
496
+
497
+ template <GTEST_8_TYPENAMES_(T)>
498
+ class GTEST_8_TUPLE_(T) {
499
+ public:
500
+ template <int k> friend class gtest_internal::Get;
501
+
502
+ tuple() : f0_(), f1_(), f2_(), f3_(), f4_(), f5_(), f6_(), f7_() {}
503
+
504
+ explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1,
505
+ GTEST_BY_REF_(T2) f2, GTEST_BY_REF_(T3) f3, GTEST_BY_REF_(T4) f4,
506
+ GTEST_BY_REF_(T5) f5, GTEST_BY_REF_(T6) f6,
507
+ GTEST_BY_REF_(T7) f7) : f0_(f0), f1_(f1), f2_(f2), f3_(f3), f4_(f4),
508
+ f5_(f5), f6_(f6), f7_(f7) {}
509
+
510
+ tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), f3_(t.f3_),
511
+ f4_(t.f4_), f5_(t.f5_), f6_(t.f6_), f7_(t.f7_) {}
512
+
513
+ template <GTEST_8_TYPENAMES_(U)>
514
+ tuple(const GTEST_8_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_),
515
+ f3_(t.f3_), f4_(t.f4_), f5_(t.f5_), f6_(t.f6_), f7_(t.f7_) {}
516
+
517
+ tuple& operator=(const tuple& t) { return CopyFrom(t); }
518
+
519
+ template <GTEST_8_TYPENAMES_(U)>
520
+ tuple& operator=(const GTEST_8_TUPLE_(U)& t) {
521
+ return CopyFrom(t);
522
+ }
523
+
524
+ GTEST_DECLARE_TUPLE_AS_FRIEND_
525
+
526
+ template <GTEST_8_TYPENAMES_(U)>
527
+ tuple& CopyFrom(const GTEST_8_TUPLE_(U)& t) {
528
+ f0_ = t.f0_;
529
+ f1_ = t.f1_;
530
+ f2_ = t.f2_;
531
+ f3_ = t.f3_;
532
+ f4_ = t.f4_;
533
+ f5_ = t.f5_;
534
+ f6_ = t.f6_;
535
+ f7_ = t.f7_;
536
+ return *this;
537
+ }
538
+
539
+ T0 f0_;
540
+ T1 f1_;
541
+ T2 f2_;
542
+ T3 f3_;
543
+ T4 f4_;
544
+ T5 f5_;
545
+ T6 f6_;
546
+ T7 f7_;
547
+ };
548
+
549
+ template <GTEST_9_TYPENAMES_(T)>
550
+ class GTEST_9_TUPLE_(T) {
551
+ public:
552
+ template <int k> friend class gtest_internal::Get;
553
+
554
+ tuple() : f0_(), f1_(), f2_(), f3_(), f4_(), f5_(), f6_(), f7_(), f8_() {}
555
+
556
+ explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1,
557
+ GTEST_BY_REF_(T2) f2, GTEST_BY_REF_(T3) f3, GTEST_BY_REF_(T4) f4,
558
+ GTEST_BY_REF_(T5) f5, GTEST_BY_REF_(T6) f6, GTEST_BY_REF_(T7) f7,
559
+ GTEST_BY_REF_(T8) f8) : f0_(f0), f1_(f1), f2_(f2), f3_(f3), f4_(f4),
560
+ f5_(f5), f6_(f6), f7_(f7), f8_(f8) {}
561
+
562
+ tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), f3_(t.f3_),
563
+ f4_(t.f4_), f5_(t.f5_), f6_(t.f6_), f7_(t.f7_), f8_(t.f8_) {}
564
+
565
+ template <GTEST_9_TYPENAMES_(U)>
566
+ tuple(const GTEST_9_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_),
567
+ f3_(t.f3_), f4_(t.f4_), f5_(t.f5_), f6_(t.f6_), f7_(t.f7_), f8_(t.f8_) {}
568
+
569
+ tuple& operator=(const tuple& t) { return CopyFrom(t); }
570
+
571
+ template <GTEST_9_TYPENAMES_(U)>
572
+ tuple& operator=(const GTEST_9_TUPLE_(U)& t) {
573
+ return CopyFrom(t);
574
+ }
575
+
576
+ GTEST_DECLARE_TUPLE_AS_FRIEND_
577
+
578
+ template <GTEST_9_TYPENAMES_(U)>
579
+ tuple& CopyFrom(const GTEST_9_TUPLE_(U)& t) {
580
+ f0_ = t.f0_;
581
+ f1_ = t.f1_;
582
+ f2_ = t.f2_;
583
+ f3_ = t.f3_;
584
+ f4_ = t.f4_;
585
+ f5_ = t.f5_;
586
+ f6_ = t.f6_;
587
+ f7_ = t.f7_;
588
+ f8_ = t.f8_;
589
+ return *this;
590
+ }
591
+
592
+ T0 f0_;
593
+ T1 f1_;
594
+ T2 f2_;
595
+ T3 f3_;
596
+ T4 f4_;
597
+ T5 f5_;
598
+ T6 f6_;
599
+ T7 f7_;
600
+ T8 f8_;
601
+ };
602
+
603
+ template <GTEST_10_TYPENAMES_(T)>
604
+ class tuple {
605
+ public:
606
+ template <int k> friend class gtest_internal::Get;
607
+
608
+ tuple() : f0_(), f1_(), f2_(), f3_(), f4_(), f5_(), f6_(), f7_(), f8_(),
609
+ f9_() {}
610
+
611
+ explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1,
612
+ GTEST_BY_REF_(T2) f2, GTEST_BY_REF_(T3) f3, GTEST_BY_REF_(T4) f4,
613
+ GTEST_BY_REF_(T5) f5, GTEST_BY_REF_(T6) f6, GTEST_BY_REF_(T7) f7,
614
+ GTEST_BY_REF_(T8) f8, GTEST_BY_REF_(T9) f9) : f0_(f0), f1_(f1), f2_(f2),
615
+ f3_(f3), f4_(f4), f5_(f5), f6_(f6), f7_(f7), f8_(f8), f9_(f9) {}
616
+
617
+ tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), f3_(t.f3_),
618
+ f4_(t.f4_), f5_(t.f5_), f6_(t.f6_), f7_(t.f7_), f8_(t.f8_), f9_(t.f9_) {}
619
+
620
+ template <GTEST_10_TYPENAMES_(U)>
621
+ tuple(const GTEST_10_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_),
622
+ f3_(t.f3_), f4_(t.f4_), f5_(t.f5_), f6_(t.f6_), f7_(t.f7_), f8_(t.f8_),
623
+ f9_(t.f9_) {}
624
+
625
+ tuple& operator=(const tuple& t) { return CopyFrom(t); }
626
+
627
+ template <GTEST_10_TYPENAMES_(U)>
628
+ tuple& operator=(const GTEST_10_TUPLE_(U)& t) {
629
+ return CopyFrom(t);
630
+ }
631
+
632
+ GTEST_DECLARE_TUPLE_AS_FRIEND_
633
+
634
+ template <GTEST_10_TYPENAMES_(U)>
635
+ tuple& CopyFrom(const GTEST_10_TUPLE_(U)& t) {
636
+ f0_ = t.f0_;
637
+ f1_ = t.f1_;
638
+ f2_ = t.f2_;
639
+ f3_ = t.f3_;
640
+ f4_ = t.f4_;
641
+ f5_ = t.f5_;
642
+ f6_ = t.f6_;
643
+ f7_ = t.f7_;
644
+ f8_ = t.f8_;
645
+ f9_ = t.f9_;
646
+ return *this;
647
+ }
648
+
649
+ T0 f0_;
650
+ T1 f1_;
651
+ T2 f2_;
652
+ T3 f3_;
653
+ T4 f4_;
654
+ T5 f5_;
655
+ T6 f6_;
656
+ T7 f7_;
657
+ T8 f8_;
658
+ T9 f9_;
659
+ };
660
+
661
+ // 6.1.3.2 Tuple creation functions.
662
+
663
+ // Known limitations: we don't support passing an
664
+ // std::tr1::reference_wrapper<T> to make_tuple(). And we don't
665
+ // implement tie().
666
+
667
+ inline tuple<> make_tuple() { return tuple<>(); }
668
+
669
+ template <GTEST_1_TYPENAMES_(T)>
670
+ inline GTEST_1_TUPLE_(T) make_tuple(const T0& f0) {
671
+ return GTEST_1_TUPLE_(T)(f0);
672
+ }
673
+
674
+ template <GTEST_2_TYPENAMES_(T)>
675
+ inline GTEST_2_TUPLE_(T) make_tuple(const T0& f0, const T1& f1) {
676
+ return GTEST_2_TUPLE_(T)(f0, f1);
677
+ }
678
+
679
+ template <GTEST_3_TYPENAMES_(T)>
680
+ inline GTEST_3_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2) {
681
+ return GTEST_3_TUPLE_(T)(f0, f1, f2);
682
+ }
683
+
684
+ template <GTEST_4_TYPENAMES_(T)>
685
+ inline GTEST_4_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2,
686
+ const T3& f3) {
687
+ return GTEST_4_TUPLE_(T)(f0, f1, f2, f3);
688
+ }
689
+
690
+ template <GTEST_5_TYPENAMES_(T)>
691
+ inline GTEST_5_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2,
692
+ const T3& f3, const T4& f4) {
693
+ return GTEST_5_TUPLE_(T)(f0, f1, f2, f3, f4);
694
+ }
695
+
696
+ template <GTEST_6_TYPENAMES_(T)>
697
+ inline GTEST_6_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2,
698
+ const T3& f3, const T4& f4, const T5& f5) {
699
+ return GTEST_6_TUPLE_(T)(f0, f1, f2, f3, f4, f5);
700
+ }
701
+
702
+ template <GTEST_7_TYPENAMES_(T)>
703
+ inline GTEST_7_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2,
704
+ const T3& f3, const T4& f4, const T5& f5, const T6& f6) {
705
+ return GTEST_7_TUPLE_(T)(f0, f1, f2, f3, f4, f5, f6);
706
+ }
707
+
708
+ template <GTEST_8_TYPENAMES_(T)>
709
+ inline GTEST_8_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2,
710
+ const T3& f3, const T4& f4, const T5& f5, const T6& f6, const T7& f7) {
711
+ return GTEST_8_TUPLE_(T)(f0, f1, f2, f3, f4, f5, f6, f7);
712
+ }
713
+
714
+ template <GTEST_9_TYPENAMES_(T)>
715
+ inline GTEST_9_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2,
716
+ const T3& f3, const T4& f4, const T5& f5, const T6& f6, const T7& f7,
717
+ const T8& f8) {
718
+ return GTEST_9_TUPLE_(T)(f0, f1, f2, f3, f4, f5, f6, f7, f8);
719
+ }
720
+
721
+ template <GTEST_10_TYPENAMES_(T)>
722
+ inline GTEST_10_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2,
723
+ const T3& f3, const T4& f4, const T5& f5, const T6& f6, const T7& f7,
724
+ const T8& f8, const T9& f9) {
725
+ return GTEST_10_TUPLE_(T)(f0, f1, f2, f3, f4, f5, f6, f7, f8, f9);
726
+ }
727
+
728
+ // 6.1.3.3 Tuple helper classes.
729
+
730
+ template <typename Tuple> struct tuple_size;
731
+
732
+ template <GTEST_0_TYPENAMES_(T)>
733
+ struct tuple_size<GTEST_0_TUPLE_(T) > {
734
+ static const int value = 0;
735
+ };
736
+
737
+ template <GTEST_1_TYPENAMES_(T)>
738
+ struct tuple_size<GTEST_1_TUPLE_(T) > {
739
+ static const int value = 1;
740
+ };
741
+
742
+ template <GTEST_2_TYPENAMES_(T)>
743
+ struct tuple_size<GTEST_2_TUPLE_(T) > {
744
+ static const int value = 2;
745
+ };
746
+
747
+ template <GTEST_3_TYPENAMES_(T)>
748
+ struct tuple_size<GTEST_3_TUPLE_(T) > {
749
+ static const int value = 3;
750
+ };
751
+
752
+ template <GTEST_4_TYPENAMES_(T)>
753
+ struct tuple_size<GTEST_4_TUPLE_(T) > {
754
+ static const int value = 4;
755
+ };
756
+
757
+ template <GTEST_5_TYPENAMES_(T)>
758
+ struct tuple_size<GTEST_5_TUPLE_(T) > {
759
+ static const int value = 5;
760
+ };
761
+
762
+ template <GTEST_6_TYPENAMES_(T)>
763
+ struct tuple_size<GTEST_6_TUPLE_(T) > {
764
+ static const int value = 6;
765
+ };
766
+
767
+ template <GTEST_7_TYPENAMES_(T)>
768
+ struct tuple_size<GTEST_7_TUPLE_(T) > {
769
+ static const int value = 7;
770
+ };
771
+
772
+ template <GTEST_8_TYPENAMES_(T)>
773
+ struct tuple_size<GTEST_8_TUPLE_(T) > {
774
+ static const int value = 8;
775
+ };
776
+
777
+ template <GTEST_9_TYPENAMES_(T)>
778
+ struct tuple_size<GTEST_9_TUPLE_(T) > {
779
+ static const int value = 9;
780
+ };
781
+
782
+ template <GTEST_10_TYPENAMES_(T)>
783
+ struct tuple_size<GTEST_10_TUPLE_(T) > {
784
+ static const int value = 10;
785
+ };
786
+
787
+ template <int k, class Tuple>
788
+ struct tuple_element {
789
+ typedef typename gtest_internal::TupleElement<
790
+ k < (tuple_size<Tuple>::value), k, Tuple>::type type;
791
+ };
792
+
793
+ #define GTEST_TUPLE_ELEMENT_(k, Tuple) typename tuple_element<k, Tuple >::type
794
+
795
+ // 6.1.3.4 Element access.
796
+
797
+ namespace gtest_internal {
798
+
799
+ template <>
800
+ class Get<0> {
801
+ public:
802
+ template <class Tuple>
803
+ static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(0, Tuple))
804
+ Field(Tuple& t) { return t.f0_; } // NOLINT
805
+
806
+ template <class Tuple>
807
+ static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(0, Tuple))
808
+ ConstField(const Tuple& t) { return t.f0_; }
809
+ };
810
+
811
+ template <>
812
+ class Get<1> {
813
+ public:
814
+ template <class Tuple>
815
+ static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(1, Tuple))
816
+ Field(Tuple& t) { return t.f1_; } // NOLINT
817
+
818
+ template <class Tuple>
819
+ static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(1, Tuple))
820
+ ConstField(const Tuple& t) { return t.f1_; }
821
+ };
822
+
823
+ template <>
824
+ class Get<2> {
825
+ public:
826
+ template <class Tuple>
827
+ static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(2, Tuple))
828
+ Field(Tuple& t) { return t.f2_; } // NOLINT
829
+
830
+ template <class Tuple>
831
+ static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(2, Tuple))
832
+ ConstField(const Tuple& t) { return t.f2_; }
833
+ };
834
+
835
+ template <>
836
+ class Get<3> {
837
+ public:
838
+ template <class Tuple>
839
+ static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(3, Tuple))
840
+ Field(Tuple& t) { return t.f3_; } // NOLINT
841
+
842
+ template <class Tuple>
843
+ static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(3, Tuple))
844
+ ConstField(const Tuple& t) { return t.f3_; }
845
+ };
846
+
847
+ template <>
848
+ class Get<4> {
849
+ public:
850
+ template <class Tuple>
851
+ static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(4, Tuple))
852
+ Field(Tuple& t) { return t.f4_; } // NOLINT
853
+
854
+ template <class Tuple>
855
+ static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(4, Tuple))
856
+ ConstField(const Tuple& t) { return t.f4_; }
857
+ };
858
+
859
+ template <>
860
+ class Get<5> {
861
+ public:
862
+ template <class Tuple>
863
+ static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(5, Tuple))
864
+ Field(Tuple& t) { return t.f5_; } // NOLINT
865
+
866
+ template <class Tuple>
867
+ static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(5, Tuple))
868
+ ConstField(const Tuple& t) { return t.f5_; }
869
+ };
870
+
871
+ template <>
872
+ class Get<6> {
873
+ public:
874
+ template <class Tuple>
875
+ static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(6, Tuple))
876
+ Field(Tuple& t) { return t.f6_; } // NOLINT
877
+
878
+ template <class Tuple>
879
+ static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(6, Tuple))
880
+ ConstField(const Tuple& t) { return t.f6_; }
881
+ };
882
+
883
+ template <>
884
+ class Get<7> {
885
+ public:
886
+ template <class Tuple>
887
+ static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(7, Tuple))
888
+ Field(Tuple& t) { return t.f7_; } // NOLINT
889
+
890
+ template <class Tuple>
891
+ static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(7, Tuple))
892
+ ConstField(const Tuple& t) { return t.f7_; }
893
+ };
894
+
895
+ template <>
896
+ class Get<8> {
897
+ public:
898
+ template <class Tuple>
899
+ static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(8, Tuple))
900
+ Field(Tuple& t) { return t.f8_; } // NOLINT
901
+
902
+ template <class Tuple>
903
+ static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(8, Tuple))
904
+ ConstField(const Tuple& t) { return t.f8_; }
905
+ };
906
+
907
+ template <>
908
+ class Get<9> {
909
+ public:
910
+ template <class Tuple>
911
+ static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(9, Tuple))
912
+ Field(Tuple& t) { return t.f9_; } // NOLINT
913
+
914
+ template <class Tuple>
915
+ static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(9, Tuple))
916
+ ConstField(const Tuple& t) { return t.f9_; }
917
+ };
918
+
919
+ } // namespace gtest_internal
920
+
921
+ template <int k, GTEST_10_TYPENAMES_(T)>
922
+ GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(k, GTEST_10_TUPLE_(T)))
923
+ get(GTEST_10_TUPLE_(T)& t) {
924
+ return gtest_internal::Get<k>::Field(t);
925
+ }
926
+
927
+ template <int k, GTEST_10_TYPENAMES_(T)>
928
+ GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(k, GTEST_10_TUPLE_(T)))
929
+ get(const GTEST_10_TUPLE_(T)& t) {
930
+ return gtest_internal::Get<k>::ConstField(t);
931
+ }
932
+
933
+ // 6.1.3.5 Relational operators
934
+
935
+ // We only implement == and !=, as we don't have a need for the rest yet.
936
+
937
+ namespace gtest_internal {
938
+
939
+ // SameSizeTuplePrefixComparator<k, k>::Eq(t1, t2) returns true if the
940
+ // first k fields of t1 equals the first k fields of t2.
941
+ // SameSizeTuplePrefixComparator(k1, k2) would be a compiler error if
942
+ // k1 != k2.
943
+ template <int kSize1, int kSize2>
944
+ struct SameSizeTuplePrefixComparator;
945
+
946
+ template <>
947
+ struct SameSizeTuplePrefixComparator<0, 0> {
948
+ template <class Tuple1, class Tuple2>
949
+ static bool Eq(const Tuple1& /* t1 */, const Tuple2& /* t2 */) {
950
+ return true;
951
+ }
952
+ };
953
+
954
+ template <int k>
955
+ struct SameSizeTuplePrefixComparator<k, k> {
956
+ template <class Tuple1, class Tuple2>
957
+ static bool Eq(const Tuple1& t1, const Tuple2& t2) {
958
+ return SameSizeTuplePrefixComparator<k - 1, k - 1>::Eq(t1, t2) &&
959
+ ::std::tr1::get<k - 1>(t1) == ::std::tr1::get<k - 1>(t2);
960
+ }
961
+ };
962
+
963
+ } // namespace gtest_internal
964
+
965
+ template <GTEST_10_TYPENAMES_(T), GTEST_10_TYPENAMES_(U)>
966
+ inline bool operator==(const GTEST_10_TUPLE_(T)& t,
967
+ const GTEST_10_TUPLE_(U)& u) {
968
+ return gtest_internal::SameSizeTuplePrefixComparator<
969
+ tuple_size<GTEST_10_TUPLE_(T) >::value,
970
+ tuple_size<GTEST_10_TUPLE_(U) >::value>::Eq(t, u);
971
+ }
972
+
973
+ template <GTEST_10_TYPENAMES_(T), GTEST_10_TYPENAMES_(U)>
974
+ inline bool operator!=(const GTEST_10_TUPLE_(T)& t,
975
+ const GTEST_10_TUPLE_(U)& u) { return !(t == u); }
976
+
977
+ // 6.1.4 Pairs.
978
+ // Unimplemented.
979
+
980
+ } // namespace tr1
981
+ } // namespace std
982
+
983
+ #undef GTEST_0_TUPLE_
984
+ #undef GTEST_1_TUPLE_
985
+ #undef GTEST_2_TUPLE_
986
+ #undef GTEST_3_TUPLE_
987
+ #undef GTEST_4_TUPLE_
988
+ #undef GTEST_5_TUPLE_
989
+ #undef GTEST_6_TUPLE_
990
+ #undef GTEST_7_TUPLE_
991
+ #undef GTEST_8_TUPLE_
992
+ #undef GTEST_9_TUPLE_
993
+ #undef GTEST_10_TUPLE_
994
+
995
+ #undef GTEST_0_TYPENAMES_
996
+ #undef GTEST_1_TYPENAMES_
997
+ #undef GTEST_2_TYPENAMES_
998
+ #undef GTEST_3_TYPENAMES_
999
+ #undef GTEST_4_TYPENAMES_
1000
+ #undef GTEST_5_TYPENAMES_
1001
+ #undef GTEST_6_TYPENAMES_
1002
+ #undef GTEST_7_TYPENAMES_
1003
+ #undef GTEST_8_TYPENAMES_
1004
+ #undef GTEST_9_TYPENAMES_
1005
+ #undef GTEST_10_TYPENAMES_
1006
+
1007
+ #undef GTEST_DECLARE_TUPLE_AS_FRIEND_
1008
+ #undef GTEST_BY_REF_
1009
+ #undef GTEST_ADD_REF_
1010
+ #undef GTEST_TUPLE_ELEMENT_
1011
+
1012
+ #endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TUPLE_H_