rn-leveldb 3.11.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 (595) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +92 -0
  3. package/android/.project +34 -0
  4. package/android/.settings/org.eclipse.buildship.core.prefs +13 -0
  5. package/android/CMakeLists.txt +69 -0
  6. package/android/build.gradle +125 -0
  7. package/android/cpp-adapter.cpp +19 -0
  8. package/android/gradle.properties +6 -0
  9. package/android/src/main/AndroidManifest.xml +4 -0
  10. package/android/src/main/java/com/reactnativeleveldb/LeveldbModule.java +57 -0
  11. package/android/src/main/java/com/reactnativeleveldb/LeveldbPackage.java +28 -0
  12. package/cpp/leveldb/.appveyor.yml +36 -0
  13. package/cpp/leveldb/.clang-format +18 -0
  14. package/cpp/leveldb/.travis.yml +88 -0
  15. package/cpp/leveldb/AUTHORS +12 -0
  16. package/cpp/leveldb/CMakeLists.txt +495 -0
  17. package/cpp/leveldb/CONTRIBUTING.md +36 -0
  18. package/cpp/leveldb/LICENSE +27 -0
  19. package/cpp/leveldb/NEWS +17 -0
  20. package/cpp/leveldb/README.md +231 -0
  21. package/cpp/leveldb/TODO +14 -0
  22. package/cpp/leveldb/benchmarks/db_bench.cc +990 -0
  23. package/cpp/leveldb/benchmarks/db_bench_sqlite3.cc +726 -0
  24. package/cpp/leveldb/benchmarks/db_bench_tree_db.cc +531 -0
  25. package/cpp/leveldb/cmake/leveldbConfig.cmake.in +9 -0
  26. package/cpp/leveldb/db/autocompact_test.cc +115 -0
  27. package/cpp/leveldb/db/builder.cc +82 -0
  28. package/cpp/leveldb/db/builder.h +30 -0
  29. package/cpp/leveldb/db/c.cc +562 -0
  30. package/cpp/leveldb/db/c_test.c +384 -0
  31. package/cpp/leveldb/db/corruption_test.cc +367 -0
  32. package/cpp/leveldb/db/db_impl.cc +1554 -0
  33. package/cpp/leveldb/db/db_impl.h +217 -0
  34. package/cpp/leveldb/db/db_iter.cc +318 -0
  35. package/cpp/leveldb/db/db_iter.h +26 -0
  36. package/cpp/leveldb/db/db_test.cc +2305 -0
  37. package/cpp/leveldb/db/dbformat.cc +136 -0
  38. package/cpp/leveldb/db/dbformat.h +224 -0
  39. package/cpp/leveldb/db/dbformat_test.cc +133 -0
  40. package/cpp/leveldb/db/dumpfile.cc +232 -0
  41. package/cpp/leveldb/db/fault_injection_test.cc +555 -0
  42. package/cpp/leveldb/db/filename.cc +141 -0
  43. package/cpp/leveldb/db/filename.h +83 -0
  44. package/cpp/leveldb/db/filename_test.cc +132 -0
  45. package/cpp/leveldb/db/leveldbutil.cc +64 -0
  46. package/cpp/leveldb/db/log_format.h +35 -0
  47. package/cpp/leveldb/db/log_reader.cc +274 -0
  48. package/cpp/leveldb/db/log_reader.h +112 -0
  49. package/cpp/leveldb/db/log_test.cc +563 -0
  50. package/cpp/leveldb/db/log_writer.cc +111 -0
  51. package/cpp/leveldb/db/log_writer.h +54 -0
  52. package/cpp/leveldb/db/memtable.cc +137 -0
  53. package/cpp/leveldb/db/memtable.h +87 -0
  54. package/cpp/leveldb/db/recovery_test.cc +339 -0
  55. package/cpp/leveldb/db/repair.cc +451 -0
  56. package/cpp/leveldb/db/skiplist.h +382 -0
  57. package/cpp/leveldb/db/skiplist_test.cc +373 -0
  58. package/cpp/leveldb/db/snapshot.h +95 -0
  59. package/cpp/leveldb/db/table_cache.cc +120 -0
  60. package/cpp/leveldb/db/table_cache.h +57 -0
  61. package/cpp/leveldb/db/version_edit.cc +257 -0
  62. package/cpp/leveldb/db/version_edit.h +106 -0
  63. package/cpp/leveldb/db/version_edit_test.cc +46 -0
  64. package/cpp/leveldb/db/version_set.cc +1562 -0
  65. package/cpp/leveldb/db/version_set.h +393 -0
  66. package/cpp/leveldb/db/version_set_test.cc +336 -0
  67. package/cpp/leveldb/db/write_batch.cc +150 -0
  68. package/cpp/leveldb/db/write_batch_internal.h +45 -0
  69. package/cpp/leveldb/db/write_batch_test.cc +137 -0
  70. package/cpp/leveldb/doc/benchmark.html +459 -0
  71. package/cpp/leveldb/doc/impl.md +172 -0
  72. package/cpp/leveldb/doc/index.md +523 -0
  73. package/cpp/leveldb/doc/log_format.md +75 -0
  74. package/cpp/leveldb/doc/table_format.md +107 -0
  75. package/cpp/leveldb/helpers/memenv/memenv.cc +390 -0
  76. package/cpp/leveldb/helpers/memenv/memenv.h +22 -0
  77. package/cpp/leveldb/helpers/memenv/memenv_test.cc +264 -0
  78. package/cpp/leveldb/include/leveldb/c.h +270 -0
  79. package/cpp/leveldb/include/leveldb/cache.h +111 -0
  80. package/cpp/leveldb/include/leveldb/comparator.h +64 -0
  81. package/cpp/leveldb/include/leveldb/db.h +167 -0
  82. package/cpp/leveldb/include/leveldb/dumpfile.h +28 -0
  83. package/cpp/leveldb/include/leveldb/env.h +417 -0
  84. package/cpp/leveldb/include/leveldb/export.h +33 -0
  85. package/cpp/leveldb/include/leveldb/filter_policy.h +72 -0
  86. package/cpp/leveldb/include/leveldb/iterator.h +112 -0
  87. package/cpp/leveldb/include/leveldb/options.h +187 -0
  88. package/cpp/leveldb/include/leveldb/slice.h +114 -0
  89. package/cpp/leveldb/include/leveldb/status.h +122 -0
  90. package/cpp/leveldb/include/leveldb/table.h +84 -0
  91. package/cpp/leveldb/include/leveldb/table_builder.h +93 -0
  92. package/cpp/leveldb/include/leveldb/write_batch.h +83 -0
  93. package/cpp/leveldb/issues/issue178_test.cc +90 -0
  94. package/cpp/leveldb/issues/issue200_test.cc +59 -0
  95. package/cpp/leveldb/issues/issue320_test.cc +131 -0
  96. package/cpp/leveldb/port/README.md +10 -0
  97. package/cpp/leveldb/port/port.h +19 -0
  98. package/cpp/leveldb/port/port_config.h.in +33 -0
  99. package/cpp/leveldb/port/port_example.h +100 -0
  100. package/cpp/leveldb/port/port_stdcxx.h +151 -0
  101. package/cpp/leveldb/port/thread_annotations.h +108 -0
  102. package/cpp/leveldb/table/block.cc +267 -0
  103. package/cpp/leveldb/table/block.h +44 -0
  104. package/cpp/leveldb/table/block_builder.cc +107 -0
  105. package/cpp/leveldb/table/block_builder.h +54 -0
  106. package/cpp/leveldb/table/filter_block.cc +106 -0
  107. package/cpp/leveldb/table/filter_block.h +68 -0
  108. package/cpp/leveldb/table/filter_block_test.cc +127 -0
  109. package/cpp/leveldb/table/format.cc +141 -0
  110. package/cpp/leveldb/table/format.h +99 -0
  111. package/cpp/leveldb/table/iterator.cc +76 -0
  112. package/cpp/leveldb/table/iterator_wrapper.h +92 -0
  113. package/cpp/leveldb/table/merger.cc +191 -0
  114. package/cpp/leveldb/table/merger.h +26 -0
  115. package/cpp/leveldb/table/table.cc +271 -0
  116. package/cpp/leveldb/table/table_builder.cc +265 -0
  117. package/cpp/leveldb/table/table_test.cc +834 -0
  118. package/cpp/leveldb/table/two_level_iterator.cc +171 -0
  119. package/cpp/leveldb/table/two_level_iterator.h +31 -0
  120. package/cpp/leveldb/third_party/benchmark/.clang-format +5 -0
  121. package/cpp/leveldb/third_party/benchmark/.github/ISSUE_TEMPLATE/bug_report.md +32 -0
  122. package/cpp/leveldb/third_party/benchmark/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  123. package/cpp/leveldb/third_party/benchmark/.github/workflows/build-and-test.yml +38 -0
  124. package/cpp/leveldb/third_party/benchmark/.github/workflows/pylint.yml +26 -0
  125. package/cpp/leveldb/third_party/benchmark/.github/workflows/test_bindings.yml +24 -0
  126. package/cpp/leveldb/third_party/benchmark/.travis-libcxx-setup.sh +28 -0
  127. package/cpp/leveldb/third_party/benchmark/.travis.yml +231 -0
  128. package/cpp/leveldb/third_party/benchmark/.ycm_extra_conf.py +115 -0
  129. package/cpp/leveldb/third_party/benchmark/AUTHORS +58 -0
  130. package/cpp/leveldb/third_party/benchmark/BUILD.bazel +44 -0
  131. package/cpp/leveldb/third_party/benchmark/CMakeLists.txt +287 -0
  132. package/cpp/leveldb/third_party/benchmark/CONTRIBUTING.md +58 -0
  133. package/cpp/leveldb/third_party/benchmark/CONTRIBUTORS +83 -0
  134. package/cpp/leveldb/third_party/benchmark/LICENSE +202 -0
  135. package/cpp/leveldb/third_party/benchmark/README.md +1323 -0
  136. package/cpp/leveldb/third_party/benchmark/WORKSPACE +51 -0
  137. package/cpp/leveldb/third_party/benchmark/_config.yml +1 -0
  138. package/cpp/leveldb/third_party/benchmark/appveyor.yml +50 -0
  139. package/cpp/leveldb/third_party/benchmark/bindings/python/BUILD +3 -0
  140. package/cpp/leveldb/third_party/benchmark/bindings/python/build_defs.bzl +25 -0
  141. package/cpp/leveldb/third_party/benchmark/bindings/python/google_benchmark/BUILD +38 -0
  142. package/cpp/leveldb/third_party/benchmark/bindings/python/google_benchmark/__init__.py +156 -0
  143. package/cpp/leveldb/third_party/benchmark/bindings/python/google_benchmark/benchmark.cc +180 -0
  144. package/cpp/leveldb/third_party/benchmark/bindings/python/google_benchmark/example.py +136 -0
  145. package/cpp/leveldb/third_party/benchmark/bindings/python/pybind11.BUILD +20 -0
  146. package/cpp/leveldb/third_party/benchmark/bindings/python/python_headers.BUILD +6 -0
  147. package/cpp/leveldb/third_party/benchmark/bindings/python/requirements.txt +2 -0
  148. package/cpp/leveldb/third_party/benchmark/cmake/AddCXXCompilerFlag.cmake +74 -0
  149. package/cpp/leveldb/third_party/benchmark/cmake/CXXFeatureCheck.cmake +69 -0
  150. package/cpp/leveldb/third_party/benchmark/cmake/Config.cmake.in +1 -0
  151. package/cpp/leveldb/third_party/benchmark/cmake/GetGitVersion.cmake +54 -0
  152. package/cpp/leveldb/third_party/benchmark/cmake/GoogleTest.cmake +41 -0
  153. package/cpp/leveldb/third_party/benchmark/cmake/GoogleTest.cmake.in +58 -0
  154. package/cpp/leveldb/third_party/benchmark/cmake/benchmark.pc.in +12 -0
  155. package/cpp/leveldb/third_party/benchmark/cmake/gnu_posix_regex.cpp +12 -0
  156. package/cpp/leveldb/third_party/benchmark/cmake/llvm-toolchain.cmake +8 -0
  157. package/cpp/leveldb/third_party/benchmark/cmake/posix_regex.cpp +14 -0
  158. package/cpp/leveldb/third_party/benchmark/cmake/split_list.cmake +3 -0
  159. package/cpp/leveldb/third_party/benchmark/cmake/std_regex.cpp +10 -0
  160. package/cpp/leveldb/third_party/benchmark/cmake/steady_clock.cpp +7 -0
  161. package/cpp/leveldb/third_party/benchmark/cmake/thread_safety_attributes.cpp +4 -0
  162. package/cpp/leveldb/third_party/benchmark/conan/CMakeLists.txt +7 -0
  163. package/cpp/leveldb/third_party/benchmark/conan/test_package/CMakeLists.txt +10 -0
  164. package/cpp/leveldb/third_party/benchmark/conan/test_package/conanfile.py +19 -0
  165. package/cpp/leveldb/third_party/benchmark/conan/test_package/test_package.cpp +18 -0
  166. package/cpp/leveldb/third_party/benchmark/conanfile.py +79 -0
  167. package/cpp/leveldb/third_party/benchmark/dependencies.md +18 -0
  168. package/cpp/leveldb/third_party/benchmark/docs/AssemblyTests.md +147 -0
  169. package/cpp/leveldb/third_party/benchmark/docs/_config.yml +1 -0
  170. package/cpp/leveldb/third_party/benchmark/docs/releasing.md +16 -0
  171. package/cpp/leveldb/third_party/benchmark/docs/tools.md +203 -0
  172. package/cpp/leveldb/third_party/benchmark/include/benchmark/benchmark.h +1604 -0
  173. package/cpp/leveldb/third_party/benchmark/requirements.txt +2 -0
  174. package/cpp/leveldb/third_party/benchmark/setup.py +140 -0
  175. package/cpp/leveldb/third_party/benchmark/src/CMakeLists.txt +114 -0
  176. package/cpp/leveldb/third_party/benchmark/src/arraysize.h +33 -0
  177. package/cpp/leveldb/third_party/benchmark/src/benchmark.cc +499 -0
  178. package/cpp/leveldb/third_party/benchmark/src/benchmark_api_internal.cc +15 -0
  179. package/cpp/leveldb/third_party/benchmark/src/benchmark_api_internal.h +53 -0
  180. package/cpp/leveldb/third_party/benchmark/src/benchmark_main.cc +17 -0
  181. package/cpp/leveldb/third_party/benchmark/src/benchmark_name.cc +58 -0
  182. package/cpp/leveldb/third_party/benchmark/src/benchmark_register.cc +515 -0
  183. package/cpp/leveldb/third_party/benchmark/src/benchmark_register.h +108 -0
  184. package/cpp/leveldb/third_party/benchmark/src/benchmark_runner.cc +362 -0
  185. package/cpp/leveldb/third_party/benchmark/src/benchmark_runner.h +51 -0
  186. package/cpp/leveldb/third_party/benchmark/src/check.h +82 -0
  187. package/cpp/leveldb/third_party/benchmark/src/colorprint.cc +188 -0
  188. package/cpp/leveldb/third_party/benchmark/src/colorprint.h +33 -0
  189. package/cpp/leveldb/third_party/benchmark/src/commandlineflags.cc +228 -0
  190. package/cpp/leveldb/third_party/benchmark/src/commandlineflags.h +103 -0
  191. package/cpp/leveldb/third_party/benchmark/src/complexity.cc +238 -0
  192. package/cpp/leveldb/third_party/benchmark/src/complexity.h +55 -0
  193. package/cpp/leveldb/third_party/benchmark/src/console_reporter.cc +177 -0
  194. package/cpp/leveldb/third_party/benchmark/src/counter.cc +80 -0
  195. package/cpp/leveldb/third_party/benchmark/src/counter.h +32 -0
  196. package/cpp/leveldb/third_party/benchmark/src/csv_reporter.cc +154 -0
  197. package/cpp/leveldb/third_party/benchmark/src/cycleclock.h +211 -0
  198. package/cpp/leveldb/third_party/benchmark/src/internal_macros.h +102 -0
  199. package/cpp/leveldb/third_party/benchmark/src/json_reporter.cc +255 -0
  200. package/cpp/leveldb/third_party/benchmark/src/log.h +74 -0
  201. package/cpp/leveldb/third_party/benchmark/src/mutex.h +155 -0
  202. package/cpp/leveldb/third_party/benchmark/src/re.h +158 -0
  203. package/cpp/leveldb/third_party/benchmark/src/reporter.cc +105 -0
  204. package/cpp/leveldb/third_party/benchmark/src/sleep.cc +67 -0
  205. package/cpp/leveldb/third_party/benchmark/src/sleep.h +15 -0
  206. package/cpp/leveldb/third_party/benchmark/src/statistics.cc +193 -0
  207. package/cpp/leveldb/third_party/benchmark/src/statistics.h +37 -0
  208. package/cpp/leveldb/third_party/benchmark/src/string_util.cc +255 -0
  209. package/cpp/leveldb/third_party/benchmark/src/string_util.h +59 -0
  210. package/cpp/leveldb/third_party/benchmark/src/sysinfo.cc +716 -0
  211. package/cpp/leveldb/third_party/benchmark/src/thread_manager.h +64 -0
  212. package/cpp/leveldb/third_party/benchmark/src/thread_timer.h +86 -0
  213. package/cpp/leveldb/third_party/benchmark/src/timers.cc +245 -0
  214. package/cpp/leveldb/third_party/benchmark/src/timers.h +48 -0
  215. package/cpp/leveldb/third_party/benchmark/test/AssemblyTests.cmake +46 -0
  216. package/cpp/leveldb/third_party/benchmark/test/BUILD +73 -0
  217. package/cpp/leveldb/third_party/benchmark/test/CMakeLists.txt +263 -0
  218. package/cpp/leveldb/third_party/benchmark/test/args_product_test.cc +77 -0
  219. package/cpp/leveldb/third_party/benchmark/test/basic_test.cc +136 -0
  220. package/cpp/leveldb/third_party/benchmark/test/benchmark_gtest.cc +134 -0
  221. package/cpp/leveldb/third_party/benchmark/test/benchmark_name_gtest.cc +74 -0
  222. package/cpp/leveldb/third_party/benchmark/test/benchmark_test.cc +245 -0
  223. package/cpp/leveldb/third_party/benchmark/test/clobber_memory_assembly_test.cc +64 -0
  224. package/cpp/leveldb/third_party/benchmark/test/commandlineflags_gtest.cc +201 -0
  225. package/cpp/leveldb/third_party/benchmark/test/complexity_test.cc +213 -0
  226. package/cpp/leveldb/third_party/benchmark/test/cxx03_test.cc +63 -0
  227. package/cpp/leveldb/third_party/benchmark/test/diagnostics_test.cc +80 -0
  228. package/cpp/leveldb/third_party/benchmark/test/display_aggregates_only_test.cc +43 -0
  229. package/cpp/leveldb/third_party/benchmark/test/donotoptimize_assembly_test.cc +163 -0
  230. package/cpp/leveldb/third_party/benchmark/test/donotoptimize_test.cc +52 -0
  231. package/cpp/leveldb/third_party/benchmark/test/filter_test.cc +104 -0
  232. package/cpp/leveldb/third_party/benchmark/test/fixture_test.cc +51 -0
  233. package/cpp/leveldb/third_party/benchmark/test/internal_threading_test.cc +184 -0
  234. package/cpp/leveldb/third_party/benchmark/test/link_main_test.cc +8 -0
  235. package/cpp/leveldb/third_party/benchmark/test/map_test.cc +57 -0
  236. package/cpp/leveldb/third_party/benchmark/test/memory_manager_test.cc +44 -0
  237. package/cpp/leveldb/third_party/benchmark/test/multiple_ranges_test.cc +96 -0
  238. package/cpp/leveldb/third_party/benchmark/test/options_test.cc +75 -0
  239. package/cpp/leveldb/third_party/benchmark/test/output_test.h +213 -0
  240. package/cpp/leveldb/third_party/benchmark/test/output_test_helper.cc +515 -0
  241. package/cpp/leveldb/third_party/benchmark/test/register_benchmark_test.cc +184 -0
  242. package/cpp/leveldb/third_party/benchmark/test/report_aggregates_only_test.cc +39 -0
  243. package/cpp/leveldb/third_party/benchmark/test/reporter_output_test.cc +747 -0
  244. package/cpp/leveldb/third_party/benchmark/test/skip_with_error_test.cc +195 -0
  245. package/cpp/leveldb/third_party/benchmark/test/state_assembly_test.cc +68 -0
  246. package/cpp/leveldb/third_party/benchmark/test/statistics_gtest.cc +28 -0
  247. package/cpp/leveldb/third_party/benchmark/test/string_util_gtest.cc +153 -0
  248. package/cpp/leveldb/third_party/benchmark/test/templated_fixture_test.cc +28 -0
  249. package/cpp/leveldb/third_party/benchmark/test/user_counters_tabular_test.cc +285 -0
  250. package/cpp/leveldb/third_party/benchmark/test/user_counters_test.cc +531 -0
  251. package/cpp/leveldb/third_party/benchmark/test/user_counters_thousands_test.cc +173 -0
  252. package/cpp/leveldb/third_party/benchmark/tools/BUILD.bazel +19 -0
  253. package/cpp/leveldb/third_party/benchmark/tools/compare.py +429 -0
  254. package/cpp/leveldb/third_party/benchmark/tools/gbench/Inputs/test1_run1.json +119 -0
  255. package/cpp/leveldb/third_party/benchmark/tools/gbench/Inputs/test1_run2.json +119 -0
  256. package/cpp/leveldb/third_party/benchmark/tools/gbench/Inputs/test2_run.json +81 -0
  257. package/cpp/leveldb/third_party/benchmark/tools/gbench/Inputs/test3_run0.json +65 -0
  258. package/cpp/leveldb/third_party/benchmark/tools/gbench/Inputs/test3_run1.json +65 -0
  259. package/cpp/leveldb/third_party/benchmark/tools/gbench/__init__.py +8 -0
  260. package/cpp/leveldb/third_party/benchmark/tools/gbench/report.py +903 -0
  261. package/cpp/leveldb/third_party/benchmark/tools/gbench/util.py +163 -0
  262. package/cpp/leveldb/third_party/benchmark/tools/requirements.txt +1 -0
  263. package/cpp/leveldb/third_party/benchmark/tools/strip_asm.py +151 -0
  264. package/cpp/leveldb/third_party/googletest/.clang-format +4 -0
  265. package/cpp/leveldb/third_party/googletest/.travis.yml +73 -0
  266. package/cpp/leveldb/third_party/googletest/BUILD.bazel +179 -0
  267. package/cpp/leveldb/third_party/googletest/CMakeLists.txt +36 -0
  268. package/cpp/leveldb/third_party/googletest/CONTRIBUTING.md +142 -0
  269. package/cpp/leveldb/third_party/googletest/LICENSE +28 -0
  270. package/cpp/leveldb/third_party/googletest/README.md +132 -0
  271. package/cpp/leveldb/third_party/googletest/WORKSPACE +23 -0
  272. package/cpp/leveldb/third_party/googletest/appveyor.yml +154 -0
  273. package/cpp/leveldb/third_party/googletest/ci/build-linux-bazel.sh +37 -0
  274. package/cpp/leveldb/third_party/googletest/ci/build-platformio.sh +2 -0
  275. package/cpp/leveldb/third_party/googletest/ci/env-linux.sh +41 -0
  276. package/cpp/leveldb/third_party/googletest/ci/env-osx.sh +47 -0
  277. package/cpp/leveldb/third_party/googletest/ci/get-nprocessors.sh +48 -0
  278. package/cpp/leveldb/third_party/googletest/ci/install-linux.sh +49 -0
  279. package/cpp/leveldb/third_party/googletest/ci/install-osx.sh +40 -0
  280. package/cpp/leveldb/third_party/googletest/ci/install-platformio.sh +5 -0
  281. package/cpp/leveldb/third_party/googletest/ci/log-config.sh +51 -0
  282. package/cpp/leveldb/third_party/googletest/ci/travis.sh +44 -0
  283. package/cpp/leveldb/third_party/googletest/googlemock/CMakeLists.txt +233 -0
  284. package/cpp/leveldb/third_party/googletest/googlemock/CONTRIBUTORS +40 -0
  285. package/cpp/leveldb/third_party/googletest/googlemock/LICENSE +28 -0
  286. package/cpp/leveldb/third_party/googletest/googlemock/README.md +44 -0
  287. package/cpp/leveldb/third_party/googletest/googlemock/cmake/gmock.pc.in +10 -0
  288. package/cpp/leveldb/third_party/googletest/googlemock/cmake/gmock_main.pc.in +10 -0
  289. package/cpp/leveldb/third_party/googletest/googlemock/docs/cheat_sheet.md +770 -0
  290. package/cpp/leveldb/third_party/googletest/googlemock/docs/cook_book.md +4270 -0
  291. package/cpp/leveldb/third_party/googletest/googlemock/docs/for_dummies.md +700 -0
  292. package/cpp/leveldb/third_party/googletest/googlemock/docs/gmock_faq.md +396 -0
  293. package/cpp/leveldb/third_party/googletest/googlemock/docs/pump_manual.md +187 -0
  294. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-actions.h +1193 -0
  295. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-cardinalities.h +157 -0
  296. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-function-mocker.h +276 -0
  297. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-generated-actions.h +1884 -0
  298. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-generated-actions.h.pump +627 -0
  299. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-generated-function-mockers.h +752 -0
  300. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-generated-function-mockers.h.pump +227 -0
  301. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-generated-matchers.h +1097 -0
  302. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-generated-matchers.h.pump +346 -0
  303. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-matchers.h +4591 -0
  304. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-more-actions.h +162 -0
  305. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-more-matchers.h +92 -0
  306. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-nice-strict.h +215 -0
  307. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-spec-builders.h +1985 -0
  308. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock.h +101 -0
  309. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/internal/custom/README.md +16 -0
  310. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h +10 -0
  311. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h.pump +12 -0
  312. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/internal/custom/gmock-matchers.h +36 -0
  313. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/internal/custom/gmock-port.h +39 -0
  314. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/internal/gmock-internal-utils.h +472 -0
  315. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/internal/gmock-port.h +87 -0
  316. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/internal/gmock-pp.h +271 -0
  317. package/cpp/leveldb/third_party/googletest/googlemock/scripts/README.md +5 -0
  318. package/cpp/leveldb/third_party/googletest/googlemock/scripts/fuse_gmock_files.py +240 -0
  319. package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/LICENSE +203 -0
  320. package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/README +34 -0
  321. package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/README.cppclean +115 -0
  322. package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/cpp/__init__.py +0 -0
  323. package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/cpp/ast.py +1761 -0
  324. package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/cpp/gmock_class.py +248 -0
  325. package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/cpp/gmock_class_test.py +540 -0
  326. package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/cpp/keywords.py +56 -0
  327. package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/cpp/tokenize.py +284 -0
  328. package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/cpp/utils.py +37 -0
  329. package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/gmock_gen.py +30 -0
  330. package/cpp/leveldb/third_party/googletest/googlemock/scripts/pump.py +856 -0
  331. package/cpp/leveldb/third_party/googletest/googlemock/src/gmock-all.cc +46 -0
  332. package/cpp/leveldb/third_party/googletest/googlemock/src/gmock-cardinalities.cc +155 -0
  333. package/cpp/leveldb/third_party/googletest/googlemock/src/gmock-internal-utils.cc +200 -0
  334. package/cpp/leveldb/third_party/googletest/googlemock/src/gmock-matchers.cc +462 -0
  335. package/cpp/leveldb/third_party/googletest/googlemock/src/gmock-spec-builders.cc +892 -0
  336. package/cpp/leveldb/third_party/googletest/googlemock/src/gmock.cc +213 -0
  337. package/cpp/leveldb/third_party/googletest/googlemock/src/gmock_main.cc +72 -0
  338. package/cpp/leveldb/third_party/googletest/googlemock/test/BUILD.bazel +110 -0
  339. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-actions_test.cc +1507 -0
  340. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-cardinalities_test.cc +429 -0
  341. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-function-mocker_nc.cc +16 -0
  342. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-function-mocker_nc_test.py +43 -0
  343. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-function-mocker_test.cc +696 -0
  344. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-generated-actions_test.cc +1064 -0
  345. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-generated-function-mockers_test.cc +659 -0
  346. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-generated-matchers_test.cc +1323 -0
  347. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-internal-utils_test.cc +732 -0
  348. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-matchers_test.cc +6913 -0
  349. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-more-actions_test.cc +698 -0
  350. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-nice-strict_test.cc +500 -0
  351. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-port_test.cc +42 -0
  352. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-pp-string_test.cc +206 -0
  353. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-pp_test.cc +83 -0
  354. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-spec-builders_test.cc +2775 -0
  355. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_all_test.cc +49 -0
  356. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_ex_test.cc +80 -0
  357. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_leak_test.py +104 -0
  358. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_leak_test_.cc +99 -0
  359. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_link2_test.cc +39 -0
  360. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_link_test.cc +39 -0
  361. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_link_test.h +690 -0
  362. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_output_test.py +183 -0
  363. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_output_test_.cc +309 -0
  364. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_output_test_golden.txt +317 -0
  365. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_stress_test.cc +240 -0
  366. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_test.cc +181 -0
  367. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_test_utils.py +108 -0
  368. package/cpp/leveldb/third_party/googletest/googlemock/test/pump_test.py +182 -0
  369. package/cpp/leveldb/third_party/googletest/googletest/CMakeLists.txt +329 -0
  370. package/cpp/leveldb/third_party/googletest/googletest/CONTRIBUTORS +38 -0
  371. package/cpp/leveldb/third_party/googletest/googletest/LICENSE +28 -0
  372. package/cpp/leveldb/third_party/googletest/googletest/README.md +244 -0
  373. package/cpp/leveldb/third_party/googletest/googletest/cmake/Config.cmake.in +9 -0
  374. package/cpp/leveldb/third_party/googletest/googletest/cmake/gtest.pc.in +9 -0
  375. package/cpp/leveldb/third_party/googletest/googletest/cmake/gtest_main.pc.in +10 -0
  376. package/cpp/leveldb/third_party/googletest/googletest/cmake/internal_utils.cmake +358 -0
  377. package/cpp/leveldb/third_party/googletest/googletest/cmake/libgtest.la.in +21 -0
  378. package/cpp/leveldb/third_party/googletest/googletest/docs/advanced.md +2567 -0
  379. package/cpp/leveldb/third_party/googletest/googletest/docs/faq.md +753 -0
  380. package/cpp/leveldb/third_party/googletest/googletest/docs/pkgconfig.md +219 -0
  381. package/cpp/leveldb/third_party/googletest/googletest/docs/primer.md +579 -0
  382. package/cpp/leveldb/third_party/googletest/googletest/docs/samples.md +22 -0
  383. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest-death-test.h +343 -0
  384. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest-matchers.h +750 -0
  385. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest-message.h +219 -0
  386. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest-param-test.h +514 -0
  387. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest-printers.h +928 -0
  388. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest-spi.h +238 -0
  389. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest-test-part.h +184 -0
  390. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest-typed-test.h +337 -0
  391. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest.h +2477 -0
  392. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest_pred_impl.h +359 -0
  393. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest_prod.h +61 -0
  394. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/custom/README.md +56 -0
  395. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/custom/gtest-port.h +37 -0
  396. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/custom/gtest-printers.h +42 -0
  397. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/custom/gtest.h +37 -0
  398. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/gtest-death-test-internal.h +304 -0
  399. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/gtest-filepath.h +211 -0
  400. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/gtest-internal.h +1411 -0
  401. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/gtest-param-util.h +880 -0
  402. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/gtest-port-arch.h +111 -0
  403. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/gtest-port.h +2227 -0
  404. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/gtest-string.h +171 -0
  405. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/gtest-type-util.h +183 -0
  406. package/cpp/leveldb/third_party/googletest/googletest/samples/prime_tables.h +126 -0
  407. package/cpp/leveldb/third_party/googletest/googletest/samples/sample1.cc +66 -0
  408. package/cpp/leveldb/third_party/googletest/googletest/samples/sample1.h +41 -0
  409. package/cpp/leveldb/third_party/googletest/googletest/samples/sample10_unittest.cc +139 -0
  410. package/cpp/leveldb/third_party/googletest/googletest/samples/sample1_unittest.cc +151 -0
  411. package/cpp/leveldb/third_party/googletest/googletest/samples/sample2.cc +54 -0
  412. package/cpp/leveldb/third_party/googletest/googletest/samples/sample2.h +81 -0
  413. package/cpp/leveldb/third_party/googletest/googletest/samples/sample2_unittest.cc +107 -0
  414. package/cpp/leveldb/third_party/googletest/googletest/samples/sample3-inl.h +172 -0
  415. package/cpp/leveldb/third_party/googletest/googletest/samples/sample3_unittest.cc +149 -0
  416. package/cpp/leveldb/third_party/googletest/googletest/samples/sample4.cc +54 -0
  417. package/cpp/leveldb/third_party/googletest/googletest/samples/sample4.h +53 -0
  418. package/cpp/leveldb/third_party/googletest/googletest/samples/sample4_unittest.cc +53 -0
  419. package/cpp/leveldb/third_party/googletest/googletest/samples/sample5_unittest.cc +196 -0
  420. package/cpp/leveldb/third_party/googletest/googletest/samples/sample6_unittest.cc +224 -0
  421. package/cpp/leveldb/third_party/googletest/googletest/samples/sample7_unittest.cc +117 -0
  422. package/cpp/leveldb/third_party/googletest/googletest/samples/sample8_unittest.cc +154 -0
  423. package/cpp/leveldb/third_party/googletest/googletest/samples/sample9_unittest.cc +156 -0
  424. package/cpp/leveldb/third_party/googletest/googletest/scripts/README.md +5 -0
  425. package/cpp/leveldb/third_party/googletest/googletest/scripts/common.py +83 -0
  426. package/cpp/leveldb/third_party/googletest/googletest/scripts/fuse_gtest_files.py +253 -0
  427. package/cpp/leveldb/third_party/googletest/googletest/scripts/gen_gtest_pred_impl.py +734 -0
  428. package/cpp/leveldb/third_party/googletest/googletest/scripts/gtest-config.in +274 -0
  429. package/cpp/leveldb/third_party/googletest/googletest/scripts/release_docs.py +158 -0
  430. package/cpp/leveldb/third_party/googletest/googletest/scripts/run_with_path.py +32 -0
  431. package/cpp/leveldb/third_party/googletest/googletest/scripts/upload.py +1402 -0
  432. package/cpp/leveldb/third_party/googletest/googletest/scripts/upload_gtest.py +78 -0
  433. package/cpp/leveldb/third_party/googletest/googletest/src/gtest-all.cc +48 -0
  434. package/cpp/leveldb/third_party/googletest/googletest/src/gtest-death-test.cc +1653 -0
  435. package/cpp/leveldb/third_party/googletest/googletest/src/gtest-filepath.cc +382 -0
  436. package/cpp/leveldb/third_party/googletest/googletest/src/gtest-internal-inl.h +1211 -0
  437. package/cpp/leveldb/third_party/googletest/googletest/src/gtest-matchers.cc +97 -0
  438. package/cpp/leveldb/third_party/googletest/googletest/src/gtest-port.cc +1399 -0
  439. package/cpp/leveldb/third_party/googletest/googletest/src/gtest-printers.cc +442 -0
  440. package/cpp/leveldb/third_party/googletest/googletest/src/gtest-test-part.cc +108 -0
  441. package/cpp/leveldb/third_party/googletest/googletest/src/gtest-typed-test.cc +118 -0
  442. package/cpp/leveldb/third_party/googletest/googletest/src/gtest.cc +6180 -0
  443. package/cpp/leveldb/third_party/googletest/googletest/src/gtest_main.cc +54 -0
  444. package/cpp/leveldb/third_party/googletest/googletest/test/BUILD.bazel +529 -0
  445. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-break-on-failure-unittest.py +208 -0
  446. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-break-on-failure-unittest_.cc +86 -0
  447. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-catch-exceptions-test.py +236 -0
  448. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-catch-exceptions-test_.cc +293 -0
  449. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-color-test.py +127 -0
  450. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-color-test_.cc +62 -0
  451. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-death-test-test.cc +1516 -0
  452. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-death-test_ex_test.cc +92 -0
  453. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-env-var-test.py +117 -0
  454. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-env-var-test_.cc +122 -0
  455. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-filepath-test.cc +649 -0
  456. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-filter-unittest.py +639 -0
  457. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-filter-unittest_.cc +137 -0
  458. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-json-outfiles-test.py +191 -0
  459. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-json-output-unittest.py +778 -0
  460. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-list-tests-unittest.py +205 -0
  461. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-list-tests-unittest_.cc +156 -0
  462. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-listener-test.cc +518 -0
  463. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-message-test.cc +158 -0
  464. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-options-test.cc +216 -0
  465. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-output-test-golden-lin.txt +1137 -0
  466. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-output-test.py +346 -0
  467. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-output-test_.cc +1149 -0
  468. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-param-test-invalid-name1-test.py +63 -0
  469. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-param-test-invalid-name1-test_.cc +50 -0
  470. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-param-test-invalid-name2-test.py +62 -0
  471. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-param-test-invalid-name2-test_.cc +55 -0
  472. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-param-test-test.cc +1086 -0
  473. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-param-test-test.h +51 -0
  474. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-param-test2-test.cc +61 -0
  475. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-port-test.cc +1272 -0
  476. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-printers-test.cc +1619 -0
  477. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-shuffle-test.py +323 -0
  478. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-shuffle-test_.cc +101 -0
  479. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-test-part-test.cc +230 -0
  480. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-test2_test.cc +61 -0
  481. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-throw-on-failure-test.py +168 -0
  482. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-throw-on-failure-test_.cc +71 -0
  483. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-uninitialized-test.py +67 -0
  484. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-uninitialized-test_.cc +42 -0
  485. package/cpp/leveldb/third_party/googletest/googletest/test/gtest-typed-test2_test.cc +44 -0
  486. package/cpp/leveldb/third_party/googletest/googletest/test/gtest-typed-test_test.cc +462 -0
  487. package/cpp/leveldb/third_party/googletest/googletest/test/gtest-typed-test_test.h +65 -0
  488. package/cpp/leveldb/third_party/googletest/googletest/test/gtest-unittest-api_test.cc +341 -0
  489. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_all_test.cc +46 -0
  490. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_assert_by_exception_test.cc +116 -0
  491. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_environment_test.cc +188 -0
  492. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_help_test.py +170 -0
  493. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_help_test_.cc +45 -0
  494. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_json_test_utils.py +60 -0
  495. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_list_output_unittest.py +141 -0
  496. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_list_output_unittest_.cc +51 -0
  497. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_main_unittest.cc +44 -0
  498. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_no_test_unittest.cc +54 -0
  499. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_pred_impl_unittest.cc +2427 -0
  500. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_premature_exit_test.cc +126 -0
  501. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_prod_test.cc +56 -0
  502. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_repeat_test.cc +233 -0
  503. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_skip_check_output_test.py +59 -0
  504. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_skip_environment_check_output_test.py +54 -0
  505. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_skip_in_environment_setup_test.cc +49 -0
  506. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_skip_test.cc +55 -0
  507. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_sole_header_test.cc +56 -0
  508. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_stress_test.cc +248 -0
  509. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_test_macro_stack_footprint_test.cc +89 -0
  510. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_test_utils.py +314 -0
  511. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_testbridge_test.py +63 -0
  512. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_testbridge_test_.cc +43 -0
  513. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_throw_on_failure_ex_test.cc +90 -0
  514. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_unittest.cc +7496 -0
  515. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_xml_outfile1_test_.cc +43 -0
  516. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_xml_outfile2_test_.cc +43 -0
  517. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_xml_outfiles_test.py +135 -0
  518. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_xml_output_unittest.py +389 -0
  519. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_xml_output_unittest_.cc +188 -0
  520. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_xml_test_utils.py +196 -0
  521. package/cpp/leveldb/third_party/googletest/googletest/test/production.cc +35 -0
  522. package/cpp/leveldb/third_party/googletest/googletest/test/production.h +54 -0
  523. package/cpp/leveldb/third_party/googletest/library.json +66 -0
  524. package/cpp/leveldb/third_party/googletest/platformio.ini +47 -0
  525. package/cpp/leveldb/util/arena.cc +66 -0
  526. package/cpp/leveldb/util/arena.h +71 -0
  527. package/cpp/leveldb/util/arena_test.cc +66 -0
  528. package/cpp/leveldb/util/bloom.cc +92 -0
  529. package/cpp/leveldb/util/bloom_test.cc +159 -0
  530. package/cpp/leveldb/util/cache.cc +401 -0
  531. package/cpp/leveldb/util/cache_test.cc +229 -0
  532. package/cpp/leveldb/util/coding.cc +166 -0
  533. package/cpp/leveldb/util/coding.h +122 -0
  534. package/cpp/leveldb/util/coding_test.cc +198 -0
  535. package/cpp/leveldb/util/comparator.cc +75 -0
  536. package/cpp/leveldb/util/crc32c.cc +380 -0
  537. package/cpp/leveldb/util/crc32c.h +43 -0
  538. package/cpp/leveldb/util/crc32c_test.cc +61 -0
  539. package/cpp/leveldb/util/env.cc +108 -0
  540. package/cpp/leveldb/util/env_posix.cc +893 -0
  541. package/cpp/leveldb/util/env_posix_test.cc +353 -0
  542. package/cpp/leveldb/util/env_posix_test_helper.h +28 -0
  543. package/cpp/leveldb/util/env_test.cc +240 -0
  544. package/cpp/leveldb/util/env_windows.cc +796 -0
  545. package/cpp/leveldb/util/env_windows_test.cc +65 -0
  546. package/cpp/leveldb/util/env_windows_test_helper.h +25 -0
  547. package/cpp/leveldb/util/filter_policy.cc +11 -0
  548. package/cpp/leveldb/util/hash.cc +55 -0
  549. package/cpp/leveldb/util/hash.h +19 -0
  550. package/cpp/leveldb/util/hash_test.cc +46 -0
  551. package/cpp/leveldb/util/histogram.cc +272 -0
  552. package/cpp/leveldb/util/histogram.h +44 -0
  553. package/cpp/leveldb/util/logging.cc +82 -0
  554. package/cpp/leveldb/util/logging.h +44 -0
  555. package/cpp/leveldb/util/logging_test.cc +145 -0
  556. package/cpp/leveldb/util/mutexlock.h +39 -0
  557. package/cpp/leveldb/util/no_destructor.h +46 -0
  558. package/cpp/leveldb/util/no_destructor_test.cc +49 -0
  559. package/cpp/leveldb/util/options.cc +14 -0
  560. package/cpp/leveldb/util/posix_logger.h +130 -0
  561. package/cpp/leveldb/util/random.h +63 -0
  562. package/cpp/leveldb/util/status.cc +77 -0
  563. package/cpp/leveldb/util/status_test.cc +44 -0
  564. package/cpp/leveldb/util/testutil.cc +51 -0
  565. package/cpp/leveldb/util/testutil.h +82 -0
  566. package/cpp/leveldb/util/windows_logger.h +124 -0
  567. package/cpp/react-native-leveldb.cpp +694 -0
  568. package/cpp/react-native-leveldb.h +4 -0
  569. package/ios/Leveldb.h +9 -0
  570. package/ios/Leveldb.mm +35 -0
  571. package/ios/Leveldb.xcodeproj/project.pbxproj +288 -0
  572. package/lib/commonjs/fake.js +181 -0
  573. package/lib/commonjs/fake.js.map +1 -0
  574. package/lib/commonjs/fake.test.js +30 -0
  575. package/lib/commonjs/fake.test.js.map +1 -0
  576. package/lib/commonjs/index.js +172 -0
  577. package/lib/commonjs/index.js.map +1 -0
  578. package/lib/commonjs/package.json +1 -0
  579. package/lib/module/fake.js +171 -0
  580. package/lib/module/fake.js.map +1 -0
  581. package/lib/module/fake.test.js +30 -0
  582. package/lib/module/fake.test.js.map +1 -0
  583. package/lib/module/index.js +165 -0
  584. package/lib/module/index.js.map +1 -0
  585. package/lib/typescript/fake.d.ts +34 -0
  586. package/lib/typescript/fake.d.ts.map +1 -0
  587. package/lib/typescript/fake.test.d.ts +2 -0
  588. package/lib/typescript/fake.test.d.ts.map +1 -0
  589. package/lib/typescript/index.d.ts +72 -0
  590. package/lib/typescript/index.d.ts.map +1 -0
  591. package/package.json +157 -0
  592. package/rn-leveldb.podspec +30 -0
  593. package/src/fake.test.ts +37 -0
  594. package/src/fake.ts +203 -0
  595. package/src/index.ts +291 -0
@@ -0,0 +1,1884 @@
1
+ // This file was GENERATED by command:
2
+ // pump.py gmock-generated-actions.h.pump
3
+ // DO NOT EDIT BY HAND!!!
4
+
5
+ // Copyright 2007, 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
+
35
+ // Google Mock - a framework for writing C++ mock classes.
36
+ //
37
+ // This file implements some commonly used variadic actions.
38
+
39
+ // GOOGLETEST_CM0002 DO NOT DELETE
40
+
41
+ #ifndef GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_ACTIONS_H_
42
+ #define GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_ACTIONS_H_
43
+
44
+ #include <memory>
45
+ #include <utility>
46
+
47
+ #include "gmock/gmock-actions.h"
48
+ #include "gmock/internal/gmock-port.h"
49
+
50
+ namespace testing {
51
+ namespace internal {
52
+
53
+ // A macro from the ACTION* family (defined later in this file)
54
+ // defines an action that can be used in a mock function. Typically,
55
+ // these actions only care about a subset of the arguments of the mock
56
+ // function. For example, if such an action only uses the second
57
+ // argument, it can be used in any mock function that takes >= 2
58
+ // arguments where the type of the second argument is compatible.
59
+ //
60
+ // Therefore, the action implementation must be prepared to take more
61
+ // arguments than it needs. The ExcessiveArg type is used to
62
+ // represent those excessive arguments. In order to keep the compiler
63
+ // error messages tractable, we define it in the testing namespace
64
+ // instead of testing::internal. However, this is an INTERNAL TYPE
65
+ // and subject to change without notice, so a user MUST NOT USE THIS
66
+ // TYPE DIRECTLY.
67
+ struct ExcessiveArg {};
68
+
69
+ // A helper class needed for implementing the ACTION* macros.
70
+ template <typename Result, class Impl>
71
+ class ActionHelper {
72
+ public:
73
+ static Result Perform(Impl* impl, const ::std::tuple<>& args) {
74
+ return impl->template gmock_PerformImpl<>(args, ExcessiveArg(),
75
+ ExcessiveArg(), ExcessiveArg(), ExcessiveArg(), ExcessiveArg(),
76
+ ExcessiveArg(), ExcessiveArg(), ExcessiveArg(), ExcessiveArg(),
77
+ ExcessiveArg());
78
+ }
79
+
80
+ template <typename A0>
81
+ static Result Perform(Impl* impl, const ::std::tuple<A0>& args) {
82
+ return impl->template gmock_PerformImpl<A0>(args, std::get<0>(args),
83
+ ExcessiveArg(), ExcessiveArg(), ExcessiveArg(), ExcessiveArg(),
84
+ ExcessiveArg(), ExcessiveArg(), ExcessiveArg(), ExcessiveArg(),
85
+ ExcessiveArg());
86
+ }
87
+
88
+ template <typename A0, typename A1>
89
+ static Result Perform(Impl* impl, const ::std::tuple<A0, A1>& args) {
90
+ return impl->template gmock_PerformImpl<A0, A1>(args, std::get<0>(args),
91
+ std::get<1>(args), ExcessiveArg(), ExcessiveArg(), ExcessiveArg(),
92
+ ExcessiveArg(), ExcessiveArg(), ExcessiveArg(), ExcessiveArg(),
93
+ ExcessiveArg());
94
+ }
95
+
96
+ template <typename A0, typename A1, typename A2>
97
+ static Result Perform(Impl* impl, const ::std::tuple<A0, A1, A2>& args) {
98
+ return impl->template gmock_PerformImpl<A0, A1, A2>(args,
99
+ std::get<0>(args), std::get<1>(args), std::get<2>(args),
100
+ ExcessiveArg(), ExcessiveArg(), ExcessiveArg(), ExcessiveArg(),
101
+ ExcessiveArg(), ExcessiveArg(), ExcessiveArg());
102
+ }
103
+
104
+ template <typename A0, typename A1, typename A2, typename A3>
105
+ static Result Perform(Impl* impl, const ::std::tuple<A0, A1, A2, A3>& args) {
106
+ return impl->template gmock_PerformImpl<A0, A1, A2, A3>(args,
107
+ std::get<0>(args), std::get<1>(args), std::get<2>(args),
108
+ std::get<3>(args), ExcessiveArg(), ExcessiveArg(), ExcessiveArg(),
109
+ ExcessiveArg(), ExcessiveArg(), ExcessiveArg());
110
+ }
111
+
112
+ template <typename A0, typename A1, typename A2, typename A3, typename A4>
113
+ static Result Perform(Impl* impl, const ::std::tuple<A0, A1, A2, A3,
114
+ A4>& args) {
115
+ return impl->template gmock_PerformImpl<A0, A1, A2, A3, A4>(args,
116
+ std::get<0>(args), std::get<1>(args), std::get<2>(args),
117
+ std::get<3>(args), std::get<4>(args), ExcessiveArg(), ExcessiveArg(),
118
+ ExcessiveArg(), ExcessiveArg(), ExcessiveArg());
119
+ }
120
+
121
+ template <typename A0, typename A1, typename A2, typename A3, typename A4,
122
+ typename A5>
123
+ static Result Perform(Impl* impl, const ::std::tuple<A0, A1, A2, A3, A4,
124
+ A5>& args) {
125
+ return impl->template gmock_PerformImpl<A0, A1, A2, A3, A4, A5>(args,
126
+ std::get<0>(args), std::get<1>(args), std::get<2>(args),
127
+ std::get<3>(args), std::get<4>(args), std::get<5>(args),
128
+ ExcessiveArg(), ExcessiveArg(), ExcessiveArg(), ExcessiveArg());
129
+ }
130
+
131
+ template <typename A0, typename A1, typename A2, typename A3, typename A4,
132
+ typename A5, typename A6>
133
+ static Result Perform(Impl* impl, const ::std::tuple<A0, A1, A2, A3, A4, A5,
134
+ A6>& args) {
135
+ return impl->template gmock_PerformImpl<A0, A1, A2, A3, A4, A5, A6>(args,
136
+ std::get<0>(args), std::get<1>(args), std::get<2>(args),
137
+ std::get<3>(args), std::get<4>(args), std::get<5>(args),
138
+ std::get<6>(args), ExcessiveArg(), ExcessiveArg(), ExcessiveArg());
139
+ }
140
+
141
+ template <typename A0, typename A1, typename A2, typename A3, typename A4,
142
+ typename A5, typename A6, typename A7>
143
+ static Result Perform(Impl* impl, const ::std::tuple<A0, A1, A2, A3, A4, A5,
144
+ A6, A7>& args) {
145
+ return impl->template gmock_PerformImpl<A0, A1, A2, A3, A4, A5, A6,
146
+ A7>(args, std::get<0>(args), std::get<1>(args), std::get<2>(args),
147
+ std::get<3>(args), std::get<4>(args), std::get<5>(args),
148
+ std::get<6>(args), std::get<7>(args), ExcessiveArg(), ExcessiveArg());
149
+ }
150
+
151
+ template <typename A0, typename A1, typename A2, typename A3, typename A4,
152
+ typename A5, typename A6, typename A7, typename A8>
153
+ static Result Perform(Impl* impl, const ::std::tuple<A0, A1, A2, A3, A4, A5,
154
+ A6, A7, A8>& args) {
155
+ return impl->template gmock_PerformImpl<A0, A1, A2, A3, A4, A5, A6, A7,
156
+ A8>(args, std::get<0>(args), std::get<1>(args), std::get<2>(args),
157
+ std::get<3>(args), std::get<4>(args), std::get<5>(args),
158
+ std::get<6>(args), std::get<7>(args), std::get<8>(args),
159
+ ExcessiveArg());
160
+ }
161
+
162
+ template <typename A0, typename A1, typename A2, typename A3, typename A4,
163
+ typename A5, typename A6, typename A7, typename A8, typename A9>
164
+ static Result Perform(Impl* impl, const ::std::tuple<A0, A1, A2, A3, A4, A5,
165
+ A6, A7, A8, A9>& args) {
166
+ return impl->template gmock_PerformImpl<A0, A1, A2, A3, A4, A5, A6, A7, A8,
167
+ A9>(args, std::get<0>(args), std::get<1>(args), std::get<2>(args),
168
+ std::get<3>(args), std::get<4>(args), std::get<5>(args),
169
+ std::get<6>(args), std::get<7>(args), std::get<8>(args),
170
+ std::get<9>(args));
171
+ }
172
+ };
173
+
174
+ } // namespace internal
175
+ } // namespace testing
176
+
177
+ // The ACTION* family of macros can be used in a namespace scope to
178
+ // define custom actions easily. The syntax:
179
+ //
180
+ // ACTION(name) { statements; }
181
+ //
182
+ // will define an action with the given name that executes the
183
+ // statements. The value returned by the statements will be used as
184
+ // the return value of the action. Inside the statements, you can
185
+ // refer to the K-th (0-based) argument of the mock function by
186
+ // 'argK', and refer to its type by 'argK_type'. For example:
187
+ //
188
+ // ACTION(IncrementArg1) {
189
+ // arg1_type temp = arg1;
190
+ // return ++(*temp);
191
+ // }
192
+ //
193
+ // allows you to write
194
+ //
195
+ // ...WillOnce(IncrementArg1());
196
+ //
197
+ // You can also refer to the entire argument tuple and its type by
198
+ // 'args' and 'args_type', and refer to the mock function type and its
199
+ // return type by 'function_type' and 'return_type'.
200
+ //
201
+ // Note that you don't need to specify the types of the mock function
202
+ // arguments. However rest assured that your code is still type-safe:
203
+ // you'll get a compiler error if *arg1 doesn't support the ++
204
+ // operator, or if the type of ++(*arg1) isn't compatible with the
205
+ // mock function's return type, for example.
206
+ //
207
+ // Sometimes you'll want to parameterize the action. For that you can use
208
+ // another macro:
209
+ //
210
+ // ACTION_P(name, param_name) { statements; }
211
+ //
212
+ // For example:
213
+ //
214
+ // ACTION_P(Add, n) { return arg0 + n; }
215
+ //
216
+ // will allow you to write:
217
+ //
218
+ // ...WillOnce(Add(5));
219
+ //
220
+ // Note that you don't need to provide the type of the parameter
221
+ // either. If you need to reference the type of a parameter named
222
+ // 'foo', you can write 'foo_type'. For example, in the body of
223
+ // ACTION_P(Add, n) above, you can write 'n_type' to refer to the type
224
+ // of 'n'.
225
+ //
226
+ // We also provide ACTION_P2, ACTION_P3, ..., up to ACTION_P10 to support
227
+ // multi-parameter actions.
228
+ //
229
+ // For the purpose of typing, you can view
230
+ //
231
+ // ACTION_Pk(Foo, p1, ..., pk) { ... }
232
+ //
233
+ // as shorthand for
234
+ //
235
+ // template <typename p1_type, ..., typename pk_type>
236
+ // FooActionPk<p1_type, ..., pk_type> Foo(p1_type p1, ..., pk_type pk) { ... }
237
+ //
238
+ // In particular, you can provide the template type arguments
239
+ // explicitly when invoking Foo(), as in Foo<long, bool>(5, false);
240
+ // although usually you can rely on the compiler to infer the types
241
+ // for you automatically. You can assign the result of expression
242
+ // Foo(p1, ..., pk) to a variable of type FooActionPk<p1_type, ...,
243
+ // pk_type>. This can be useful when composing actions.
244
+ //
245
+ // You can also overload actions with different numbers of parameters:
246
+ //
247
+ // ACTION_P(Plus, a) { ... }
248
+ // ACTION_P2(Plus, a, b) { ... }
249
+ //
250
+ // While it's tempting to always use the ACTION* macros when defining
251
+ // a new action, you should also consider implementing ActionInterface
252
+ // or using MakePolymorphicAction() instead, especially if you need to
253
+ // use the action a lot. While these approaches require more work,
254
+ // they give you more control on the types of the mock function
255
+ // arguments and the action parameters, which in general leads to
256
+ // better compiler error messages that pay off in the long run. They
257
+ // also allow overloading actions based on parameter types (as opposed
258
+ // to just based on the number of parameters).
259
+ //
260
+ // CAVEAT:
261
+ //
262
+ // ACTION*() can only be used in a namespace scope as templates cannot be
263
+ // declared inside of a local class.
264
+ // Users can, however, define any local functors (e.g. a lambda) that
265
+ // can be used as actions.
266
+ //
267
+ // MORE INFORMATION:
268
+ //
269
+ // To learn more about using these macros, please search for 'ACTION' on
270
+ // https://github.com/google/googletest/blob/master/googlemock/docs/cook_book.md
271
+
272
+ // An internal macro needed for implementing ACTION*().
273
+ #define GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_\
274
+ const args_type& args GTEST_ATTRIBUTE_UNUSED_, \
275
+ const arg0_type& arg0 GTEST_ATTRIBUTE_UNUSED_, \
276
+ const arg1_type& arg1 GTEST_ATTRIBUTE_UNUSED_, \
277
+ const arg2_type& arg2 GTEST_ATTRIBUTE_UNUSED_, \
278
+ const arg3_type& arg3 GTEST_ATTRIBUTE_UNUSED_, \
279
+ const arg4_type& arg4 GTEST_ATTRIBUTE_UNUSED_, \
280
+ const arg5_type& arg5 GTEST_ATTRIBUTE_UNUSED_, \
281
+ const arg6_type& arg6 GTEST_ATTRIBUTE_UNUSED_, \
282
+ const arg7_type& arg7 GTEST_ATTRIBUTE_UNUSED_, \
283
+ const arg8_type& arg8 GTEST_ATTRIBUTE_UNUSED_, \
284
+ const arg9_type& arg9 GTEST_ATTRIBUTE_UNUSED_
285
+
286
+ // Sometimes you want to give an action explicit template parameters
287
+ // that cannot be inferred from its value parameters. ACTION() and
288
+ // ACTION_P*() don't support that. ACTION_TEMPLATE() remedies that
289
+ // and can be viewed as an extension to ACTION() and ACTION_P*().
290
+ //
291
+ // The syntax:
292
+ //
293
+ // ACTION_TEMPLATE(ActionName,
294
+ // HAS_m_TEMPLATE_PARAMS(kind1, name1, ..., kind_m, name_m),
295
+ // AND_n_VALUE_PARAMS(p1, ..., p_n)) { statements; }
296
+ //
297
+ // defines an action template that takes m explicit template
298
+ // parameters and n value parameters. name_i is the name of the i-th
299
+ // template parameter, and kind_i specifies whether it's a typename,
300
+ // an integral constant, or a template. p_i is the name of the i-th
301
+ // value parameter.
302
+ //
303
+ // Example:
304
+ //
305
+ // // DuplicateArg<k, T>(output) converts the k-th argument of the mock
306
+ // // function to type T and copies it to *output.
307
+ // ACTION_TEMPLATE(DuplicateArg,
308
+ // HAS_2_TEMPLATE_PARAMS(int, k, typename, T),
309
+ // AND_1_VALUE_PARAMS(output)) {
310
+ // *output = T(::std::get<k>(args));
311
+ // }
312
+ // ...
313
+ // int n;
314
+ // EXPECT_CALL(mock, Foo(_, _))
315
+ // .WillOnce(DuplicateArg<1, unsigned char>(&n));
316
+ //
317
+ // To create an instance of an action template, write:
318
+ //
319
+ // ActionName<t1, ..., t_m>(v1, ..., v_n)
320
+ //
321
+ // where the ts are the template arguments and the vs are the value
322
+ // arguments. The value argument types are inferred by the compiler.
323
+ // If you want to explicitly specify the value argument types, you can
324
+ // provide additional template arguments:
325
+ //
326
+ // ActionName<t1, ..., t_m, u1, ..., u_k>(v1, ..., v_n)
327
+ //
328
+ // where u_i is the desired type of v_i.
329
+ //
330
+ // ACTION_TEMPLATE and ACTION/ACTION_P* can be overloaded on the
331
+ // number of value parameters, but not on the number of template
332
+ // parameters. Without the restriction, the meaning of the following
333
+ // is unclear:
334
+ //
335
+ // OverloadedAction<int, bool>(x);
336
+ //
337
+ // Are we using a single-template-parameter action where 'bool' refers
338
+ // to the type of x, or are we using a two-template-parameter action
339
+ // where the compiler is asked to infer the type of x?
340
+ //
341
+ // Implementation notes:
342
+ //
343
+ // GMOCK_INTERNAL_*_HAS_m_TEMPLATE_PARAMS and
344
+ // GMOCK_INTERNAL_*_AND_n_VALUE_PARAMS are internal macros for
345
+ // implementing ACTION_TEMPLATE. The main trick we use is to create
346
+ // new macro invocations when expanding a macro. For example, we have
347
+ //
348
+ // #define ACTION_TEMPLATE(name, template_params, value_params)
349
+ // ... GMOCK_INTERNAL_DECL_##template_params ...
350
+ //
351
+ // which causes ACTION_TEMPLATE(..., HAS_1_TEMPLATE_PARAMS(typename, T), ...)
352
+ // to expand to
353
+ //
354
+ // ... GMOCK_INTERNAL_DECL_HAS_1_TEMPLATE_PARAMS(typename, T) ...
355
+ //
356
+ // Since GMOCK_INTERNAL_DECL_HAS_1_TEMPLATE_PARAMS is a macro, the
357
+ // preprocessor will continue to expand it to
358
+ //
359
+ // ... typename T ...
360
+ //
361
+ // This technique conforms to the C++ standard and is portable. It
362
+ // allows us to implement action templates using O(N) code, where N is
363
+ // the maximum number of template/value parameters supported. Without
364
+ // using it, we'd have to devote O(N^2) amount of code to implement all
365
+ // combinations of m and n.
366
+
367
+ // Declares the template parameters.
368
+ #define GMOCK_INTERNAL_DECL_HAS_1_TEMPLATE_PARAMS(kind0, name0) kind0 name0
369
+ #define GMOCK_INTERNAL_DECL_HAS_2_TEMPLATE_PARAMS(kind0, name0, kind1, \
370
+ name1) kind0 name0, kind1 name1
371
+ #define GMOCK_INTERNAL_DECL_HAS_3_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \
372
+ kind2, name2) kind0 name0, kind1 name1, kind2 name2
373
+ #define GMOCK_INTERNAL_DECL_HAS_4_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \
374
+ kind2, name2, kind3, name3) kind0 name0, kind1 name1, kind2 name2, \
375
+ kind3 name3
376
+ #define GMOCK_INTERNAL_DECL_HAS_5_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \
377
+ kind2, name2, kind3, name3, kind4, name4) kind0 name0, kind1 name1, \
378
+ kind2 name2, kind3 name3, kind4 name4
379
+ #define GMOCK_INTERNAL_DECL_HAS_6_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \
380
+ kind2, name2, kind3, name3, kind4, name4, kind5, name5) kind0 name0, \
381
+ kind1 name1, kind2 name2, kind3 name3, kind4 name4, kind5 name5
382
+ #define GMOCK_INTERNAL_DECL_HAS_7_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \
383
+ kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, \
384
+ name6) kind0 name0, kind1 name1, kind2 name2, kind3 name3, kind4 name4, \
385
+ kind5 name5, kind6 name6
386
+ #define GMOCK_INTERNAL_DECL_HAS_8_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \
387
+ kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, name6, \
388
+ kind7, name7) kind0 name0, kind1 name1, kind2 name2, kind3 name3, \
389
+ kind4 name4, kind5 name5, kind6 name6, kind7 name7
390
+ #define GMOCK_INTERNAL_DECL_HAS_9_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \
391
+ kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, name6, \
392
+ kind7, name7, kind8, name8) kind0 name0, kind1 name1, kind2 name2, \
393
+ kind3 name3, kind4 name4, kind5 name5, kind6 name6, kind7 name7, \
394
+ kind8 name8
395
+ #define GMOCK_INTERNAL_DECL_HAS_10_TEMPLATE_PARAMS(kind0, name0, kind1, \
396
+ name1, kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, \
397
+ name6, kind7, name7, kind8, name8, kind9, name9) kind0 name0, \
398
+ kind1 name1, kind2 name2, kind3 name3, kind4 name4, kind5 name5, \
399
+ kind6 name6, kind7 name7, kind8 name8, kind9 name9
400
+
401
+ // Lists the template parameters.
402
+ #define GMOCK_INTERNAL_LIST_HAS_1_TEMPLATE_PARAMS(kind0, name0) name0
403
+ #define GMOCK_INTERNAL_LIST_HAS_2_TEMPLATE_PARAMS(kind0, name0, kind1, \
404
+ name1) name0, name1
405
+ #define GMOCK_INTERNAL_LIST_HAS_3_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \
406
+ kind2, name2) name0, name1, name2
407
+ #define GMOCK_INTERNAL_LIST_HAS_4_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \
408
+ kind2, name2, kind3, name3) name0, name1, name2, name3
409
+ #define GMOCK_INTERNAL_LIST_HAS_5_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \
410
+ kind2, name2, kind3, name3, kind4, name4) name0, name1, name2, name3, \
411
+ name4
412
+ #define GMOCK_INTERNAL_LIST_HAS_6_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \
413
+ kind2, name2, kind3, name3, kind4, name4, kind5, name5) name0, name1, \
414
+ name2, name3, name4, name5
415
+ #define GMOCK_INTERNAL_LIST_HAS_7_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \
416
+ kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, \
417
+ name6) name0, name1, name2, name3, name4, name5, name6
418
+ #define GMOCK_INTERNAL_LIST_HAS_8_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \
419
+ kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, name6, \
420
+ kind7, name7) name0, name1, name2, name3, name4, name5, name6, name7
421
+ #define GMOCK_INTERNAL_LIST_HAS_9_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \
422
+ kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, name6, \
423
+ kind7, name7, kind8, name8) name0, name1, name2, name3, name4, name5, \
424
+ name6, name7, name8
425
+ #define GMOCK_INTERNAL_LIST_HAS_10_TEMPLATE_PARAMS(kind0, name0, kind1, \
426
+ name1, kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, \
427
+ name6, kind7, name7, kind8, name8, kind9, name9) name0, name1, name2, \
428
+ name3, name4, name5, name6, name7, name8, name9
429
+
430
+ // Declares the types of value parameters.
431
+ #define GMOCK_INTERNAL_DECL_TYPE_AND_0_VALUE_PARAMS()
432
+ #define GMOCK_INTERNAL_DECL_TYPE_AND_1_VALUE_PARAMS(p0) , typename p0##_type
433
+ #define GMOCK_INTERNAL_DECL_TYPE_AND_2_VALUE_PARAMS(p0, p1) , \
434
+ typename p0##_type, typename p1##_type
435
+ #define GMOCK_INTERNAL_DECL_TYPE_AND_3_VALUE_PARAMS(p0, p1, p2) , \
436
+ typename p0##_type, typename p1##_type, typename p2##_type
437
+ #define GMOCK_INTERNAL_DECL_TYPE_AND_4_VALUE_PARAMS(p0, p1, p2, p3) , \
438
+ typename p0##_type, typename p1##_type, typename p2##_type, \
439
+ typename p3##_type
440
+ #define GMOCK_INTERNAL_DECL_TYPE_AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4) , \
441
+ typename p0##_type, typename p1##_type, typename p2##_type, \
442
+ typename p3##_type, typename p4##_type
443
+ #define GMOCK_INTERNAL_DECL_TYPE_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5) , \
444
+ typename p0##_type, typename p1##_type, typename p2##_type, \
445
+ typename p3##_type, typename p4##_type, typename p5##_type
446
+ #define GMOCK_INTERNAL_DECL_TYPE_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \
447
+ p6) , typename p0##_type, typename p1##_type, typename p2##_type, \
448
+ typename p3##_type, typename p4##_type, typename p5##_type, \
449
+ typename p6##_type
450
+ #define GMOCK_INTERNAL_DECL_TYPE_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \
451
+ p6, p7) , typename p0##_type, typename p1##_type, typename p2##_type, \
452
+ typename p3##_type, typename p4##_type, typename p5##_type, \
453
+ typename p6##_type, typename p7##_type
454
+ #define GMOCK_INTERNAL_DECL_TYPE_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \
455
+ p6, p7, p8) , typename p0##_type, typename p1##_type, typename p2##_type, \
456
+ typename p3##_type, typename p4##_type, typename p5##_type, \
457
+ typename p6##_type, typename p7##_type, typename p8##_type
458
+ #define GMOCK_INTERNAL_DECL_TYPE_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \
459
+ p6, p7, p8, p9) , typename p0##_type, typename p1##_type, \
460
+ typename p2##_type, typename p3##_type, typename p4##_type, \
461
+ typename p5##_type, typename p6##_type, typename p7##_type, \
462
+ typename p8##_type, typename p9##_type
463
+
464
+ // Initializes the value parameters.
465
+ #define GMOCK_INTERNAL_INIT_AND_0_VALUE_PARAMS()\
466
+ ()
467
+ #define GMOCK_INTERNAL_INIT_AND_1_VALUE_PARAMS(p0)\
468
+ (p0##_type gmock_p0) : p0(::std::move(gmock_p0))
469
+ #define GMOCK_INTERNAL_INIT_AND_2_VALUE_PARAMS(p0, p1)\
470
+ (p0##_type gmock_p0, p1##_type gmock_p1) : p0(::std::move(gmock_p0)), \
471
+ p1(::std::move(gmock_p1))
472
+ #define GMOCK_INTERNAL_INIT_AND_3_VALUE_PARAMS(p0, p1, p2)\
473
+ (p0##_type gmock_p0, p1##_type gmock_p1, \
474
+ p2##_type gmock_p2) : p0(::std::move(gmock_p0)), \
475
+ p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2))
476
+ #define GMOCK_INTERNAL_INIT_AND_4_VALUE_PARAMS(p0, p1, p2, p3)\
477
+ (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
478
+ p3##_type gmock_p3) : p0(::std::move(gmock_p0)), \
479
+ p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \
480
+ p3(::std::move(gmock_p3))
481
+ #define GMOCK_INTERNAL_INIT_AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4)\
482
+ (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
483
+ p3##_type gmock_p3, p4##_type gmock_p4) : p0(::std::move(gmock_p0)), \
484
+ p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \
485
+ p3(::std::move(gmock_p3)), p4(::std::move(gmock_p4))
486
+ #define GMOCK_INTERNAL_INIT_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5)\
487
+ (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
488
+ p3##_type gmock_p3, p4##_type gmock_p4, \
489
+ p5##_type gmock_p5) : p0(::std::move(gmock_p0)), \
490
+ p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \
491
+ p3(::std::move(gmock_p3)), p4(::std::move(gmock_p4)), \
492
+ p5(::std::move(gmock_p5))
493
+ #define GMOCK_INTERNAL_INIT_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6)\
494
+ (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
495
+ p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \
496
+ p6##_type gmock_p6) : p0(::std::move(gmock_p0)), \
497
+ p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \
498
+ p3(::std::move(gmock_p3)), p4(::std::move(gmock_p4)), \
499
+ p5(::std::move(gmock_p5)), p6(::std::move(gmock_p6))
500
+ #define GMOCK_INTERNAL_INIT_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7)\
501
+ (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
502
+ p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \
503
+ p6##_type gmock_p6, p7##_type gmock_p7) : p0(::std::move(gmock_p0)), \
504
+ p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \
505
+ p3(::std::move(gmock_p3)), p4(::std::move(gmock_p4)), \
506
+ p5(::std::move(gmock_p5)), p6(::std::move(gmock_p6)), \
507
+ p7(::std::move(gmock_p7))
508
+ #define GMOCK_INTERNAL_INIT_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \
509
+ p7, p8)\
510
+ (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
511
+ p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \
512
+ p6##_type gmock_p6, p7##_type gmock_p7, \
513
+ p8##_type gmock_p8) : p0(::std::move(gmock_p0)), \
514
+ p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \
515
+ p3(::std::move(gmock_p3)), p4(::std::move(gmock_p4)), \
516
+ p5(::std::move(gmock_p5)), p6(::std::move(gmock_p6)), \
517
+ p7(::std::move(gmock_p7)), p8(::std::move(gmock_p8))
518
+ #define GMOCK_INTERNAL_INIT_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \
519
+ p7, p8, p9)\
520
+ (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
521
+ p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \
522
+ p6##_type gmock_p6, p7##_type gmock_p7, p8##_type gmock_p8, \
523
+ p9##_type gmock_p9) : p0(::std::move(gmock_p0)), \
524
+ p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \
525
+ p3(::std::move(gmock_p3)), p4(::std::move(gmock_p4)), \
526
+ p5(::std::move(gmock_p5)), p6(::std::move(gmock_p6)), \
527
+ p7(::std::move(gmock_p7)), p8(::std::move(gmock_p8)), \
528
+ p9(::std::move(gmock_p9))
529
+
530
+ // Declares the fields for storing the value parameters.
531
+ #define GMOCK_INTERNAL_DEFN_AND_0_VALUE_PARAMS()
532
+ #define GMOCK_INTERNAL_DEFN_AND_1_VALUE_PARAMS(p0) p0##_type p0;
533
+ #define GMOCK_INTERNAL_DEFN_AND_2_VALUE_PARAMS(p0, p1) p0##_type p0; \
534
+ p1##_type p1;
535
+ #define GMOCK_INTERNAL_DEFN_AND_3_VALUE_PARAMS(p0, p1, p2) p0##_type p0; \
536
+ p1##_type p1; p2##_type p2;
537
+ #define GMOCK_INTERNAL_DEFN_AND_4_VALUE_PARAMS(p0, p1, p2, p3) p0##_type p0; \
538
+ p1##_type p1; p2##_type p2; p3##_type p3;
539
+ #define GMOCK_INTERNAL_DEFN_AND_5_VALUE_PARAMS(p0, p1, p2, p3, \
540
+ p4) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; p4##_type p4;
541
+ #define GMOCK_INTERNAL_DEFN_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, \
542
+ p5) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; p4##_type p4; \
543
+ p5##_type p5;
544
+ #define GMOCK_INTERNAL_DEFN_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \
545
+ p6) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; p4##_type p4; \
546
+ p5##_type p5; p6##_type p6;
547
+ #define GMOCK_INTERNAL_DEFN_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \
548
+ p7) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; p4##_type p4; \
549
+ p5##_type p5; p6##_type p6; p7##_type p7;
550
+ #define GMOCK_INTERNAL_DEFN_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \
551
+ p7, p8) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; \
552
+ p4##_type p4; p5##_type p5; p6##_type p6; p7##_type p7; p8##_type p8;
553
+ #define GMOCK_INTERNAL_DEFN_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \
554
+ p7, p8, p9) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; \
555
+ p4##_type p4; p5##_type p5; p6##_type p6; p7##_type p7; p8##_type p8; \
556
+ p9##_type p9;
557
+
558
+ // Lists the value parameters.
559
+ #define GMOCK_INTERNAL_LIST_AND_0_VALUE_PARAMS()
560
+ #define GMOCK_INTERNAL_LIST_AND_1_VALUE_PARAMS(p0) p0
561
+ #define GMOCK_INTERNAL_LIST_AND_2_VALUE_PARAMS(p0, p1) p0, p1
562
+ #define GMOCK_INTERNAL_LIST_AND_3_VALUE_PARAMS(p0, p1, p2) p0, p1, p2
563
+ #define GMOCK_INTERNAL_LIST_AND_4_VALUE_PARAMS(p0, p1, p2, p3) p0, p1, p2, p3
564
+ #define GMOCK_INTERNAL_LIST_AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4) p0, p1, \
565
+ p2, p3, p4
566
+ #define GMOCK_INTERNAL_LIST_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5) p0, \
567
+ p1, p2, p3, p4, p5
568
+ #define GMOCK_INTERNAL_LIST_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \
569
+ p6) p0, p1, p2, p3, p4, p5, p6
570
+ #define GMOCK_INTERNAL_LIST_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \
571
+ p7) p0, p1, p2, p3, p4, p5, p6, p7
572
+ #define GMOCK_INTERNAL_LIST_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \
573
+ p7, p8) p0, p1, p2, p3, p4, p5, p6, p7, p8
574
+ #define GMOCK_INTERNAL_LIST_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \
575
+ p7, p8, p9) p0, p1, p2, p3, p4, p5, p6, p7, p8, p9
576
+
577
+ // Lists the value parameter types.
578
+ #define GMOCK_INTERNAL_LIST_TYPE_AND_0_VALUE_PARAMS()
579
+ #define GMOCK_INTERNAL_LIST_TYPE_AND_1_VALUE_PARAMS(p0) , p0##_type
580
+ #define GMOCK_INTERNAL_LIST_TYPE_AND_2_VALUE_PARAMS(p0, p1) , p0##_type, \
581
+ p1##_type
582
+ #define GMOCK_INTERNAL_LIST_TYPE_AND_3_VALUE_PARAMS(p0, p1, p2) , p0##_type, \
583
+ p1##_type, p2##_type
584
+ #define GMOCK_INTERNAL_LIST_TYPE_AND_4_VALUE_PARAMS(p0, p1, p2, p3) , \
585
+ p0##_type, p1##_type, p2##_type, p3##_type
586
+ #define GMOCK_INTERNAL_LIST_TYPE_AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4) , \
587
+ p0##_type, p1##_type, p2##_type, p3##_type, p4##_type
588
+ #define GMOCK_INTERNAL_LIST_TYPE_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5) , \
589
+ p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, p5##_type
590
+ #define GMOCK_INTERNAL_LIST_TYPE_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \
591
+ p6) , p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, p5##_type, \
592
+ p6##_type
593
+ #define GMOCK_INTERNAL_LIST_TYPE_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \
594
+ p6, p7) , p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \
595
+ p5##_type, p6##_type, p7##_type
596
+ #define GMOCK_INTERNAL_LIST_TYPE_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \
597
+ p6, p7, p8) , p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \
598
+ p5##_type, p6##_type, p7##_type, p8##_type
599
+ #define GMOCK_INTERNAL_LIST_TYPE_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \
600
+ p6, p7, p8, p9) , p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \
601
+ p5##_type, p6##_type, p7##_type, p8##_type, p9##_type
602
+
603
+ // Declares the value parameters.
604
+ #define GMOCK_INTERNAL_DECL_AND_0_VALUE_PARAMS()
605
+ #define GMOCK_INTERNAL_DECL_AND_1_VALUE_PARAMS(p0) p0##_type p0
606
+ #define GMOCK_INTERNAL_DECL_AND_2_VALUE_PARAMS(p0, p1) p0##_type p0, \
607
+ p1##_type p1
608
+ #define GMOCK_INTERNAL_DECL_AND_3_VALUE_PARAMS(p0, p1, p2) p0##_type p0, \
609
+ p1##_type p1, p2##_type p2
610
+ #define GMOCK_INTERNAL_DECL_AND_4_VALUE_PARAMS(p0, p1, p2, p3) p0##_type p0, \
611
+ p1##_type p1, p2##_type p2, p3##_type p3
612
+ #define GMOCK_INTERNAL_DECL_AND_5_VALUE_PARAMS(p0, p1, p2, p3, \
613
+ p4) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, p4##_type p4
614
+ #define GMOCK_INTERNAL_DECL_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, \
615
+ p5) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, p4##_type p4, \
616
+ p5##_type p5
617
+ #define GMOCK_INTERNAL_DECL_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \
618
+ p6) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, p4##_type p4, \
619
+ p5##_type p5, p6##_type p6
620
+ #define GMOCK_INTERNAL_DECL_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \
621
+ p7) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, p4##_type p4, \
622
+ p5##_type p5, p6##_type p6, p7##_type p7
623
+ #define GMOCK_INTERNAL_DECL_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \
624
+ p7, p8) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \
625
+ p4##_type p4, p5##_type p5, p6##_type p6, p7##_type p7, p8##_type p8
626
+ #define GMOCK_INTERNAL_DECL_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \
627
+ p7, p8, p9) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \
628
+ p4##_type p4, p5##_type p5, p6##_type p6, p7##_type p7, p8##_type p8, \
629
+ p9##_type p9
630
+
631
+ // The suffix of the class template implementing the action template.
632
+ #define GMOCK_INTERNAL_COUNT_AND_0_VALUE_PARAMS()
633
+ #define GMOCK_INTERNAL_COUNT_AND_1_VALUE_PARAMS(p0) P
634
+ #define GMOCK_INTERNAL_COUNT_AND_2_VALUE_PARAMS(p0, p1) P2
635
+ #define GMOCK_INTERNAL_COUNT_AND_3_VALUE_PARAMS(p0, p1, p2) P3
636
+ #define GMOCK_INTERNAL_COUNT_AND_4_VALUE_PARAMS(p0, p1, p2, p3) P4
637
+ #define GMOCK_INTERNAL_COUNT_AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4) P5
638
+ #define GMOCK_INTERNAL_COUNT_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5) P6
639
+ #define GMOCK_INTERNAL_COUNT_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6) P7
640
+ #define GMOCK_INTERNAL_COUNT_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \
641
+ p7) P8
642
+ #define GMOCK_INTERNAL_COUNT_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \
643
+ p7, p8) P9
644
+ #define GMOCK_INTERNAL_COUNT_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \
645
+ p7, p8, p9) P10
646
+
647
+ // The name of the class template implementing the action template.
648
+ #define GMOCK_ACTION_CLASS_(name, value_params)\
649
+ GTEST_CONCAT_TOKEN_(name##Action, GMOCK_INTERNAL_COUNT_##value_params)
650
+
651
+ #define ACTION_TEMPLATE(name, template_params, value_params)\
652
+ template <GMOCK_INTERNAL_DECL_##template_params\
653
+ GMOCK_INTERNAL_DECL_TYPE_##value_params>\
654
+ class GMOCK_ACTION_CLASS_(name, value_params) {\
655
+ public:\
656
+ explicit GMOCK_ACTION_CLASS_(name, value_params)\
657
+ GMOCK_INTERNAL_INIT_##value_params {}\
658
+ template <typename F>\
659
+ class gmock_Impl : public ::testing::ActionInterface<F> {\
660
+ public:\
661
+ typedef F function_type;\
662
+ typedef typename ::testing::internal::Function<F>::Result return_type;\
663
+ typedef typename ::testing::internal::Function<F>::ArgumentTuple\
664
+ args_type;\
665
+ explicit gmock_Impl GMOCK_INTERNAL_INIT_##value_params {}\
666
+ return_type Perform(const args_type& args) override {\
667
+ return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
668
+ Perform(this, args);\
669
+ }\
670
+ template <typename arg0_type, typename arg1_type, typename arg2_type, \
671
+ typename arg3_type, typename arg4_type, typename arg5_type, \
672
+ typename arg6_type, typename arg7_type, typename arg8_type, \
673
+ typename arg9_type>\
674
+ return_type gmock_PerformImpl(const args_type& args, \
675
+ const arg0_type& arg0, const arg1_type& arg1, \
676
+ const arg2_type& arg2, const arg3_type& arg3, \
677
+ const arg4_type& arg4, const arg5_type& arg5, \
678
+ const arg6_type& arg6, const arg7_type& arg7, \
679
+ const arg8_type& arg8, const arg9_type& arg9) const;\
680
+ GMOCK_INTERNAL_DEFN_##value_params\
681
+ private:\
682
+ GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
683
+ };\
684
+ template <typename F> operator ::testing::Action<F>() const {\
685
+ return ::testing::Action<F>(\
686
+ new gmock_Impl<F>(GMOCK_INTERNAL_LIST_##value_params));\
687
+ }\
688
+ GMOCK_INTERNAL_DEFN_##value_params\
689
+ private:\
690
+ GTEST_DISALLOW_ASSIGN_(GMOCK_ACTION_CLASS_(name, value_params));\
691
+ };\
692
+ template <GMOCK_INTERNAL_DECL_##template_params\
693
+ GMOCK_INTERNAL_DECL_TYPE_##value_params>\
694
+ inline GMOCK_ACTION_CLASS_(name, value_params)<\
695
+ GMOCK_INTERNAL_LIST_##template_params\
696
+ GMOCK_INTERNAL_LIST_TYPE_##value_params> name(\
697
+ GMOCK_INTERNAL_DECL_##value_params) {\
698
+ return GMOCK_ACTION_CLASS_(name, value_params)<\
699
+ GMOCK_INTERNAL_LIST_##template_params\
700
+ GMOCK_INTERNAL_LIST_TYPE_##value_params>(\
701
+ GMOCK_INTERNAL_LIST_##value_params);\
702
+ }\
703
+ template <GMOCK_INTERNAL_DECL_##template_params\
704
+ GMOCK_INTERNAL_DECL_TYPE_##value_params>\
705
+ template <typename F>\
706
+ template <typename arg0_type, typename arg1_type, typename arg2_type, \
707
+ typename arg3_type, typename arg4_type, typename arg5_type, \
708
+ typename arg6_type, typename arg7_type, typename arg8_type, \
709
+ typename arg9_type>\
710
+ typename ::testing::internal::Function<F>::Result\
711
+ GMOCK_ACTION_CLASS_(name, value_params)<\
712
+ GMOCK_INTERNAL_LIST_##template_params\
713
+ GMOCK_INTERNAL_LIST_TYPE_##value_params>::gmock_Impl<F>::\
714
+ gmock_PerformImpl(\
715
+ GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const
716
+
717
+ #define ACTION(name)\
718
+ class name##Action {\
719
+ public:\
720
+ name##Action() {}\
721
+ template <typename F>\
722
+ class gmock_Impl : public ::testing::ActionInterface<F> {\
723
+ public:\
724
+ typedef F function_type;\
725
+ typedef typename ::testing::internal::Function<F>::Result return_type;\
726
+ typedef typename ::testing::internal::Function<F>::ArgumentTuple\
727
+ args_type;\
728
+ gmock_Impl() {}\
729
+ return_type Perform(const args_type& args) override {\
730
+ return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
731
+ Perform(this, args);\
732
+ }\
733
+ template <typename arg0_type, typename arg1_type, typename arg2_type, \
734
+ typename arg3_type, typename arg4_type, typename arg5_type, \
735
+ typename arg6_type, typename arg7_type, typename arg8_type, \
736
+ typename arg9_type>\
737
+ return_type gmock_PerformImpl(const args_type& args, \
738
+ const arg0_type& arg0, const arg1_type& arg1, \
739
+ const arg2_type& arg2, const arg3_type& arg3, \
740
+ const arg4_type& arg4, const arg5_type& arg5, \
741
+ const arg6_type& arg6, const arg7_type& arg7, \
742
+ const arg8_type& arg8, const arg9_type& arg9) const;\
743
+ private:\
744
+ GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
745
+ };\
746
+ template <typename F> operator ::testing::Action<F>() const {\
747
+ return ::testing::Action<F>(new gmock_Impl<F>());\
748
+ }\
749
+ private:\
750
+ GTEST_DISALLOW_ASSIGN_(name##Action);\
751
+ };\
752
+ inline name##Action name() {\
753
+ return name##Action();\
754
+ }\
755
+ template <typename F>\
756
+ template <typename arg0_type, typename arg1_type, typename arg2_type, \
757
+ typename arg3_type, typename arg4_type, typename arg5_type, \
758
+ typename arg6_type, typename arg7_type, typename arg8_type, \
759
+ typename arg9_type>\
760
+ typename ::testing::internal::Function<F>::Result\
761
+ name##Action::gmock_Impl<F>::gmock_PerformImpl(\
762
+ GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const
763
+
764
+ #define ACTION_P(name, p0)\
765
+ template <typename p0##_type>\
766
+ class name##ActionP {\
767
+ public:\
768
+ explicit name##ActionP(p0##_type gmock_p0) : \
769
+ p0(::std::forward<p0##_type>(gmock_p0)) {}\
770
+ template <typename F>\
771
+ class gmock_Impl : public ::testing::ActionInterface<F> {\
772
+ public:\
773
+ typedef F function_type;\
774
+ typedef typename ::testing::internal::Function<F>::Result return_type;\
775
+ typedef typename ::testing::internal::Function<F>::ArgumentTuple\
776
+ args_type;\
777
+ explicit gmock_Impl(p0##_type gmock_p0) : \
778
+ p0(::std::forward<p0##_type>(gmock_p0)) {}\
779
+ return_type Perform(const args_type& args) override {\
780
+ return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
781
+ Perform(this, args);\
782
+ }\
783
+ template <typename arg0_type, typename arg1_type, typename arg2_type, \
784
+ typename arg3_type, typename arg4_type, typename arg5_type, \
785
+ typename arg6_type, typename arg7_type, typename arg8_type, \
786
+ typename arg9_type>\
787
+ return_type gmock_PerformImpl(const args_type& args, \
788
+ const arg0_type& arg0, const arg1_type& arg1, \
789
+ const arg2_type& arg2, const arg3_type& arg3, \
790
+ const arg4_type& arg4, const arg5_type& arg5, \
791
+ const arg6_type& arg6, const arg7_type& arg7, \
792
+ const arg8_type& arg8, const arg9_type& arg9) const;\
793
+ p0##_type p0;\
794
+ private:\
795
+ GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
796
+ };\
797
+ template <typename F> operator ::testing::Action<F>() const {\
798
+ return ::testing::Action<F>(new gmock_Impl<F>(p0));\
799
+ }\
800
+ p0##_type p0;\
801
+ private:\
802
+ GTEST_DISALLOW_ASSIGN_(name##ActionP);\
803
+ };\
804
+ template <typename p0##_type>\
805
+ inline name##ActionP<p0##_type> name(p0##_type p0) {\
806
+ return name##ActionP<p0##_type>(p0);\
807
+ }\
808
+ template <typename p0##_type>\
809
+ template <typename F>\
810
+ template <typename arg0_type, typename arg1_type, typename arg2_type, \
811
+ typename arg3_type, typename arg4_type, typename arg5_type, \
812
+ typename arg6_type, typename arg7_type, typename arg8_type, \
813
+ typename arg9_type>\
814
+ typename ::testing::internal::Function<F>::Result\
815
+ name##ActionP<p0##_type>::gmock_Impl<F>::gmock_PerformImpl(\
816
+ GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const
817
+
818
+ #define ACTION_P2(name, p0, p1)\
819
+ template <typename p0##_type, typename p1##_type>\
820
+ class name##ActionP2 {\
821
+ public:\
822
+ name##ActionP2(p0##_type gmock_p0, \
823
+ p1##_type gmock_p1) : p0(::std::forward<p0##_type>(gmock_p0)), \
824
+ p1(::std::forward<p1##_type>(gmock_p1)) {}\
825
+ template <typename F>\
826
+ class gmock_Impl : public ::testing::ActionInterface<F> {\
827
+ public:\
828
+ typedef F function_type;\
829
+ typedef typename ::testing::internal::Function<F>::Result return_type;\
830
+ typedef typename ::testing::internal::Function<F>::ArgumentTuple\
831
+ args_type;\
832
+ gmock_Impl(p0##_type gmock_p0, \
833
+ p1##_type gmock_p1) : p0(::std::forward<p0##_type>(gmock_p0)), \
834
+ p1(::std::forward<p1##_type>(gmock_p1)) {}\
835
+ return_type Perform(const args_type& args) override {\
836
+ return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
837
+ Perform(this, args);\
838
+ }\
839
+ template <typename arg0_type, typename arg1_type, typename arg2_type, \
840
+ typename arg3_type, typename arg4_type, typename arg5_type, \
841
+ typename arg6_type, typename arg7_type, typename arg8_type, \
842
+ typename arg9_type>\
843
+ return_type gmock_PerformImpl(const args_type& args, \
844
+ const arg0_type& arg0, const arg1_type& arg1, \
845
+ const arg2_type& arg2, const arg3_type& arg3, \
846
+ const arg4_type& arg4, const arg5_type& arg5, \
847
+ const arg6_type& arg6, const arg7_type& arg7, \
848
+ const arg8_type& arg8, const arg9_type& arg9) const;\
849
+ p0##_type p0;\
850
+ p1##_type p1;\
851
+ private:\
852
+ GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
853
+ };\
854
+ template <typename F> operator ::testing::Action<F>() const {\
855
+ return ::testing::Action<F>(new gmock_Impl<F>(p0, p1));\
856
+ }\
857
+ p0##_type p0;\
858
+ p1##_type p1;\
859
+ private:\
860
+ GTEST_DISALLOW_ASSIGN_(name##ActionP2);\
861
+ };\
862
+ template <typename p0##_type, typename p1##_type>\
863
+ inline name##ActionP2<p0##_type, p1##_type> name(p0##_type p0, \
864
+ p1##_type p1) {\
865
+ return name##ActionP2<p0##_type, p1##_type>(p0, p1);\
866
+ }\
867
+ template <typename p0##_type, typename p1##_type>\
868
+ template <typename F>\
869
+ template <typename arg0_type, typename arg1_type, typename arg2_type, \
870
+ typename arg3_type, typename arg4_type, typename arg5_type, \
871
+ typename arg6_type, typename arg7_type, typename arg8_type, \
872
+ typename arg9_type>\
873
+ typename ::testing::internal::Function<F>::Result\
874
+ name##ActionP2<p0##_type, p1##_type>::gmock_Impl<F>::gmock_PerformImpl(\
875
+ GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const
876
+
877
+ #define ACTION_P3(name, p0, p1, p2)\
878
+ template <typename p0##_type, typename p1##_type, typename p2##_type>\
879
+ class name##ActionP3 {\
880
+ public:\
881
+ name##ActionP3(p0##_type gmock_p0, p1##_type gmock_p1, \
882
+ p2##_type gmock_p2) : p0(::std::forward<p0##_type>(gmock_p0)), \
883
+ p1(::std::forward<p1##_type>(gmock_p1)), \
884
+ p2(::std::forward<p2##_type>(gmock_p2)) {}\
885
+ template <typename F>\
886
+ class gmock_Impl : public ::testing::ActionInterface<F> {\
887
+ public:\
888
+ typedef F function_type;\
889
+ typedef typename ::testing::internal::Function<F>::Result return_type;\
890
+ typedef typename ::testing::internal::Function<F>::ArgumentTuple\
891
+ args_type;\
892
+ gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, \
893
+ p2##_type gmock_p2) : p0(::std::forward<p0##_type>(gmock_p0)), \
894
+ p1(::std::forward<p1##_type>(gmock_p1)), \
895
+ p2(::std::forward<p2##_type>(gmock_p2)) {}\
896
+ return_type Perform(const args_type& args) override {\
897
+ return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
898
+ Perform(this, args);\
899
+ }\
900
+ template <typename arg0_type, typename arg1_type, typename arg2_type, \
901
+ typename arg3_type, typename arg4_type, typename arg5_type, \
902
+ typename arg6_type, typename arg7_type, typename arg8_type, \
903
+ typename arg9_type>\
904
+ return_type gmock_PerformImpl(const args_type& args, \
905
+ const arg0_type& arg0, const arg1_type& arg1, \
906
+ const arg2_type& arg2, const arg3_type& arg3, \
907
+ const arg4_type& arg4, const arg5_type& arg5, \
908
+ const arg6_type& arg6, const arg7_type& arg7, \
909
+ const arg8_type& arg8, const arg9_type& arg9) const;\
910
+ p0##_type p0;\
911
+ p1##_type p1;\
912
+ p2##_type p2;\
913
+ private:\
914
+ GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
915
+ };\
916
+ template <typename F> operator ::testing::Action<F>() const {\
917
+ return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2));\
918
+ }\
919
+ p0##_type p0;\
920
+ p1##_type p1;\
921
+ p2##_type p2;\
922
+ private:\
923
+ GTEST_DISALLOW_ASSIGN_(name##ActionP3);\
924
+ };\
925
+ template <typename p0##_type, typename p1##_type, typename p2##_type>\
926
+ inline name##ActionP3<p0##_type, p1##_type, p2##_type> name(p0##_type p0, \
927
+ p1##_type p1, p2##_type p2) {\
928
+ return name##ActionP3<p0##_type, p1##_type, p2##_type>(p0, p1, p2);\
929
+ }\
930
+ template <typename p0##_type, typename p1##_type, typename p2##_type>\
931
+ template <typename F>\
932
+ template <typename arg0_type, typename arg1_type, typename arg2_type, \
933
+ typename arg3_type, typename arg4_type, typename arg5_type, \
934
+ typename arg6_type, typename arg7_type, typename arg8_type, \
935
+ typename arg9_type>\
936
+ typename ::testing::internal::Function<F>::Result\
937
+ name##ActionP3<p0##_type, p1##_type, \
938
+ p2##_type>::gmock_Impl<F>::gmock_PerformImpl(\
939
+ GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const
940
+
941
+ #define ACTION_P4(name, p0, p1, p2, p3)\
942
+ template <typename p0##_type, typename p1##_type, typename p2##_type, \
943
+ typename p3##_type>\
944
+ class name##ActionP4 {\
945
+ public:\
946
+ name##ActionP4(p0##_type gmock_p0, p1##_type gmock_p1, \
947
+ p2##_type gmock_p2, \
948
+ p3##_type gmock_p3) : p0(::std::forward<p0##_type>(gmock_p0)), \
949
+ p1(::std::forward<p1##_type>(gmock_p1)), \
950
+ p2(::std::forward<p2##_type>(gmock_p2)), \
951
+ p3(::std::forward<p3##_type>(gmock_p3)) {}\
952
+ template <typename F>\
953
+ class gmock_Impl : public ::testing::ActionInterface<F> {\
954
+ public:\
955
+ typedef F function_type;\
956
+ typedef typename ::testing::internal::Function<F>::Result return_type;\
957
+ typedef typename ::testing::internal::Function<F>::ArgumentTuple\
958
+ args_type;\
959
+ gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
960
+ p3##_type gmock_p3) : p0(::std::forward<p0##_type>(gmock_p0)), \
961
+ p1(::std::forward<p1##_type>(gmock_p1)), \
962
+ p2(::std::forward<p2##_type>(gmock_p2)), \
963
+ p3(::std::forward<p3##_type>(gmock_p3)) {}\
964
+ return_type Perform(const args_type& args) override {\
965
+ return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
966
+ Perform(this, args);\
967
+ }\
968
+ template <typename arg0_type, typename arg1_type, typename arg2_type, \
969
+ typename arg3_type, typename arg4_type, typename arg5_type, \
970
+ typename arg6_type, typename arg7_type, typename arg8_type, \
971
+ typename arg9_type>\
972
+ return_type gmock_PerformImpl(const args_type& args, \
973
+ const arg0_type& arg0, const arg1_type& arg1, \
974
+ const arg2_type& arg2, const arg3_type& arg3, \
975
+ const arg4_type& arg4, const arg5_type& arg5, \
976
+ const arg6_type& arg6, const arg7_type& arg7, \
977
+ const arg8_type& arg8, const arg9_type& arg9) const;\
978
+ p0##_type p0;\
979
+ p1##_type p1;\
980
+ p2##_type p2;\
981
+ p3##_type p3;\
982
+ private:\
983
+ GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
984
+ };\
985
+ template <typename F> operator ::testing::Action<F>() const {\
986
+ return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3));\
987
+ }\
988
+ p0##_type p0;\
989
+ p1##_type p1;\
990
+ p2##_type p2;\
991
+ p3##_type p3;\
992
+ private:\
993
+ GTEST_DISALLOW_ASSIGN_(name##ActionP4);\
994
+ };\
995
+ template <typename p0##_type, typename p1##_type, typename p2##_type, \
996
+ typename p3##_type>\
997
+ inline name##ActionP4<p0##_type, p1##_type, p2##_type, \
998
+ p3##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, \
999
+ p3##_type p3) {\
1000
+ return name##ActionP4<p0##_type, p1##_type, p2##_type, p3##_type>(p0, p1, \
1001
+ p2, p3);\
1002
+ }\
1003
+ template <typename p0##_type, typename p1##_type, typename p2##_type, \
1004
+ typename p3##_type>\
1005
+ template <typename F>\
1006
+ template <typename arg0_type, typename arg1_type, typename arg2_type, \
1007
+ typename arg3_type, typename arg4_type, typename arg5_type, \
1008
+ typename arg6_type, typename arg7_type, typename arg8_type, \
1009
+ typename arg9_type>\
1010
+ typename ::testing::internal::Function<F>::Result\
1011
+ name##ActionP4<p0##_type, p1##_type, p2##_type, \
1012
+ p3##_type>::gmock_Impl<F>::gmock_PerformImpl(\
1013
+ GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const
1014
+
1015
+ #define ACTION_P5(name, p0, p1, p2, p3, p4)\
1016
+ template <typename p0##_type, typename p1##_type, typename p2##_type, \
1017
+ typename p3##_type, typename p4##_type>\
1018
+ class name##ActionP5 {\
1019
+ public:\
1020
+ name##ActionP5(p0##_type gmock_p0, p1##_type gmock_p1, \
1021
+ p2##_type gmock_p2, p3##_type gmock_p3, \
1022
+ p4##_type gmock_p4) : p0(::std::forward<p0##_type>(gmock_p0)), \
1023
+ p1(::std::forward<p1##_type>(gmock_p1)), \
1024
+ p2(::std::forward<p2##_type>(gmock_p2)), \
1025
+ p3(::std::forward<p3##_type>(gmock_p3)), \
1026
+ p4(::std::forward<p4##_type>(gmock_p4)) {}\
1027
+ template <typename F>\
1028
+ class gmock_Impl : public ::testing::ActionInterface<F> {\
1029
+ public:\
1030
+ typedef F function_type;\
1031
+ typedef typename ::testing::internal::Function<F>::Result return_type;\
1032
+ typedef typename ::testing::internal::Function<F>::ArgumentTuple\
1033
+ args_type;\
1034
+ gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1035
+ p3##_type gmock_p3, \
1036
+ p4##_type gmock_p4) : p0(::std::forward<p0##_type>(gmock_p0)), \
1037
+ p1(::std::forward<p1##_type>(gmock_p1)), \
1038
+ p2(::std::forward<p2##_type>(gmock_p2)), \
1039
+ p3(::std::forward<p3##_type>(gmock_p3)), \
1040
+ p4(::std::forward<p4##_type>(gmock_p4)) {}\
1041
+ return_type Perform(const args_type& args) override {\
1042
+ return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
1043
+ Perform(this, args);\
1044
+ }\
1045
+ template <typename arg0_type, typename arg1_type, typename arg2_type, \
1046
+ typename arg3_type, typename arg4_type, typename arg5_type, \
1047
+ typename arg6_type, typename arg7_type, typename arg8_type, \
1048
+ typename arg9_type>\
1049
+ return_type gmock_PerformImpl(const args_type& args, \
1050
+ const arg0_type& arg0, const arg1_type& arg1, \
1051
+ const arg2_type& arg2, const arg3_type& arg3, \
1052
+ const arg4_type& arg4, const arg5_type& arg5, \
1053
+ const arg6_type& arg6, const arg7_type& arg7, \
1054
+ const arg8_type& arg8, const arg9_type& arg9) const;\
1055
+ p0##_type p0;\
1056
+ p1##_type p1;\
1057
+ p2##_type p2;\
1058
+ p3##_type p3;\
1059
+ p4##_type p4;\
1060
+ private:\
1061
+ GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
1062
+ };\
1063
+ template <typename F> operator ::testing::Action<F>() const {\
1064
+ return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4));\
1065
+ }\
1066
+ p0##_type p0;\
1067
+ p1##_type p1;\
1068
+ p2##_type p2;\
1069
+ p3##_type p3;\
1070
+ p4##_type p4;\
1071
+ private:\
1072
+ GTEST_DISALLOW_ASSIGN_(name##ActionP5);\
1073
+ };\
1074
+ template <typename p0##_type, typename p1##_type, typename p2##_type, \
1075
+ typename p3##_type, typename p4##_type>\
1076
+ inline name##ActionP5<p0##_type, p1##_type, p2##_type, p3##_type, \
1077
+ p4##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \
1078
+ p4##_type p4) {\
1079
+ return name##ActionP5<p0##_type, p1##_type, p2##_type, p3##_type, \
1080
+ p4##_type>(p0, p1, p2, p3, p4);\
1081
+ }\
1082
+ template <typename p0##_type, typename p1##_type, typename p2##_type, \
1083
+ typename p3##_type, typename p4##_type>\
1084
+ template <typename F>\
1085
+ template <typename arg0_type, typename arg1_type, typename arg2_type, \
1086
+ typename arg3_type, typename arg4_type, typename arg5_type, \
1087
+ typename arg6_type, typename arg7_type, typename arg8_type, \
1088
+ typename arg9_type>\
1089
+ typename ::testing::internal::Function<F>::Result\
1090
+ name##ActionP5<p0##_type, p1##_type, p2##_type, p3##_type, \
1091
+ p4##_type>::gmock_Impl<F>::gmock_PerformImpl(\
1092
+ GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const
1093
+
1094
+ #define ACTION_P6(name, p0, p1, p2, p3, p4, p5)\
1095
+ template <typename p0##_type, typename p1##_type, typename p2##_type, \
1096
+ typename p3##_type, typename p4##_type, typename p5##_type>\
1097
+ class name##ActionP6 {\
1098
+ public:\
1099
+ name##ActionP6(p0##_type gmock_p0, p1##_type gmock_p1, \
1100
+ p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \
1101
+ p5##_type gmock_p5) : p0(::std::forward<p0##_type>(gmock_p0)), \
1102
+ p1(::std::forward<p1##_type>(gmock_p1)), \
1103
+ p2(::std::forward<p2##_type>(gmock_p2)), \
1104
+ p3(::std::forward<p3##_type>(gmock_p3)), \
1105
+ p4(::std::forward<p4##_type>(gmock_p4)), \
1106
+ p5(::std::forward<p5##_type>(gmock_p5)) {}\
1107
+ template <typename F>\
1108
+ class gmock_Impl : public ::testing::ActionInterface<F> {\
1109
+ public:\
1110
+ typedef F function_type;\
1111
+ typedef typename ::testing::internal::Function<F>::Result return_type;\
1112
+ typedef typename ::testing::internal::Function<F>::ArgumentTuple\
1113
+ args_type;\
1114
+ gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1115
+ p3##_type gmock_p3, p4##_type gmock_p4, \
1116
+ p5##_type gmock_p5) : p0(::std::forward<p0##_type>(gmock_p0)), \
1117
+ p1(::std::forward<p1##_type>(gmock_p1)), \
1118
+ p2(::std::forward<p2##_type>(gmock_p2)), \
1119
+ p3(::std::forward<p3##_type>(gmock_p3)), \
1120
+ p4(::std::forward<p4##_type>(gmock_p4)), \
1121
+ p5(::std::forward<p5##_type>(gmock_p5)) {}\
1122
+ return_type Perform(const args_type& args) override {\
1123
+ return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
1124
+ Perform(this, args);\
1125
+ }\
1126
+ template <typename arg0_type, typename arg1_type, typename arg2_type, \
1127
+ typename arg3_type, typename arg4_type, typename arg5_type, \
1128
+ typename arg6_type, typename arg7_type, typename arg8_type, \
1129
+ typename arg9_type>\
1130
+ return_type gmock_PerformImpl(const args_type& args, \
1131
+ const arg0_type& arg0, const arg1_type& arg1, \
1132
+ const arg2_type& arg2, const arg3_type& arg3, \
1133
+ const arg4_type& arg4, const arg5_type& arg5, \
1134
+ const arg6_type& arg6, const arg7_type& arg7, \
1135
+ const arg8_type& arg8, const arg9_type& arg9) const;\
1136
+ p0##_type p0;\
1137
+ p1##_type p1;\
1138
+ p2##_type p2;\
1139
+ p3##_type p3;\
1140
+ p4##_type p4;\
1141
+ p5##_type p5;\
1142
+ private:\
1143
+ GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
1144
+ };\
1145
+ template <typename F> operator ::testing::Action<F>() const {\
1146
+ return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5));\
1147
+ }\
1148
+ p0##_type p0;\
1149
+ p1##_type p1;\
1150
+ p2##_type p2;\
1151
+ p3##_type p3;\
1152
+ p4##_type p4;\
1153
+ p5##_type p5;\
1154
+ private:\
1155
+ GTEST_DISALLOW_ASSIGN_(name##ActionP6);\
1156
+ };\
1157
+ template <typename p0##_type, typename p1##_type, typename p2##_type, \
1158
+ typename p3##_type, typename p4##_type, typename p5##_type>\
1159
+ inline name##ActionP6<p0##_type, p1##_type, p2##_type, p3##_type, \
1160
+ p4##_type, p5##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, \
1161
+ p3##_type p3, p4##_type p4, p5##_type p5) {\
1162
+ return name##ActionP6<p0##_type, p1##_type, p2##_type, p3##_type, \
1163
+ p4##_type, p5##_type>(p0, p1, p2, p3, p4, p5);\
1164
+ }\
1165
+ template <typename p0##_type, typename p1##_type, typename p2##_type, \
1166
+ typename p3##_type, typename p4##_type, typename p5##_type>\
1167
+ template <typename F>\
1168
+ template <typename arg0_type, typename arg1_type, typename arg2_type, \
1169
+ typename arg3_type, typename arg4_type, typename arg5_type, \
1170
+ typename arg6_type, typename arg7_type, typename arg8_type, \
1171
+ typename arg9_type>\
1172
+ typename ::testing::internal::Function<F>::Result\
1173
+ name##ActionP6<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \
1174
+ p5##_type>::gmock_Impl<F>::gmock_PerformImpl(\
1175
+ GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const
1176
+
1177
+ #define ACTION_P7(name, p0, p1, p2, p3, p4, p5, p6)\
1178
+ template <typename p0##_type, typename p1##_type, typename p2##_type, \
1179
+ typename p3##_type, typename p4##_type, typename p5##_type, \
1180
+ typename p6##_type>\
1181
+ class name##ActionP7 {\
1182
+ public:\
1183
+ name##ActionP7(p0##_type gmock_p0, p1##_type gmock_p1, \
1184
+ p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \
1185
+ p5##_type gmock_p5, \
1186
+ p6##_type gmock_p6) : p0(::std::forward<p0##_type>(gmock_p0)), \
1187
+ p1(::std::forward<p1##_type>(gmock_p1)), \
1188
+ p2(::std::forward<p2##_type>(gmock_p2)), \
1189
+ p3(::std::forward<p3##_type>(gmock_p3)), \
1190
+ p4(::std::forward<p4##_type>(gmock_p4)), \
1191
+ p5(::std::forward<p5##_type>(gmock_p5)), \
1192
+ p6(::std::forward<p6##_type>(gmock_p6)) {}\
1193
+ template <typename F>\
1194
+ class gmock_Impl : public ::testing::ActionInterface<F> {\
1195
+ public:\
1196
+ typedef F function_type;\
1197
+ typedef typename ::testing::internal::Function<F>::Result return_type;\
1198
+ typedef typename ::testing::internal::Function<F>::ArgumentTuple\
1199
+ args_type;\
1200
+ gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1201
+ p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \
1202
+ p6##_type gmock_p6) : p0(::std::forward<p0##_type>(gmock_p0)), \
1203
+ p1(::std::forward<p1##_type>(gmock_p1)), \
1204
+ p2(::std::forward<p2##_type>(gmock_p2)), \
1205
+ p3(::std::forward<p3##_type>(gmock_p3)), \
1206
+ p4(::std::forward<p4##_type>(gmock_p4)), \
1207
+ p5(::std::forward<p5##_type>(gmock_p5)), \
1208
+ p6(::std::forward<p6##_type>(gmock_p6)) {}\
1209
+ return_type Perform(const args_type& args) override {\
1210
+ return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
1211
+ Perform(this, args);\
1212
+ }\
1213
+ template <typename arg0_type, typename arg1_type, typename arg2_type, \
1214
+ typename arg3_type, typename arg4_type, typename arg5_type, \
1215
+ typename arg6_type, typename arg7_type, typename arg8_type, \
1216
+ typename arg9_type>\
1217
+ return_type gmock_PerformImpl(const args_type& args, \
1218
+ const arg0_type& arg0, const arg1_type& arg1, \
1219
+ const arg2_type& arg2, const arg3_type& arg3, \
1220
+ const arg4_type& arg4, const arg5_type& arg5, \
1221
+ const arg6_type& arg6, const arg7_type& arg7, \
1222
+ const arg8_type& arg8, const arg9_type& arg9) const;\
1223
+ p0##_type p0;\
1224
+ p1##_type p1;\
1225
+ p2##_type p2;\
1226
+ p3##_type p3;\
1227
+ p4##_type p4;\
1228
+ p5##_type p5;\
1229
+ p6##_type p6;\
1230
+ private:\
1231
+ GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
1232
+ };\
1233
+ template <typename F> operator ::testing::Action<F>() const {\
1234
+ return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5, \
1235
+ p6));\
1236
+ }\
1237
+ p0##_type p0;\
1238
+ p1##_type p1;\
1239
+ p2##_type p2;\
1240
+ p3##_type p3;\
1241
+ p4##_type p4;\
1242
+ p5##_type p5;\
1243
+ p6##_type p6;\
1244
+ private:\
1245
+ GTEST_DISALLOW_ASSIGN_(name##ActionP7);\
1246
+ };\
1247
+ template <typename p0##_type, typename p1##_type, typename p2##_type, \
1248
+ typename p3##_type, typename p4##_type, typename p5##_type, \
1249
+ typename p6##_type>\
1250
+ inline name##ActionP7<p0##_type, p1##_type, p2##_type, p3##_type, \
1251
+ p4##_type, p5##_type, p6##_type> name(p0##_type p0, p1##_type p1, \
1252
+ p2##_type p2, p3##_type p3, p4##_type p4, p5##_type p5, \
1253
+ p6##_type p6) {\
1254
+ return name##ActionP7<p0##_type, p1##_type, p2##_type, p3##_type, \
1255
+ p4##_type, p5##_type, p6##_type>(p0, p1, p2, p3, p4, p5, p6);\
1256
+ }\
1257
+ template <typename p0##_type, typename p1##_type, typename p2##_type, \
1258
+ typename p3##_type, typename p4##_type, typename p5##_type, \
1259
+ typename p6##_type>\
1260
+ template <typename F>\
1261
+ template <typename arg0_type, typename arg1_type, typename arg2_type, \
1262
+ typename arg3_type, typename arg4_type, typename arg5_type, \
1263
+ typename arg6_type, typename arg7_type, typename arg8_type, \
1264
+ typename arg9_type>\
1265
+ typename ::testing::internal::Function<F>::Result\
1266
+ name##ActionP7<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \
1267
+ p5##_type, p6##_type>::gmock_Impl<F>::gmock_PerformImpl(\
1268
+ GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const
1269
+
1270
+ #define ACTION_P8(name, p0, p1, p2, p3, p4, p5, p6, p7)\
1271
+ template <typename p0##_type, typename p1##_type, typename p2##_type, \
1272
+ typename p3##_type, typename p4##_type, typename p5##_type, \
1273
+ typename p6##_type, typename p7##_type>\
1274
+ class name##ActionP8 {\
1275
+ public:\
1276
+ name##ActionP8(p0##_type gmock_p0, p1##_type gmock_p1, \
1277
+ p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \
1278
+ p5##_type gmock_p5, p6##_type gmock_p6, \
1279
+ p7##_type gmock_p7) : p0(::std::forward<p0##_type>(gmock_p0)), \
1280
+ p1(::std::forward<p1##_type>(gmock_p1)), \
1281
+ p2(::std::forward<p2##_type>(gmock_p2)), \
1282
+ p3(::std::forward<p3##_type>(gmock_p3)), \
1283
+ p4(::std::forward<p4##_type>(gmock_p4)), \
1284
+ p5(::std::forward<p5##_type>(gmock_p5)), \
1285
+ p6(::std::forward<p6##_type>(gmock_p6)), \
1286
+ p7(::std::forward<p7##_type>(gmock_p7)) {}\
1287
+ template <typename F>\
1288
+ class gmock_Impl : public ::testing::ActionInterface<F> {\
1289
+ public:\
1290
+ typedef F function_type;\
1291
+ typedef typename ::testing::internal::Function<F>::Result return_type;\
1292
+ typedef typename ::testing::internal::Function<F>::ArgumentTuple\
1293
+ args_type;\
1294
+ gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1295
+ p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \
1296
+ p6##_type gmock_p6, \
1297
+ p7##_type gmock_p7) : p0(::std::forward<p0##_type>(gmock_p0)), \
1298
+ p1(::std::forward<p1##_type>(gmock_p1)), \
1299
+ p2(::std::forward<p2##_type>(gmock_p2)), \
1300
+ p3(::std::forward<p3##_type>(gmock_p3)), \
1301
+ p4(::std::forward<p4##_type>(gmock_p4)), \
1302
+ p5(::std::forward<p5##_type>(gmock_p5)), \
1303
+ p6(::std::forward<p6##_type>(gmock_p6)), \
1304
+ p7(::std::forward<p7##_type>(gmock_p7)) {}\
1305
+ return_type Perform(const args_type& args) override {\
1306
+ return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
1307
+ Perform(this, args);\
1308
+ }\
1309
+ template <typename arg0_type, typename arg1_type, typename arg2_type, \
1310
+ typename arg3_type, typename arg4_type, typename arg5_type, \
1311
+ typename arg6_type, typename arg7_type, typename arg8_type, \
1312
+ typename arg9_type>\
1313
+ return_type gmock_PerformImpl(const args_type& args, \
1314
+ const arg0_type& arg0, const arg1_type& arg1, \
1315
+ const arg2_type& arg2, const arg3_type& arg3, \
1316
+ const arg4_type& arg4, const arg5_type& arg5, \
1317
+ const arg6_type& arg6, const arg7_type& arg7, \
1318
+ const arg8_type& arg8, const arg9_type& arg9) const;\
1319
+ p0##_type p0;\
1320
+ p1##_type p1;\
1321
+ p2##_type p2;\
1322
+ p3##_type p3;\
1323
+ p4##_type p4;\
1324
+ p5##_type p5;\
1325
+ p6##_type p6;\
1326
+ p7##_type p7;\
1327
+ private:\
1328
+ GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
1329
+ };\
1330
+ template <typename F> operator ::testing::Action<F>() const {\
1331
+ return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5, \
1332
+ p6, p7));\
1333
+ }\
1334
+ p0##_type p0;\
1335
+ p1##_type p1;\
1336
+ p2##_type p2;\
1337
+ p3##_type p3;\
1338
+ p4##_type p4;\
1339
+ p5##_type p5;\
1340
+ p6##_type p6;\
1341
+ p7##_type p7;\
1342
+ private:\
1343
+ GTEST_DISALLOW_ASSIGN_(name##ActionP8);\
1344
+ };\
1345
+ template <typename p0##_type, typename p1##_type, typename p2##_type, \
1346
+ typename p3##_type, typename p4##_type, typename p5##_type, \
1347
+ typename p6##_type, typename p7##_type>\
1348
+ inline name##ActionP8<p0##_type, p1##_type, p2##_type, p3##_type, \
1349
+ p4##_type, p5##_type, p6##_type, p7##_type> name(p0##_type p0, \
1350
+ p1##_type p1, p2##_type p2, p3##_type p3, p4##_type p4, p5##_type p5, \
1351
+ p6##_type p6, p7##_type p7) {\
1352
+ return name##ActionP8<p0##_type, p1##_type, p2##_type, p3##_type, \
1353
+ p4##_type, p5##_type, p6##_type, p7##_type>(p0, p1, p2, p3, p4, p5, \
1354
+ p6, p7);\
1355
+ }\
1356
+ template <typename p0##_type, typename p1##_type, typename p2##_type, \
1357
+ typename p3##_type, typename p4##_type, typename p5##_type, \
1358
+ typename p6##_type, typename p7##_type>\
1359
+ template <typename F>\
1360
+ template <typename arg0_type, typename arg1_type, typename arg2_type, \
1361
+ typename arg3_type, typename arg4_type, typename arg5_type, \
1362
+ typename arg6_type, typename arg7_type, typename arg8_type, \
1363
+ typename arg9_type>\
1364
+ typename ::testing::internal::Function<F>::Result\
1365
+ name##ActionP8<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \
1366
+ p5##_type, p6##_type, \
1367
+ p7##_type>::gmock_Impl<F>::gmock_PerformImpl(\
1368
+ GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const
1369
+
1370
+ #define ACTION_P9(name, p0, p1, p2, p3, p4, p5, p6, p7, p8)\
1371
+ template <typename p0##_type, typename p1##_type, typename p2##_type, \
1372
+ typename p3##_type, typename p4##_type, typename p5##_type, \
1373
+ typename p6##_type, typename p7##_type, typename p8##_type>\
1374
+ class name##ActionP9 {\
1375
+ public:\
1376
+ name##ActionP9(p0##_type gmock_p0, p1##_type gmock_p1, \
1377
+ p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \
1378
+ p5##_type gmock_p5, p6##_type gmock_p6, p7##_type gmock_p7, \
1379
+ p8##_type gmock_p8) : p0(::std::forward<p0##_type>(gmock_p0)), \
1380
+ p1(::std::forward<p1##_type>(gmock_p1)), \
1381
+ p2(::std::forward<p2##_type>(gmock_p2)), \
1382
+ p3(::std::forward<p3##_type>(gmock_p3)), \
1383
+ p4(::std::forward<p4##_type>(gmock_p4)), \
1384
+ p5(::std::forward<p5##_type>(gmock_p5)), \
1385
+ p6(::std::forward<p6##_type>(gmock_p6)), \
1386
+ p7(::std::forward<p7##_type>(gmock_p7)), \
1387
+ p8(::std::forward<p8##_type>(gmock_p8)) {}\
1388
+ template <typename F>\
1389
+ class gmock_Impl : public ::testing::ActionInterface<F> {\
1390
+ public:\
1391
+ typedef F function_type;\
1392
+ typedef typename ::testing::internal::Function<F>::Result return_type;\
1393
+ typedef typename ::testing::internal::Function<F>::ArgumentTuple\
1394
+ args_type;\
1395
+ gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1396
+ p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \
1397
+ p6##_type gmock_p6, p7##_type gmock_p7, \
1398
+ p8##_type gmock_p8) : p0(::std::forward<p0##_type>(gmock_p0)), \
1399
+ p1(::std::forward<p1##_type>(gmock_p1)), \
1400
+ p2(::std::forward<p2##_type>(gmock_p2)), \
1401
+ p3(::std::forward<p3##_type>(gmock_p3)), \
1402
+ p4(::std::forward<p4##_type>(gmock_p4)), \
1403
+ p5(::std::forward<p5##_type>(gmock_p5)), \
1404
+ p6(::std::forward<p6##_type>(gmock_p6)), \
1405
+ p7(::std::forward<p7##_type>(gmock_p7)), \
1406
+ p8(::std::forward<p8##_type>(gmock_p8)) {}\
1407
+ return_type Perform(const args_type& args) override {\
1408
+ return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
1409
+ Perform(this, args);\
1410
+ }\
1411
+ template <typename arg0_type, typename arg1_type, typename arg2_type, \
1412
+ typename arg3_type, typename arg4_type, typename arg5_type, \
1413
+ typename arg6_type, typename arg7_type, typename arg8_type, \
1414
+ typename arg9_type>\
1415
+ return_type gmock_PerformImpl(const args_type& args, \
1416
+ const arg0_type& arg0, const arg1_type& arg1, \
1417
+ const arg2_type& arg2, const arg3_type& arg3, \
1418
+ const arg4_type& arg4, const arg5_type& arg5, \
1419
+ const arg6_type& arg6, const arg7_type& arg7, \
1420
+ const arg8_type& arg8, const arg9_type& arg9) const;\
1421
+ p0##_type p0;\
1422
+ p1##_type p1;\
1423
+ p2##_type p2;\
1424
+ p3##_type p3;\
1425
+ p4##_type p4;\
1426
+ p5##_type p5;\
1427
+ p6##_type p6;\
1428
+ p7##_type p7;\
1429
+ p8##_type p8;\
1430
+ private:\
1431
+ GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
1432
+ };\
1433
+ template <typename F> operator ::testing::Action<F>() const {\
1434
+ return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5, \
1435
+ p6, p7, p8));\
1436
+ }\
1437
+ p0##_type p0;\
1438
+ p1##_type p1;\
1439
+ p2##_type p2;\
1440
+ p3##_type p3;\
1441
+ p4##_type p4;\
1442
+ p5##_type p5;\
1443
+ p6##_type p6;\
1444
+ p7##_type p7;\
1445
+ p8##_type p8;\
1446
+ private:\
1447
+ GTEST_DISALLOW_ASSIGN_(name##ActionP9);\
1448
+ };\
1449
+ template <typename p0##_type, typename p1##_type, typename p2##_type, \
1450
+ typename p3##_type, typename p4##_type, typename p5##_type, \
1451
+ typename p6##_type, typename p7##_type, typename p8##_type>\
1452
+ inline name##ActionP9<p0##_type, p1##_type, p2##_type, p3##_type, \
1453
+ p4##_type, p5##_type, p6##_type, p7##_type, \
1454
+ p8##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \
1455
+ p4##_type p4, p5##_type p5, p6##_type p6, p7##_type p7, \
1456
+ p8##_type p8) {\
1457
+ return name##ActionP9<p0##_type, p1##_type, p2##_type, p3##_type, \
1458
+ p4##_type, p5##_type, p6##_type, p7##_type, p8##_type>(p0, p1, p2, \
1459
+ p3, p4, p5, p6, p7, p8);\
1460
+ }\
1461
+ template <typename p0##_type, typename p1##_type, typename p2##_type, \
1462
+ typename p3##_type, typename p4##_type, typename p5##_type, \
1463
+ typename p6##_type, typename p7##_type, typename p8##_type>\
1464
+ template <typename F>\
1465
+ template <typename arg0_type, typename arg1_type, typename arg2_type, \
1466
+ typename arg3_type, typename arg4_type, typename arg5_type, \
1467
+ typename arg6_type, typename arg7_type, typename arg8_type, \
1468
+ typename arg9_type>\
1469
+ typename ::testing::internal::Function<F>::Result\
1470
+ name##ActionP9<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \
1471
+ p5##_type, p6##_type, p7##_type, \
1472
+ p8##_type>::gmock_Impl<F>::gmock_PerformImpl(\
1473
+ GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const
1474
+
1475
+ #define ACTION_P10(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9)\
1476
+ template <typename p0##_type, typename p1##_type, typename p2##_type, \
1477
+ typename p3##_type, typename p4##_type, typename p5##_type, \
1478
+ typename p6##_type, typename p7##_type, typename p8##_type, \
1479
+ typename p9##_type>\
1480
+ class name##ActionP10 {\
1481
+ public:\
1482
+ name##ActionP10(p0##_type gmock_p0, p1##_type gmock_p1, \
1483
+ p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \
1484
+ p5##_type gmock_p5, p6##_type gmock_p6, p7##_type gmock_p7, \
1485
+ p8##_type gmock_p8, \
1486
+ p9##_type gmock_p9) : p0(::std::forward<p0##_type>(gmock_p0)), \
1487
+ p1(::std::forward<p1##_type>(gmock_p1)), \
1488
+ p2(::std::forward<p2##_type>(gmock_p2)), \
1489
+ p3(::std::forward<p3##_type>(gmock_p3)), \
1490
+ p4(::std::forward<p4##_type>(gmock_p4)), \
1491
+ p5(::std::forward<p5##_type>(gmock_p5)), \
1492
+ p6(::std::forward<p6##_type>(gmock_p6)), \
1493
+ p7(::std::forward<p7##_type>(gmock_p7)), \
1494
+ p8(::std::forward<p8##_type>(gmock_p8)), \
1495
+ p9(::std::forward<p9##_type>(gmock_p9)) {}\
1496
+ template <typename F>\
1497
+ class gmock_Impl : public ::testing::ActionInterface<F> {\
1498
+ public:\
1499
+ typedef F function_type;\
1500
+ typedef typename ::testing::internal::Function<F>::Result return_type;\
1501
+ typedef typename ::testing::internal::Function<F>::ArgumentTuple\
1502
+ args_type;\
1503
+ gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1504
+ p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \
1505
+ p6##_type gmock_p6, p7##_type gmock_p7, p8##_type gmock_p8, \
1506
+ p9##_type gmock_p9) : p0(::std::forward<p0##_type>(gmock_p0)), \
1507
+ p1(::std::forward<p1##_type>(gmock_p1)), \
1508
+ p2(::std::forward<p2##_type>(gmock_p2)), \
1509
+ p3(::std::forward<p3##_type>(gmock_p3)), \
1510
+ p4(::std::forward<p4##_type>(gmock_p4)), \
1511
+ p5(::std::forward<p5##_type>(gmock_p5)), \
1512
+ p6(::std::forward<p6##_type>(gmock_p6)), \
1513
+ p7(::std::forward<p7##_type>(gmock_p7)), \
1514
+ p8(::std::forward<p8##_type>(gmock_p8)), \
1515
+ p9(::std::forward<p9##_type>(gmock_p9)) {}\
1516
+ return_type Perform(const args_type& args) override {\
1517
+ return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
1518
+ Perform(this, args);\
1519
+ }\
1520
+ template <typename arg0_type, typename arg1_type, typename arg2_type, \
1521
+ typename arg3_type, typename arg4_type, typename arg5_type, \
1522
+ typename arg6_type, typename arg7_type, typename arg8_type, \
1523
+ typename arg9_type>\
1524
+ return_type gmock_PerformImpl(const args_type& args, \
1525
+ const arg0_type& arg0, const arg1_type& arg1, \
1526
+ const arg2_type& arg2, const arg3_type& arg3, \
1527
+ const arg4_type& arg4, const arg5_type& arg5, \
1528
+ const arg6_type& arg6, const arg7_type& arg7, \
1529
+ const arg8_type& arg8, const arg9_type& arg9) const;\
1530
+ p0##_type p0;\
1531
+ p1##_type p1;\
1532
+ p2##_type p2;\
1533
+ p3##_type p3;\
1534
+ p4##_type p4;\
1535
+ p5##_type p5;\
1536
+ p6##_type p6;\
1537
+ p7##_type p7;\
1538
+ p8##_type p8;\
1539
+ p9##_type p9;\
1540
+ private:\
1541
+ GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
1542
+ };\
1543
+ template <typename F> operator ::testing::Action<F>() const {\
1544
+ return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5, \
1545
+ p6, p7, p8, p9));\
1546
+ }\
1547
+ p0##_type p0;\
1548
+ p1##_type p1;\
1549
+ p2##_type p2;\
1550
+ p3##_type p3;\
1551
+ p4##_type p4;\
1552
+ p5##_type p5;\
1553
+ p6##_type p6;\
1554
+ p7##_type p7;\
1555
+ p8##_type p8;\
1556
+ p9##_type p9;\
1557
+ private:\
1558
+ GTEST_DISALLOW_ASSIGN_(name##ActionP10);\
1559
+ };\
1560
+ template <typename p0##_type, typename p1##_type, typename p2##_type, \
1561
+ typename p3##_type, typename p4##_type, typename p5##_type, \
1562
+ typename p6##_type, typename p7##_type, typename p8##_type, \
1563
+ typename p9##_type>\
1564
+ inline name##ActionP10<p0##_type, p1##_type, p2##_type, p3##_type, \
1565
+ p4##_type, p5##_type, p6##_type, p7##_type, p8##_type, \
1566
+ p9##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \
1567
+ p4##_type p4, p5##_type p5, p6##_type p6, p7##_type p7, p8##_type p8, \
1568
+ p9##_type p9) {\
1569
+ return name##ActionP10<p0##_type, p1##_type, p2##_type, p3##_type, \
1570
+ p4##_type, p5##_type, p6##_type, p7##_type, p8##_type, p9##_type>(p0, \
1571
+ p1, p2, p3, p4, p5, p6, p7, p8, p9);\
1572
+ }\
1573
+ template <typename p0##_type, typename p1##_type, typename p2##_type, \
1574
+ typename p3##_type, typename p4##_type, typename p5##_type, \
1575
+ typename p6##_type, typename p7##_type, typename p8##_type, \
1576
+ typename p9##_type>\
1577
+ template <typename F>\
1578
+ template <typename arg0_type, typename arg1_type, typename arg2_type, \
1579
+ typename arg3_type, typename arg4_type, typename arg5_type, \
1580
+ typename arg6_type, typename arg7_type, typename arg8_type, \
1581
+ typename arg9_type>\
1582
+ typename ::testing::internal::Function<F>::Result\
1583
+ name##ActionP10<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \
1584
+ p5##_type, p6##_type, p7##_type, p8##_type, \
1585
+ p9##_type>::gmock_Impl<F>::gmock_PerformImpl(\
1586
+ GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const
1587
+
1588
+ namespace testing {
1589
+
1590
+
1591
+ // The ACTION*() macros trigger warning C4100 (unreferenced formal
1592
+ // parameter) in MSVC with -W4. Unfortunately they cannot be fixed in
1593
+ // the macro definition, as the warnings are generated when the macro
1594
+ // is expanded and macro expansion cannot contain #pragma. Therefore
1595
+ // we suppress them here.
1596
+ #ifdef _MSC_VER
1597
+ # pragma warning(push)
1598
+ # pragma warning(disable:4100)
1599
+ #endif
1600
+
1601
+ // Various overloads for InvokeArgument<N>().
1602
+ //
1603
+ // The InvokeArgument<N>(a1, a2, ..., a_k) action invokes the N-th
1604
+ // (0-based) argument, which must be a k-ary callable, of the mock
1605
+ // function, with arguments a1, a2, ..., a_k.
1606
+ //
1607
+ // Notes:
1608
+ //
1609
+ // 1. The arguments are passed by value by default. If you need to
1610
+ // pass an argument by reference, wrap it inside ByRef(). For
1611
+ // example,
1612
+ //
1613
+ // InvokeArgument<1>(5, string("Hello"), ByRef(foo))
1614
+ //
1615
+ // passes 5 and string("Hello") by value, and passes foo by
1616
+ // reference.
1617
+ //
1618
+ // 2. If the callable takes an argument by reference but ByRef() is
1619
+ // not used, it will receive the reference to a copy of the value,
1620
+ // instead of the original value. For example, when the 0-th
1621
+ // argument of the mock function takes a const string&, the action
1622
+ //
1623
+ // InvokeArgument<0>(string("Hello"))
1624
+ //
1625
+ // makes a copy of the temporary string("Hello") object and passes a
1626
+ // reference of the copy, instead of the original temporary object,
1627
+ // to the callable. This makes it easy for a user to define an
1628
+ // InvokeArgument action from temporary values and have it performed
1629
+ // later.
1630
+
1631
+ namespace internal {
1632
+ namespace invoke_argument {
1633
+
1634
+ // Appears in InvokeArgumentAdl's argument list to help avoid
1635
+ // accidental calls to user functions of the same name.
1636
+ struct AdlTag {};
1637
+
1638
+ // InvokeArgumentAdl - a helper for InvokeArgument.
1639
+ // The basic overloads are provided here for generic functors.
1640
+ // Overloads for other custom-callables are provided in the
1641
+ // internal/custom/callback-actions.h header.
1642
+
1643
+ template <typename R, typename F>
1644
+ R InvokeArgumentAdl(AdlTag, F f) {
1645
+ return f();
1646
+ }
1647
+ template <typename R, typename F, typename A1>
1648
+ R InvokeArgumentAdl(AdlTag, F f, A1 a1) {
1649
+ return f(a1);
1650
+ }
1651
+ template <typename R, typename F, typename A1, typename A2>
1652
+ R InvokeArgumentAdl(AdlTag, F f, A1 a1, A2 a2) {
1653
+ return f(a1, a2);
1654
+ }
1655
+ template <typename R, typename F, typename A1, typename A2, typename A3>
1656
+ R InvokeArgumentAdl(AdlTag, F f, A1 a1, A2 a2, A3 a3) {
1657
+ return f(a1, a2, a3);
1658
+ }
1659
+ template <typename R, typename F, typename A1, typename A2, typename A3,
1660
+ typename A4>
1661
+ R InvokeArgumentAdl(AdlTag, F f, A1 a1, A2 a2, A3 a3, A4 a4) {
1662
+ return f(a1, a2, a3, a4);
1663
+ }
1664
+ template <typename R, typename F, typename A1, typename A2, typename A3,
1665
+ typename A4, typename A5>
1666
+ R InvokeArgumentAdl(AdlTag, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) {
1667
+ return f(a1, a2, a3, a4, a5);
1668
+ }
1669
+ template <typename R, typename F, typename A1, typename A2, typename A3,
1670
+ typename A4, typename A5, typename A6>
1671
+ R InvokeArgumentAdl(AdlTag, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) {
1672
+ return f(a1, a2, a3, a4, a5, a6);
1673
+ }
1674
+ template <typename R, typename F, typename A1, typename A2, typename A3,
1675
+ typename A4, typename A5, typename A6, typename A7>
1676
+ R InvokeArgumentAdl(AdlTag, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6,
1677
+ A7 a7) {
1678
+ return f(a1, a2, a3, a4, a5, a6, a7);
1679
+ }
1680
+ template <typename R, typename F, typename A1, typename A2, typename A3,
1681
+ typename A4, typename A5, typename A6, typename A7, typename A8>
1682
+ R InvokeArgumentAdl(AdlTag, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6,
1683
+ A7 a7, A8 a8) {
1684
+ return f(a1, a2, a3, a4, a5, a6, a7, a8);
1685
+ }
1686
+ template <typename R, typename F, typename A1, typename A2, typename A3,
1687
+ typename A4, typename A5, typename A6, typename A7, typename A8,
1688
+ typename A9>
1689
+ R InvokeArgumentAdl(AdlTag, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6,
1690
+ A7 a7, A8 a8, A9 a9) {
1691
+ return f(a1, a2, a3, a4, a5, a6, a7, a8, a9);
1692
+ }
1693
+ template <typename R, typename F, typename A1, typename A2, typename A3,
1694
+ typename A4, typename A5, typename A6, typename A7, typename A8,
1695
+ typename A9, typename A10>
1696
+ R InvokeArgumentAdl(AdlTag, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6,
1697
+ A7 a7, A8 a8, A9 a9, A10 a10) {
1698
+ return f(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
1699
+ }
1700
+ } // namespace invoke_argument
1701
+ } // namespace internal
1702
+
1703
+ ACTION_TEMPLATE(InvokeArgument,
1704
+ HAS_1_TEMPLATE_PARAMS(int, k),
1705
+ AND_0_VALUE_PARAMS()) {
1706
+ using internal::invoke_argument::InvokeArgumentAdl;
1707
+ return InvokeArgumentAdl<return_type>(
1708
+ internal::invoke_argument::AdlTag(),
1709
+ ::std::get<k>(args));
1710
+ }
1711
+
1712
+ ACTION_TEMPLATE(InvokeArgument,
1713
+ HAS_1_TEMPLATE_PARAMS(int, k),
1714
+ AND_1_VALUE_PARAMS(p0)) {
1715
+ using internal::invoke_argument::InvokeArgumentAdl;
1716
+ return InvokeArgumentAdl<return_type>(
1717
+ internal::invoke_argument::AdlTag(),
1718
+ ::std::get<k>(args), p0);
1719
+ }
1720
+
1721
+ ACTION_TEMPLATE(InvokeArgument,
1722
+ HAS_1_TEMPLATE_PARAMS(int, k),
1723
+ AND_2_VALUE_PARAMS(p0, p1)) {
1724
+ using internal::invoke_argument::InvokeArgumentAdl;
1725
+ return InvokeArgumentAdl<return_type>(
1726
+ internal::invoke_argument::AdlTag(),
1727
+ ::std::get<k>(args), p0, p1);
1728
+ }
1729
+
1730
+ ACTION_TEMPLATE(InvokeArgument,
1731
+ HAS_1_TEMPLATE_PARAMS(int, k),
1732
+ AND_3_VALUE_PARAMS(p0, p1, p2)) {
1733
+ using internal::invoke_argument::InvokeArgumentAdl;
1734
+ return InvokeArgumentAdl<return_type>(
1735
+ internal::invoke_argument::AdlTag(),
1736
+ ::std::get<k>(args), p0, p1, p2);
1737
+ }
1738
+
1739
+ ACTION_TEMPLATE(InvokeArgument,
1740
+ HAS_1_TEMPLATE_PARAMS(int, k),
1741
+ AND_4_VALUE_PARAMS(p0, p1, p2, p3)) {
1742
+ using internal::invoke_argument::InvokeArgumentAdl;
1743
+ return InvokeArgumentAdl<return_type>(
1744
+ internal::invoke_argument::AdlTag(),
1745
+ ::std::get<k>(args), p0, p1, p2, p3);
1746
+ }
1747
+
1748
+ ACTION_TEMPLATE(InvokeArgument,
1749
+ HAS_1_TEMPLATE_PARAMS(int, k),
1750
+ AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4)) {
1751
+ using internal::invoke_argument::InvokeArgumentAdl;
1752
+ return InvokeArgumentAdl<return_type>(
1753
+ internal::invoke_argument::AdlTag(),
1754
+ ::std::get<k>(args), p0, p1, p2, p3, p4);
1755
+ }
1756
+
1757
+ ACTION_TEMPLATE(InvokeArgument,
1758
+ HAS_1_TEMPLATE_PARAMS(int, k),
1759
+ AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5)) {
1760
+ using internal::invoke_argument::InvokeArgumentAdl;
1761
+ return InvokeArgumentAdl<return_type>(
1762
+ internal::invoke_argument::AdlTag(),
1763
+ ::std::get<k>(args), p0, p1, p2, p3, p4, p5);
1764
+ }
1765
+
1766
+ ACTION_TEMPLATE(InvokeArgument,
1767
+ HAS_1_TEMPLATE_PARAMS(int, k),
1768
+ AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6)) {
1769
+ using internal::invoke_argument::InvokeArgumentAdl;
1770
+ return InvokeArgumentAdl<return_type>(
1771
+ internal::invoke_argument::AdlTag(),
1772
+ ::std::get<k>(args), p0, p1, p2, p3, p4, p5, p6);
1773
+ }
1774
+
1775
+ ACTION_TEMPLATE(InvokeArgument,
1776
+ HAS_1_TEMPLATE_PARAMS(int, k),
1777
+ AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7)) {
1778
+ using internal::invoke_argument::InvokeArgumentAdl;
1779
+ return InvokeArgumentAdl<return_type>(
1780
+ internal::invoke_argument::AdlTag(),
1781
+ ::std::get<k>(args), p0, p1, p2, p3, p4, p5, p6, p7);
1782
+ }
1783
+
1784
+ ACTION_TEMPLATE(InvokeArgument,
1785
+ HAS_1_TEMPLATE_PARAMS(int, k),
1786
+ AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7, p8)) {
1787
+ using internal::invoke_argument::InvokeArgumentAdl;
1788
+ return InvokeArgumentAdl<return_type>(
1789
+ internal::invoke_argument::AdlTag(),
1790
+ ::std::get<k>(args), p0, p1, p2, p3, p4, p5, p6, p7, p8);
1791
+ }
1792
+
1793
+ ACTION_TEMPLATE(InvokeArgument,
1794
+ HAS_1_TEMPLATE_PARAMS(int, k),
1795
+ AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9)) {
1796
+ using internal::invoke_argument::InvokeArgumentAdl;
1797
+ return InvokeArgumentAdl<return_type>(
1798
+ internal::invoke_argument::AdlTag(),
1799
+ ::std::get<k>(args), p0, p1, p2, p3, p4, p5, p6, p7, p8, p9);
1800
+ }
1801
+
1802
+ // Various overloads for ReturnNew<T>().
1803
+ //
1804
+ // The ReturnNew<T>(a1, a2, ..., a_k) action returns a pointer to a new
1805
+ // instance of type T, constructed on the heap with constructor arguments
1806
+ // a1, a2, ..., and a_k. The caller assumes ownership of the returned value.
1807
+ ACTION_TEMPLATE(ReturnNew,
1808
+ HAS_1_TEMPLATE_PARAMS(typename, T),
1809
+ AND_0_VALUE_PARAMS()) {
1810
+ return new T();
1811
+ }
1812
+
1813
+ ACTION_TEMPLATE(ReturnNew,
1814
+ HAS_1_TEMPLATE_PARAMS(typename, T),
1815
+ AND_1_VALUE_PARAMS(p0)) {
1816
+ return new T(p0);
1817
+ }
1818
+
1819
+ ACTION_TEMPLATE(ReturnNew,
1820
+ HAS_1_TEMPLATE_PARAMS(typename, T),
1821
+ AND_2_VALUE_PARAMS(p0, p1)) {
1822
+ return new T(p0, p1);
1823
+ }
1824
+
1825
+ ACTION_TEMPLATE(ReturnNew,
1826
+ HAS_1_TEMPLATE_PARAMS(typename, T),
1827
+ AND_3_VALUE_PARAMS(p0, p1, p2)) {
1828
+ return new T(p0, p1, p2);
1829
+ }
1830
+
1831
+ ACTION_TEMPLATE(ReturnNew,
1832
+ HAS_1_TEMPLATE_PARAMS(typename, T),
1833
+ AND_4_VALUE_PARAMS(p0, p1, p2, p3)) {
1834
+ return new T(p0, p1, p2, p3);
1835
+ }
1836
+
1837
+ ACTION_TEMPLATE(ReturnNew,
1838
+ HAS_1_TEMPLATE_PARAMS(typename, T),
1839
+ AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4)) {
1840
+ return new T(p0, p1, p2, p3, p4);
1841
+ }
1842
+
1843
+ ACTION_TEMPLATE(ReturnNew,
1844
+ HAS_1_TEMPLATE_PARAMS(typename, T),
1845
+ AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5)) {
1846
+ return new T(p0, p1, p2, p3, p4, p5);
1847
+ }
1848
+
1849
+ ACTION_TEMPLATE(ReturnNew,
1850
+ HAS_1_TEMPLATE_PARAMS(typename, T),
1851
+ AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6)) {
1852
+ return new T(p0, p1, p2, p3, p4, p5, p6);
1853
+ }
1854
+
1855
+ ACTION_TEMPLATE(ReturnNew,
1856
+ HAS_1_TEMPLATE_PARAMS(typename, T),
1857
+ AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7)) {
1858
+ return new T(p0, p1, p2, p3, p4, p5, p6, p7);
1859
+ }
1860
+
1861
+ ACTION_TEMPLATE(ReturnNew,
1862
+ HAS_1_TEMPLATE_PARAMS(typename, T),
1863
+ AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7, p8)) {
1864
+ return new T(p0, p1, p2, p3, p4, p5, p6, p7, p8);
1865
+ }
1866
+
1867
+ ACTION_TEMPLATE(ReturnNew,
1868
+ HAS_1_TEMPLATE_PARAMS(typename, T),
1869
+ AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9)) {
1870
+ return new T(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9);
1871
+ }
1872
+
1873
+ #ifdef _MSC_VER
1874
+ # pragma warning(pop)
1875
+ #endif
1876
+
1877
+ } // namespace testing
1878
+
1879
+ // Include any custom callback actions added by the local installation.
1880
+ // We must include this header at the end to make sure it can use the
1881
+ // declarations from this file.
1882
+ #include "gmock/internal/custom/gmock-generated-actions.h"
1883
+
1884
+ #endif // GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_ACTIONS_H_