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.
- package/LICENSE +21 -0
- package/README.md +92 -0
- package/android/.project +34 -0
- package/android/.settings/org.eclipse.buildship.core.prefs +13 -0
- package/android/CMakeLists.txt +69 -0
- package/android/build.gradle +125 -0
- package/android/cpp-adapter.cpp +19 -0
- package/android/gradle.properties +6 -0
- package/android/src/main/AndroidManifest.xml +4 -0
- package/android/src/main/java/com/reactnativeleveldb/LeveldbModule.java +57 -0
- package/android/src/main/java/com/reactnativeleveldb/LeveldbPackage.java +28 -0
- package/cpp/leveldb/.appveyor.yml +36 -0
- package/cpp/leveldb/.clang-format +18 -0
- package/cpp/leveldb/.travis.yml +88 -0
- package/cpp/leveldb/AUTHORS +12 -0
- package/cpp/leveldb/CMakeLists.txt +495 -0
- package/cpp/leveldb/CONTRIBUTING.md +36 -0
- package/cpp/leveldb/LICENSE +27 -0
- package/cpp/leveldb/NEWS +17 -0
- package/cpp/leveldb/README.md +231 -0
- package/cpp/leveldb/TODO +14 -0
- package/cpp/leveldb/benchmarks/db_bench.cc +990 -0
- package/cpp/leveldb/benchmarks/db_bench_sqlite3.cc +726 -0
- package/cpp/leveldb/benchmarks/db_bench_tree_db.cc +531 -0
- package/cpp/leveldb/cmake/leveldbConfig.cmake.in +9 -0
- package/cpp/leveldb/db/autocompact_test.cc +115 -0
- package/cpp/leveldb/db/builder.cc +82 -0
- package/cpp/leveldb/db/builder.h +30 -0
- package/cpp/leveldb/db/c.cc +562 -0
- package/cpp/leveldb/db/c_test.c +384 -0
- package/cpp/leveldb/db/corruption_test.cc +367 -0
- package/cpp/leveldb/db/db_impl.cc +1554 -0
- package/cpp/leveldb/db/db_impl.h +217 -0
- package/cpp/leveldb/db/db_iter.cc +318 -0
- package/cpp/leveldb/db/db_iter.h +26 -0
- package/cpp/leveldb/db/db_test.cc +2305 -0
- package/cpp/leveldb/db/dbformat.cc +136 -0
- package/cpp/leveldb/db/dbformat.h +224 -0
- package/cpp/leveldb/db/dbformat_test.cc +133 -0
- package/cpp/leveldb/db/dumpfile.cc +232 -0
- package/cpp/leveldb/db/fault_injection_test.cc +555 -0
- package/cpp/leveldb/db/filename.cc +141 -0
- package/cpp/leveldb/db/filename.h +83 -0
- package/cpp/leveldb/db/filename_test.cc +132 -0
- package/cpp/leveldb/db/leveldbutil.cc +64 -0
- package/cpp/leveldb/db/log_format.h +35 -0
- package/cpp/leveldb/db/log_reader.cc +274 -0
- package/cpp/leveldb/db/log_reader.h +112 -0
- package/cpp/leveldb/db/log_test.cc +563 -0
- package/cpp/leveldb/db/log_writer.cc +111 -0
- package/cpp/leveldb/db/log_writer.h +54 -0
- package/cpp/leveldb/db/memtable.cc +137 -0
- package/cpp/leveldb/db/memtable.h +87 -0
- package/cpp/leveldb/db/recovery_test.cc +339 -0
- package/cpp/leveldb/db/repair.cc +451 -0
- package/cpp/leveldb/db/skiplist.h +382 -0
- package/cpp/leveldb/db/skiplist_test.cc +373 -0
- package/cpp/leveldb/db/snapshot.h +95 -0
- package/cpp/leveldb/db/table_cache.cc +120 -0
- package/cpp/leveldb/db/table_cache.h +57 -0
- package/cpp/leveldb/db/version_edit.cc +257 -0
- package/cpp/leveldb/db/version_edit.h +106 -0
- package/cpp/leveldb/db/version_edit_test.cc +46 -0
- package/cpp/leveldb/db/version_set.cc +1562 -0
- package/cpp/leveldb/db/version_set.h +393 -0
- package/cpp/leveldb/db/version_set_test.cc +336 -0
- package/cpp/leveldb/db/write_batch.cc +150 -0
- package/cpp/leveldb/db/write_batch_internal.h +45 -0
- package/cpp/leveldb/db/write_batch_test.cc +137 -0
- package/cpp/leveldb/doc/benchmark.html +459 -0
- package/cpp/leveldb/doc/impl.md +172 -0
- package/cpp/leveldb/doc/index.md +523 -0
- package/cpp/leveldb/doc/log_format.md +75 -0
- package/cpp/leveldb/doc/table_format.md +107 -0
- package/cpp/leveldb/helpers/memenv/memenv.cc +390 -0
- package/cpp/leveldb/helpers/memenv/memenv.h +22 -0
- package/cpp/leveldb/helpers/memenv/memenv_test.cc +264 -0
- package/cpp/leveldb/include/leveldb/c.h +270 -0
- package/cpp/leveldb/include/leveldb/cache.h +111 -0
- package/cpp/leveldb/include/leveldb/comparator.h +64 -0
- package/cpp/leveldb/include/leveldb/db.h +167 -0
- package/cpp/leveldb/include/leveldb/dumpfile.h +28 -0
- package/cpp/leveldb/include/leveldb/env.h +417 -0
- package/cpp/leveldb/include/leveldb/export.h +33 -0
- package/cpp/leveldb/include/leveldb/filter_policy.h +72 -0
- package/cpp/leveldb/include/leveldb/iterator.h +112 -0
- package/cpp/leveldb/include/leveldb/options.h +187 -0
- package/cpp/leveldb/include/leveldb/slice.h +114 -0
- package/cpp/leveldb/include/leveldb/status.h +122 -0
- package/cpp/leveldb/include/leveldb/table.h +84 -0
- package/cpp/leveldb/include/leveldb/table_builder.h +93 -0
- package/cpp/leveldb/include/leveldb/write_batch.h +83 -0
- package/cpp/leveldb/issues/issue178_test.cc +90 -0
- package/cpp/leveldb/issues/issue200_test.cc +59 -0
- package/cpp/leveldb/issues/issue320_test.cc +131 -0
- package/cpp/leveldb/port/README.md +10 -0
- package/cpp/leveldb/port/port.h +19 -0
- package/cpp/leveldb/port/port_config.h.in +33 -0
- package/cpp/leveldb/port/port_example.h +100 -0
- package/cpp/leveldb/port/port_stdcxx.h +151 -0
- package/cpp/leveldb/port/thread_annotations.h +108 -0
- package/cpp/leveldb/table/block.cc +267 -0
- package/cpp/leveldb/table/block.h +44 -0
- package/cpp/leveldb/table/block_builder.cc +107 -0
- package/cpp/leveldb/table/block_builder.h +54 -0
- package/cpp/leveldb/table/filter_block.cc +106 -0
- package/cpp/leveldb/table/filter_block.h +68 -0
- package/cpp/leveldb/table/filter_block_test.cc +127 -0
- package/cpp/leveldb/table/format.cc +141 -0
- package/cpp/leveldb/table/format.h +99 -0
- package/cpp/leveldb/table/iterator.cc +76 -0
- package/cpp/leveldb/table/iterator_wrapper.h +92 -0
- package/cpp/leveldb/table/merger.cc +191 -0
- package/cpp/leveldb/table/merger.h +26 -0
- package/cpp/leveldb/table/table.cc +271 -0
- package/cpp/leveldb/table/table_builder.cc +265 -0
- package/cpp/leveldb/table/table_test.cc +834 -0
- package/cpp/leveldb/table/two_level_iterator.cc +171 -0
- package/cpp/leveldb/table/two_level_iterator.h +31 -0
- package/cpp/leveldb/third_party/benchmark/.clang-format +5 -0
- package/cpp/leveldb/third_party/benchmark/.github/ISSUE_TEMPLATE/bug_report.md +32 -0
- package/cpp/leveldb/third_party/benchmark/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
- package/cpp/leveldb/third_party/benchmark/.github/workflows/build-and-test.yml +38 -0
- package/cpp/leveldb/third_party/benchmark/.github/workflows/pylint.yml +26 -0
- package/cpp/leveldb/third_party/benchmark/.github/workflows/test_bindings.yml +24 -0
- package/cpp/leveldb/third_party/benchmark/.travis-libcxx-setup.sh +28 -0
- package/cpp/leveldb/third_party/benchmark/.travis.yml +231 -0
- package/cpp/leveldb/third_party/benchmark/.ycm_extra_conf.py +115 -0
- package/cpp/leveldb/third_party/benchmark/AUTHORS +58 -0
- package/cpp/leveldb/third_party/benchmark/BUILD.bazel +44 -0
- package/cpp/leveldb/third_party/benchmark/CMakeLists.txt +287 -0
- package/cpp/leveldb/third_party/benchmark/CONTRIBUTING.md +58 -0
- package/cpp/leveldb/third_party/benchmark/CONTRIBUTORS +83 -0
- package/cpp/leveldb/third_party/benchmark/LICENSE +202 -0
- package/cpp/leveldb/third_party/benchmark/README.md +1323 -0
- package/cpp/leveldb/third_party/benchmark/WORKSPACE +51 -0
- package/cpp/leveldb/third_party/benchmark/_config.yml +1 -0
- package/cpp/leveldb/third_party/benchmark/appveyor.yml +50 -0
- package/cpp/leveldb/third_party/benchmark/bindings/python/BUILD +3 -0
- package/cpp/leveldb/third_party/benchmark/bindings/python/build_defs.bzl +25 -0
- package/cpp/leveldb/third_party/benchmark/bindings/python/google_benchmark/BUILD +38 -0
- package/cpp/leveldb/third_party/benchmark/bindings/python/google_benchmark/__init__.py +156 -0
- package/cpp/leveldb/third_party/benchmark/bindings/python/google_benchmark/benchmark.cc +180 -0
- package/cpp/leveldb/third_party/benchmark/bindings/python/google_benchmark/example.py +136 -0
- package/cpp/leveldb/third_party/benchmark/bindings/python/pybind11.BUILD +20 -0
- package/cpp/leveldb/third_party/benchmark/bindings/python/python_headers.BUILD +6 -0
- package/cpp/leveldb/third_party/benchmark/bindings/python/requirements.txt +2 -0
- package/cpp/leveldb/third_party/benchmark/cmake/AddCXXCompilerFlag.cmake +74 -0
- package/cpp/leveldb/third_party/benchmark/cmake/CXXFeatureCheck.cmake +69 -0
- package/cpp/leveldb/third_party/benchmark/cmake/Config.cmake.in +1 -0
- package/cpp/leveldb/third_party/benchmark/cmake/GetGitVersion.cmake +54 -0
- package/cpp/leveldb/third_party/benchmark/cmake/GoogleTest.cmake +41 -0
- package/cpp/leveldb/third_party/benchmark/cmake/GoogleTest.cmake.in +58 -0
- package/cpp/leveldb/third_party/benchmark/cmake/benchmark.pc.in +12 -0
- package/cpp/leveldb/third_party/benchmark/cmake/gnu_posix_regex.cpp +12 -0
- package/cpp/leveldb/third_party/benchmark/cmake/llvm-toolchain.cmake +8 -0
- package/cpp/leveldb/third_party/benchmark/cmake/posix_regex.cpp +14 -0
- package/cpp/leveldb/third_party/benchmark/cmake/split_list.cmake +3 -0
- package/cpp/leveldb/third_party/benchmark/cmake/std_regex.cpp +10 -0
- package/cpp/leveldb/third_party/benchmark/cmake/steady_clock.cpp +7 -0
- package/cpp/leveldb/third_party/benchmark/cmake/thread_safety_attributes.cpp +4 -0
- package/cpp/leveldb/third_party/benchmark/conan/CMakeLists.txt +7 -0
- package/cpp/leveldb/third_party/benchmark/conan/test_package/CMakeLists.txt +10 -0
- package/cpp/leveldb/third_party/benchmark/conan/test_package/conanfile.py +19 -0
- package/cpp/leveldb/third_party/benchmark/conan/test_package/test_package.cpp +18 -0
- package/cpp/leveldb/third_party/benchmark/conanfile.py +79 -0
- package/cpp/leveldb/third_party/benchmark/dependencies.md +18 -0
- package/cpp/leveldb/third_party/benchmark/docs/AssemblyTests.md +147 -0
- package/cpp/leveldb/third_party/benchmark/docs/_config.yml +1 -0
- package/cpp/leveldb/third_party/benchmark/docs/releasing.md +16 -0
- package/cpp/leveldb/third_party/benchmark/docs/tools.md +203 -0
- package/cpp/leveldb/third_party/benchmark/include/benchmark/benchmark.h +1604 -0
- package/cpp/leveldb/third_party/benchmark/requirements.txt +2 -0
- package/cpp/leveldb/third_party/benchmark/setup.py +140 -0
- package/cpp/leveldb/third_party/benchmark/src/CMakeLists.txt +114 -0
- package/cpp/leveldb/third_party/benchmark/src/arraysize.h +33 -0
- package/cpp/leveldb/third_party/benchmark/src/benchmark.cc +499 -0
- package/cpp/leveldb/third_party/benchmark/src/benchmark_api_internal.cc +15 -0
- package/cpp/leveldb/third_party/benchmark/src/benchmark_api_internal.h +53 -0
- package/cpp/leveldb/third_party/benchmark/src/benchmark_main.cc +17 -0
- package/cpp/leveldb/third_party/benchmark/src/benchmark_name.cc +58 -0
- package/cpp/leveldb/third_party/benchmark/src/benchmark_register.cc +515 -0
- package/cpp/leveldb/third_party/benchmark/src/benchmark_register.h +108 -0
- package/cpp/leveldb/third_party/benchmark/src/benchmark_runner.cc +362 -0
- package/cpp/leveldb/third_party/benchmark/src/benchmark_runner.h +51 -0
- package/cpp/leveldb/third_party/benchmark/src/check.h +82 -0
- package/cpp/leveldb/third_party/benchmark/src/colorprint.cc +188 -0
- package/cpp/leveldb/third_party/benchmark/src/colorprint.h +33 -0
- package/cpp/leveldb/third_party/benchmark/src/commandlineflags.cc +228 -0
- package/cpp/leveldb/third_party/benchmark/src/commandlineflags.h +103 -0
- package/cpp/leveldb/third_party/benchmark/src/complexity.cc +238 -0
- package/cpp/leveldb/third_party/benchmark/src/complexity.h +55 -0
- package/cpp/leveldb/third_party/benchmark/src/console_reporter.cc +177 -0
- package/cpp/leveldb/third_party/benchmark/src/counter.cc +80 -0
- package/cpp/leveldb/third_party/benchmark/src/counter.h +32 -0
- package/cpp/leveldb/third_party/benchmark/src/csv_reporter.cc +154 -0
- package/cpp/leveldb/third_party/benchmark/src/cycleclock.h +211 -0
- package/cpp/leveldb/third_party/benchmark/src/internal_macros.h +102 -0
- package/cpp/leveldb/third_party/benchmark/src/json_reporter.cc +255 -0
- package/cpp/leveldb/third_party/benchmark/src/log.h +74 -0
- package/cpp/leveldb/third_party/benchmark/src/mutex.h +155 -0
- package/cpp/leveldb/third_party/benchmark/src/re.h +158 -0
- package/cpp/leveldb/third_party/benchmark/src/reporter.cc +105 -0
- package/cpp/leveldb/third_party/benchmark/src/sleep.cc +67 -0
- package/cpp/leveldb/third_party/benchmark/src/sleep.h +15 -0
- package/cpp/leveldb/third_party/benchmark/src/statistics.cc +193 -0
- package/cpp/leveldb/third_party/benchmark/src/statistics.h +37 -0
- package/cpp/leveldb/third_party/benchmark/src/string_util.cc +255 -0
- package/cpp/leveldb/third_party/benchmark/src/string_util.h +59 -0
- package/cpp/leveldb/third_party/benchmark/src/sysinfo.cc +716 -0
- package/cpp/leveldb/third_party/benchmark/src/thread_manager.h +64 -0
- package/cpp/leveldb/third_party/benchmark/src/thread_timer.h +86 -0
- package/cpp/leveldb/third_party/benchmark/src/timers.cc +245 -0
- package/cpp/leveldb/third_party/benchmark/src/timers.h +48 -0
- package/cpp/leveldb/third_party/benchmark/test/AssemblyTests.cmake +46 -0
- package/cpp/leveldb/third_party/benchmark/test/BUILD +73 -0
- package/cpp/leveldb/third_party/benchmark/test/CMakeLists.txt +263 -0
- package/cpp/leveldb/third_party/benchmark/test/args_product_test.cc +77 -0
- package/cpp/leveldb/third_party/benchmark/test/basic_test.cc +136 -0
- package/cpp/leveldb/third_party/benchmark/test/benchmark_gtest.cc +134 -0
- package/cpp/leveldb/third_party/benchmark/test/benchmark_name_gtest.cc +74 -0
- package/cpp/leveldb/third_party/benchmark/test/benchmark_test.cc +245 -0
- package/cpp/leveldb/third_party/benchmark/test/clobber_memory_assembly_test.cc +64 -0
- package/cpp/leveldb/third_party/benchmark/test/commandlineflags_gtest.cc +201 -0
- package/cpp/leveldb/third_party/benchmark/test/complexity_test.cc +213 -0
- package/cpp/leveldb/third_party/benchmark/test/cxx03_test.cc +63 -0
- package/cpp/leveldb/third_party/benchmark/test/diagnostics_test.cc +80 -0
- package/cpp/leveldb/third_party/benchmark/test/display_aggregates_only_test.cc +43 -0
- package/cpp/leveldb/third_party/benchmark/test/donotoptimize_assembly_test.cc +163 -0
- package/cpp/leveldb/third_party/benchmark/test/donotoptimize_test.cc +52 -0
- package/cpp/leveldb/third_party/benchmark/test/filter_test.cc +104 -0
- package/cpp/leveldb/third_party/benchmark/test/fixture_test.cc +51 -0
- package/cpp/leveldb/third_party/benchmark/test/internal_threading_test.cc +184 -0
- package/cpp/leveldb/third_party/benchmark/test/link_main_test.cc +8 -0
- package/cpp/leveldb/third_party/benchmark/test/map_test.cc +57 -0
- package/cpp/leveldb/third_party/benchmark/test/memory_manager_test.cc +44 -0
- package/cpp/leveldb/third_party/benchmark/test/multiple_ranges_test.cc +96 -0
- package/cpp/leveldb/third_party/benchmark/test/options_test.cc +75 -0
- package/cpp/leveldb/third_party/benchmark/test/output_test.h +213 -0
- package/cpp/leveldb/third_party/benchmark/test/output_test_helper.cc +515 -0
- package/cpp/leveldb/third_party/benchmark/test/register_benchmark_test.cc +184 -0
- package/cpp/leveldb/third_party/benchmark/test/report_aggregates_only_test.cc +39 -0
- package/cpp/leveldb/third_party/benchmark/test/reporter_output_test.cc +747 -0
- package/cpp/leveldb/third_party/benchmark/test/skip_with_error_test.cc +195 -0
- package/cpp/leveldb/third_party/benchmark/test/state_assembly_test.cc +68 -0
- package/cpp/leveldb/third_party/benchmark/test/statistics_gtest.cc +28 -0
- package/cpp/leveldb/third_party/benchmark/test/string_util_gtest.cc +153 -0
- package/cpp/leveldb/third_party/benchmark/test/templated_fixture_test.cc +28 -0
- package/cpp/leveldb/third_party/benchmark/test/user_counters_tabular_test.cc +285 -0
- package/cpp/leveldb/third_party/benchmark/test/user_counters_test.cc +531 -0
- package/cpp/leveldb/third_party/benchmark/test/user_counters_thousands_test.cc +173 -0
- package/cpp/leveldb/third_party/benchmark/tools/BUILD.bazel +19 -0
- package/cpp/leveldb/third_party/benchmark/tools/compare.py +429 -0
- package/cpp/leveldb/third_party/benchmark/tools/gbench/Inputs/test1_run1.json +119 -0
- package/cpp/leveldb/third_party/benchmark/tools/gbench/Inputs/test1_run2.json +119 -0
- package/cpp/leveldb/third_party/benchmark/tools/gbench/Inputs/test2_run.json +81 -0
- package/cpp/leveldb/third_party/benchmark/tools/gbench/Inputs/test3_run0.json +65 -0
- package/cpp/leveldb/third_party/benchmark/tools/gbench/Inputs/test3_run1.json +65 -0
- package/cpp/leveldb/third_party/benchmark/tools/gbench/__init__.py +8 -0
- package/cpp/leveldb/third_party/benchmark/tools/gbench/report.py +903 -0
- package/cpp/leveldb/third_party/benchmark/tools/gbench/util.py +163 -0
- package/cpp/leveldb/third_party/benchmark/tools/requirements.txt +1 -0
- package/cpp/leveldb/third_party/benchmark/tools/strip_asm.py +151 -0
- package/cpp/leveldb/third_party/googletest/.clang-format +4 -0
- package/cpp/leveldb/third_party/googletest/.travis.yml +73 -0
- package/cpp/leveldb/third_party/googletest/BUILD.bazel +179 -0
- package/cpp/leveldb/third_party/googletest/CMakeLists.txt +36 -0
- package/cpp/leveldb/third_party/googletest/CONTRIBUTING.md +142 -0
- package/cpp/leveldb/third_party/googletest/LICENSE +28 -0
- package/cpp/leveldb/third_party/googletest/README.md +132 -0
- package/cpp/leveldb/third_party/googletest/WORKSPACE +23 -0
- package/cpp/leveldb/third_party/googletest/appveyor.yml +154 -0
- package/cpp/leveldb/third_party/googletest/ci/build-linux-bazel.sh +37 -0
- package/cpp/leveldb/third_party/googletest/ci/build-platformio.sh +2 -0
- package/cpp/leveldb/third_party/googletest/ci/env-linux.sh +41 -0
- package/cpp/leveldb/third_party/googletest/ci/env-osx.sh +47 -0
- package/cpp/leveldb/third_party/googletest/ci/get-nprocessors.sh +48 -0
- package/cpp/leveldb/third_party/googletest/ci/install-linux.sh +49 -0
- package/cpp/leveldb/third_party/googletest/ci/install-osx.sh +40 -0
- package/cpp/leveldb/third_party/googletest/ci/install-platformio.sh +5 -0
- package/cpp/leveldb/third_party/googletest/ci/log-config.sh +51 -0
- package/cpp/leveldb/third_party/googletest/ci/travis.sh +44 -0
- package/cpp/leveldb/third_party/googletest/googlemock/CMakeLists.txt +233 -0
- package/cpp/leveldb/third_party/googletest/googlemock/CONTRIBUTORS +40 -0
- package/cpp/leveldb/third_party/googletest/googlemock/LICENSE +28 -0
- package/cpp/leveldb/third_party/googletest/googlemock/README.md +44 -0
- package/cpp/leveldb/third_party/googletest/googlemock/cmake/gmock.pc.in +10 -0
- package/cpp/leveldb/third_party/googletest/googlemock/cmake/gmock_main.pc.in +10 -0
- package/cpp/leveldb/third_party/googletest/googlemock/docs/cheat_sheet.md +770 -0
- package/cpp/leveldb/third_party/googletest/googlemock/docs/cook_book.md +4270 -0
- package/cpp/leveldb/third_party/googletest/googlemock/docs/for_dummies.md +700 -0
- package/cpp/leveldb/third_party/googletest/googlemock/docs/gmock_faq.md +396 -0
- package/cpp/leveldb/third_party/googletest/googlemock/docs/pump_manual.md +187 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-actions.h +1193 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-cardinalities.h +157 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-function-mocker.h +276 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-generated-actions.h +1884 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-generated-actions.h.pump +627 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-generated-function-mockers.h +752 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-generated-function-mockers.h.pump +227 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-generated-matchers.h +1097 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-generated-matchers.h.pump +346 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-matchers.h +4591 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-more-actions.h +162 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-more-matchers.h +92 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-nice-strict.h +215 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-spec-builders.h +1985 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock.h +101 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/internal/custom/README.md +16 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h +10 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h.pump +12 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/internal/custom/gmock-matchers.h +36 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/internal/custom/gmock-port.h +39 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/internal/gmock-internal-utils.h +472 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/internal/gmock-port.h +87 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/internal/gmock-pp.h +271 -0
- package/cpp/leveldb/third_party/googletest/googlemock/scripts/README.md +5 -0
- package/cpp/leveldb/third_party/googletest/googlemock/scripts/fuse_gmock_files.py +240 -0
- package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/LICENSE +203 -0
- package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/README +34 -0
- package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/README.cppclean +115 -0
- package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/cpp/__init__.py +0 -0
- package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/cpp/ast.py +1761 -0
- package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/cpp/gmock_class.py +248 -0
- package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/cpp/gmock_class_test.py +540 -0
- package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/cpp/keywords.py +56 -0
- package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/cpp/tokenize.py +284 -0
- package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/cpp/utils.py +37 -0
- package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/gmock_gen.py +30 -0
- package/cpp/leveldb/third_party/googletest/googlemock/scripts/pump.py +856 -0
- package/cpp/leveldb/third_party/googletest/googlemock/src/gmock-all.cc +46 -0
- package/cpp/leveldb/third_party/googletest/googlemock/src/gmock-cardinalities.cc +155 -0
- package/cpp/leveldb/third_party/googletest/googlemock/src/gmock-internal-utils.cc +200 -0
- package/cpp/leveldb/third_party/googletest/googlemock/src/gmock-matchers.cc +462 -0
- package/cpp/leveldb/third_party/googletest/googlemock/src/gmock-spec-builders.cc +892 -0
- package/cpp/leveldb/third_party/googletest/googlemock/src/gmock.cc +213 -0
- package/cpp/leveldb/third_party/googletest/googlemock/src/gmock_main.cc +72 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/BUILD.bazel +110 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-actions_test.cc +1507 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-cardinalities_test.cc +429 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-function-mocker_nc.cc +16 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-function-mocker_nc_test.py +43 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-function-mocker_test.cc +696 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-generated-actions_test.cc +1064 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-generated-function-mockers_test.cc +659 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-generated-matchers_test.cc +1323 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-internal-utils_test.cc +732 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-matchers_test.cc +6913 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-more-actions_test.cc +698 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-nice-strict_test.cc +500 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-port_test.cc +42 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-pp-string_test.cc +206 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-pp_test.cc +83 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-spec-builders_test.cc +2775 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_all_test.cc +49 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_ex_test.cc +80 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_leak_test.py +104 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_leak_test_.cc +99 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_link2_test.cc +39 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_link_test.cc +39 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_link_test.h +690 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_output_test.py +183 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_output_test_.cc +309 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_output_test_golden.txt +317 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_stress_test.cc +240 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_test.cc +181 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_test_utils.py +108 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/pump_test.py +182 -0
- package/cpp/leveldb/third_party/googletest/googletest/CMakeLists.txt +329 -0
- package/cpp/leveldb/third_party/googletest/googletest/CONTRIBUTORS +38 -0
- package/cpp/leveldb/third_party/googletest/googletest/LICENSE +28 -0
- package/cpp/leveldb/third_party/googletest/googletest/README.md +244 -0
- package/cpp/leveldb/third_party/googletest/googletest/cmake/Config.cmake.in +9 -0
- package/cpp/leveldb/third_party/googletest/googletest/cmake/gtest.pc.in +9 -0
- package/cpp/leveldb/third_party/googletest/googletest/cmake/gtest_main.pc.in +10 -0
- package/cpp/leveldb/third_party/googletest/googletest/cmake/internal_utils.cmake +358 -0
- package/cpp/leveldb/third_party/googletest/googletest/cmake/libgtest.la.in +21 -0
- package/cpp/leveldb/third_party/googletest/googletest/docs/advanced.md +2567 -0
- package/cpp/leveldb/third_party/googletest/googletest/docs/faq.md +753 -0
- package/cpp/leveldb/third_party/googletest/googletest/docs/pkgconfig.md +219 -0
- package/cpp/leveldb/third_party/googletest/googletest/docs/primer.md +579 -0
- package/cpp/leveldb/third_party/googletest/googletest/docs/samples.md +22 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest-death-test.h +343 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest-matchers.h +750 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest-message.h +219 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest-param-test.h +514 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest-printers.h +928 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest-spi.h +238 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest-test-part.h +184 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest-typed-test.h +337 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest.h +2477 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest_pred_impl.h +359 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest_prod.h +61 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/custom/README.md +56 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/custom/gtest-port.h +37 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/custom/gtest-printers.h +42 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/custom/gtest.h +37 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/gtest-death-test-internal.h +304 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/gtest-filepath.h +211 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/gtest-internal.h +1411 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/gtest-param-util.h +880 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/gtest-port-arch.h +111 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/gtest-port.h +2227 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/gtest-string.h +171 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/gtest-type-util.h +183 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/prime_tables.h +126 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample1.cc +66 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample1.h +41 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample10_unittest.cc +139 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample1_unittest.cc +151 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample2.cc +54 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample2.h +81 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample2_unittest.cc +107 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample3-inl.h +172 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample3_unittest.cc +149 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample4.cc +54 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample4.h +53 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample4_unittest.cc +53 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample5_unittest.cc +196 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample6_unittest.cc +224 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample7_unittest.cc +117 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample8_unittest.cc +154 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample9_unittest.cc +156 -0
- package/cpp/leveldb/third_party/googletest/googletest/scripts/README.md +5 -0
- package/cpp/leveldb/third_party/googletest/googletest/scripts/common.py +83 -0
- package/cpp/leveldb/third_party/googletest/googletest/scripts/fuse_gtest_files.py +253 -0
- package/cpp/leveldb/third_party/googletest/googletest/scripts/gen_gtest_pred_impl.py +734 -0
- package/cpp/leveldb/third_party/googletest/googletest/scripts/gtest-config.in +274 -0
- package/cpp/leveldb/third_party/googletest/googletest/scripts/release_docs.py +158 -0
- package/cpp/leveldb/third_party/googletest/googletest/scripts/run_with_path.py +32 -0
- package/cpp/leveldb/third_party/googletest/googletest/scripts/upload.py +1402 -0
- package/cpp/leveldb/third_party/googletest/googletest/scripts/upload_gtest.py +78 -0
- package/cpp/leveldb/third_party/googletest/googletest/src/gtest-all.cc +48 -0
- package/cpp/leveldb/third_party/googletest/googletest/src/gtest-death-test.cc +1653 -0
- package/cpp/leveldb/third_party/googletest/googletest/src/gtest-filepath.cc +382 -0
- package/cpp/leveldb/third_party/googletest/googletest/src/gtest-internal-inl.h +1211 -0
- package/cpp/leveldb/third_party/googletest/googletest/src/gtest-matchers.cc +97 -0
- package/cpp/leveldb/third_party/googletest/googletest/src/gtest-port.cc +1399 -0
- package/cpp/leveldb/third_party/googletest/googletest/src/gtest-printers.cc +442 -0
- package/cpp/leveldb/third_party/googletest/googletest/src/gtest-test-part.cc +108 -0
- package/cpp/leveldb/third_party/googletest/googletest/src/gtest-typed-test.cc +118 -0
- package/cpp/leveldb/third_party/googletest/googletest/src/gtest.cc +6180 -0
- package/cpp/leveldb/third_party/googletest/googletest/src/gtest_main.cc +54 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/BUILD.bazel +529 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-break-on-failure-unittest.py +208 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-break-on-failure-unittest_.cc +86 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-catch-exceptions-test.py +236 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-catch-exceptions-test_.cc +293 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-color-test.py +127 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-color-test_.cc +62 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-death-test-test.cc +1516 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-death-test_ex_test.cc +92 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-env-var-test.py +117 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-env-var-test_.cc +122 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-filepath-test.cc +649 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-filter-unittest.py +639 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-filter-unittest_.cc +137 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-json-outfiles-test.py +191 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-json-output-unittest.py +778 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-list-tests-unittest.py +205 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-list-tests-unittest_.cc +156 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-listener-test.cc +518 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-message-test.cc +158 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-options-test.cc +216 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-output-test-golden-lin.txt +1137 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-output-test.py +346 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-output-test_.cc +1149 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-param-test-invalid-name1-test.py +63 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-param-test-invalid-name1-test_.cc +50 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-param-test-invalid-name2-test.py +62 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-param-test-invalid-name2-test_.cc +55 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-param-test-test.cc +1086 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-param-test-test.h +51 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-param-test2-test.cc +61 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-port-test.cc +1272 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-printers-test.cc +1619 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-shuffle-test.py +323 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-shuffle-test_.cc +101 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-test-part-test.cc +230 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-test2_test.cc +61 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-throw-on-failure-test.py +168 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-throw-on-failure-test_.cc +71 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-uninitialized-test.py +67 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-uninitialized-test_.cc +42 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest-typed-test2_test.cc +44 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest-typed-test_test.cc +462 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest-typed-test_test.h +65 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest-unittest-api_test.cc +341 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_all_test.cc +46 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_assert_by_exception_test.cc +116 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_environment_test.cc +188 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_help_test.py +170 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_help_test_.cc +45 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_json_test_utils.py +60 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_list_output_unittest.py +141 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_list_output_unittest_.cc +51 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_main_unittest.cc +44 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_no_test_unittest.cc +54 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_pred_impl_unittest.cc +2427 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_premature_exit_test.cc +126 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_prod_test.cc +56 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_repeat_test.cc +233 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_skip_check_output_test.py +59 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_skip_environment_check_output_test.py +54 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_skip_in_environment_setup_test.cc +49 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_skip_test.cc +55 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_sole_header_test.cc +56 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_stress_test.cc +248 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_test_macro_stack_footprint_test.cc +89 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_test_utils.py +314 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_testbridge_test.py +63 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_testbridge_test_.cc +43 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_throw_on_failure_ex_test.cc +90 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_unittest.cc +7496 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_xml_outfile1_test_.cc +43 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_xml_outfile2_test_.cc +43 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_xml_outfiles_test.py +135 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_xml_output_unittest.py +389 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_xml_output_unittest_.cc +188 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_xml_test_utils.py +196 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/production.cc +35 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/production.h +54 -0
- package/cpp/leveldb/third_party/googletest/library.json +66 -0
- package/cpp/leveldb/third_party/googletest/platformio.ini +47 -0
- package/cpp/leveldb/util/arena.cc +66 -0
- package/cpp/leveldb/util/arena.h +71 -0
- package/cpp/leveldb/util/arena_test.cc +66 -0
- package/cpp/leveldb/util/bloom.cc +92 -0
- package/cpp/leveldb/util/bloom_test.cc +159 -0
- package/cpp/leveldb/util/cache.cc +401 -0
- package/cpp/leveldb/util/cache_test.cc +229 -0
- package/cpp/leveldb/util/coding.cc +166 -0
- package/cpp/leveldb/util/coding.h +122 -0
- package/cpp/leveldb/util/coding_test.cc +198 -0
- package/cpp/leveldb/util/comparator.cc +75 -0
- package/cpp/leveldb/util/crc32c.cc +380 -0
- package/cpp/leveldb/util/crc32c.h +43 -0
- package/cpp/leveldb/util/crc32c_test.cc +61 -0
- package/cpp/leveldb/util/env.cc +108 -0
- package/cpp/leveldb/util/env_posix.cc +893 -0
- package/cpp/leveldb/util/env_posix_test.cc +353 -0
- package/cpp/leveldb/util/env_posix_test_helper.h +28 -0
- package/cpp/leveldb/util/env_test.cc +240 -0
- package/cpp/leveldb/util/env_windows.cc +796 -0
- package/cpp/leveldb/util/env_windows_test.cc +65 -0
- package/cpp/leveldb/util/env_windows_test_helper.h +25 -0
- package/cpp/leveldb/util/filter_policy.cc +11 -0
- package/cpp/leveldb/util/hash.cc +55 -0
- package/cpp/leveldb/util/hash.h +19 -0
- package/cpp/leveldb/util/hash_test.cc +46 -0
- package/cpp/leveldb/util/histogram.cc +272 -0
- package/cpp/leveldb/util/histogram.h +44 -0
- package/cpp/leveldb/util/logging.cc +82 -0
- package/cpp/leveldb/util/logging.h +44 -0
- package/cpp/leveldb/util/logging_test.cc +145 -0
- package/cpp/leveldb/util/mutexlock.h +39 -0
- package/cpp/leveldb/util/no_destructor.h +46 -0
- package/cpp/leveldb/util/no_destructor_test.cc +49 -0
- package/cpp/leveldb/util/options.cc +14 -0
- package/cpp/leveldb/util/posix_logger.h +130 -0
- package/cpp/leveldb/util/random.h +63 -0
- package/cpp/leveldb/util/status.cc +77 -0
- package/cpp/leveldb/util/status_test.cc +44 -0
- package/cpp/leveldb/util/testutil.cc +51 -0
- package/cpp/leveldb/util/testutil.h +82 -0
- package/cpp/leveldb/util/windows_logger.h +124 -0
- package/cpp/react-native-leveldb.cpp +694 -0
- package/cpp/react-native-leveldb.h +4 -0
- package/ios/Leveldb.h +9 -0
- package/ios/Leveldb.mm +35 -0
- package/ios/Leveldb.xcodeproj/project.pbxproj +288 -0
- package/lib/commonjs/fake.js +181 -0
- package/lib/commonjs/fake.js.map +1 -0
- package/lib/commonjs/fake.test.js +30 -0
- package/lib/commonjs/fake.test.js.map +1 -0
- package/lib/commonjs/index.js +172 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/module/fake.js +171 -0
- package/lib/module/fake.js.map +1 -0
- package/lib/module/fake.test.js +30 -0
- package/lib/module/fake.test.js.map +1 -0
- package/lib/module/index.js +165 -0
- package/lib/module/index.js.map +1 -0
- package/lib/typescript/fake.d.ts +34 -0
- package/lib/typescript/fake.d.ts.map +1 -0
- package/lib/typescript/fake.test.d.ts +2 -0
- package/lib/typescript/fake.test.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +72 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/package.json +157 -0
- package/rn-leveldb.podspec +30 -0
- package/src/fake.test.ts +37 -0
- package/src/fake.ts +203 -0
- package/src/index.ts +291 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
// Copyright (c) 2013 The LevelDB Authors. All rights reserved.
|
|
2
|
+
// Use of this source code is governed by a BSD-style license that can be
|
|
3
|
+
// found in the LICENSE file. See the AUTHORS file for names of contributors.
|
|
4
|
+
|
|
5
|
+
// Test for issue 178: a manual compaction causes deleted data to reappear.
|
|
6
|
+
#include <cstdlib>
|
|
7
|
+
#include <iostream>
|
|
8
|
+
#include <sstream>
|
|
9
|
+
|
|
10
|
+
#include "gtest/gtest.h"
|
|
11
|
+
#include "leveldb/db.h"
|
|
12
|
+
#include "leveldb/write_batch.h"
|
|
13
|
+
#include "util/testutil.h"
|
|
14
|
+
|
|
15
|
+
namespace {
|
|
16
|
+
|
|
17
|
+
const int kNumKeys = 1100000;
|
|
18
|
+
|
|
19
|
+
std::string Key1(int i) {
|
|
20
|
+
char buf[100];
|
|
21
|
+
std::snprintf(buf, sizeof(buf), "my_key_%d", i);
|
|
22
|
+
return buf;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
std::string Key2(int i) { return Key1(i) + "_xxx"; }
|
|
26
|
+
|
|
27
|
+
TEST(Issue178, Test) {
|
|
28
|
+
// Get rid of any state from an old run.
|
|
29
|
+
std::string dbpath = testing::TempDir() + "leveldb_cbug_test";
|
|
30
|
+
DestroyDB(dbpath, leveldb::Options());
|
|
31
|
+
|
|
32
|
+
// Open database. Disable compression since it affects the creation
|
|
33
|
+
// of layers and the code below is trying to test against a very
|
|
34
|
+
// specific scenario.
|
|
35
|
+
leveldb::DB* db;
|
|
36
|
+
leveldb::Options db_options;
|
|
37
|
+
db_options.create_if_missing = true;
|
|
38
|
+
db_options.compression = leveldb::kNoCompression;
|
|
39
|
+
ASSERT_LEVELDB_OK(leveldb::DB::Open(db_options, dbpath, &db));
|
|
40
|
+
|
|
41
|
+
// create first key range
|
|
42
|
+
leveldb::WriteBatch batch;
|
|
43
|
+
for (size_t i = 0; i < kNumKeys; i++) {
|
|
44
|
+
batch.Put(Key1(i), "value for range 1 key");
|
|
45
|
+
}
|
|
46
|
+
ASSERT_LEVELDB_OK(db->Write(leveldb::WriteOptions(), &batch));
|
|
47
|
+
|
|
48
|
+
// create second key range
|
|
49
|
+
batch.Clear();
|
|
50
|
+
for (size_t i = 0; i < kNumKeys; i++) {
|
|
51
|
+
batch.Put(Key2(i), "value for range 2 key");
|
|
52
|
+
}
|
|
53
|
+
ASSERT_LEVELDB_OK(db->Write(leveldb::WriteOptions(), &batch));
|
|
54
|
+
|
|
55
|
+
// delete second key range
|
|
56
|
+
batch.Clear();
|
|
57
|
+
for (size_t i = 0; i < kNumKeys; i++) {
|
|
58
|
+
batch.Delete(Key2(i));
|
|
59
|
+
}
|
|
60
|
+
ASSERT_LEVELDB_OK(db->Write(leveldb::WriteOptions(), &batch));
|
|
61
|
+
|
|
62
|
+
// compact database
|
|
63
|
+
std::string start_key = Key1(0);
|
|
64
|
+
std::string end_key = Key1(kNumKeys - 1);
|
|
65
|
+
leveldb::Slice least(start_key.data(), start_key.size());
|
|
66
|
+
leveldb::Slice greatest(end_key.data(), end_key.size());
|
|
67
|
+
|
|
68
|
+
// commenting out the line below causes the example to work correctly
|
|
69
|
+
db->CompactRange(&least, &greatest);
|
|
70
|
+
|
|
71
|
+
// count the keys
|
|
72
|
+
leveldb::Iterator* iter = db->NewIterator(leveldb::ReadOptions());
|
|
73
|
+
size_t num_keys = 0;
|
|
74
|
+
for (iter->SeekToFirst(); iter->Valid(); iter->Next()) {
|
|
75
|
+
num_keys++;
|
|
76
|
+
}
|
|
77
|
+
delete iter;
|
|
78
|
+
ASSERT_EQ(kNumKeys, num_keys) << "Bad number of keys";
|
|
79
|
+
|
|
80
|
+
// close database
|
|
81
|
+
delete db;
|
|
82
|
+
DestroyDB(dbpath, leveldb::Options());
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
} // anonymous namespace
|
|
86
|
+
|
|
87
|
+
int main(int argc, char** argv) {
|
|
88
|
+
testing::InitGoogleTest(&argc, argv);
|
|
89
|
+
return RUN_ALL_TESTS();
|
|
90
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// Copyright (c) 2013 The LevelDB Authors. All rights reserved.
|
|
2
|
+
// Use of this source code is governed by a BSD-style license that can be
|
|
3
|
+
// found in the LICENSE file. See the AUTHORS file for names of contributors.
|
|
4
|
+
|
|
5
|
+
// Test for issue 200: when iterator switches direction from backward
|
|
6
|
+
// to forward, the current key can be yielded unexpectedly if a new
|
|
7
|
+
// mutation has been added just before the current key.
|
|
8
|
+
|
|
9
|
+
#include "gtest/gtest.h"
|
|
10
|
+
#include "leveldb/db.h"
|
|
11
|
+
#include "util/testutil.h"
|
|
12
|
+
|
|
13
|
+
namespace leveldb {
|
|
14
|
+
|
|
15
|
+
TEST(Issue200, Test) {
|
|
16
|
+
// Get rid of any state from an old run.
|
|
17
|
+
std::string dbpath = testing::TempDir() + "leveldb_issue200_test";
|
|
18
|
+
DestroyDB(dbpath, Options());
|
|
19
|
+
|
|
20
|
+
DB* db;
|
|
21
|
+
Options options;
|
|
22
|
+
options.create_if_missing = true;
|
|
23
|
+
ASSERT_LEVELDB_OK(DB::Open(options, dbpath, &db));
|
|
24
|
+
|
|
25
|
+
WriteOptions write_options;
|
|
26
|
+
ASSERT_LEVELDB_OK(db->Put(write_options, "1", "b"));
|
|
27
|
+
ASSERT_LEVELDB_OK(db->Put(write_options, "2", "c"));
|
|
28
|
+
ASSERT_LEVELDB_OK(db->Put(write_options, "3", "d"));
|
|
29
|
+
ASSERT_LEVELDB_OK(db->Put(write_options, "4", "e"));
|
|
30
|
+
ASSERT_LEVELDB_OK(db->Put(write_options, "5", "f"));
|
|
31
|
+
|
|
32
|
+
ReadOptions read_options;
|
|
33
|
+
Iterator* iter = db->NewIterator(read_options);
|
|
34
|
+
|
|
35
|
+
// Add an element that should not be reflected in the iterator.
|
|
36
|
+
ASSERT_LEVELDB_OK(db->Put(write_options, "25", "cd"));
|
|
37
|
+
|
|
38
|
+
iter->Seek("5");
|
|
39
|
+
ASSERT_EQ(iter->key().ToString(), "5");
|
|
40
|
+
iter->Prev();
|
|
41
|
+
ASSERT_EQ(iter->key().ToString(), "4");
|
|
42
|
+
iter->Prev();
|
|
43
|
+
ASSERT_EQ(iter->key().ToString(), "3");
|
|
44
|
+
iter->Next();
|
|
45
|
+
ASSERT_EQ(iter->key().ToString(), "4");
|
|
46
|
+
iter->Next();
|
|
47
|
+
ASSERT_EQ(iter->key().ToString(), "5");
|
|
48
|
+
|
|
49
|
+
delete iter;
|
|
50
|
+
delete db;
|
|
51
|
+
DestroyDB(dbpath, options);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
} // namespace leveldb
|
|
55
|
+
|
|
56
|
+
int main(int argc, char** argv) {
|
|
57
|
+
testing::InitGoogleTest(&argc, argv);
|
|
58
|
+
return RUN_ALL_TESTS();
|
|
59
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
// Copyright (c) 2019 The LevelDB Authors. All rights reserved.
|
|
2
|
+
// Use of this source code is governed by a BSD-style license that can be
|
|
3
|
+
// found in the LICENSE file. See the AUTHORS file for names of contributors.
|
|
4
|
+
|
|
5
|
+
#include <cstdint>
|
|
6
|
+
#include <cstdlib>
|
|
7
|
+
#include <iostream>
|
|
8
|
+
#include <memory>
|
|
9
|
+
#include <string>
|
|
10
|
+
#include <vector>
|
|
11
|
+
|
|
12
|
+
#include "gtest/gtest.h"
|
|
13
|
+
#include "leveldb/db.h"
|
|
14
|
+
#include "leveldb/write_batch.h"
|
|
15
|
+
#include "util/testutil.h"
|
|
16
|
+
|
|
17
|
+
namespace leveldb {
|
|
18
|
+
|
|
19
|
+
namespace {
|
|
20
|
+
|
|
21
|
+
// Creates a random number in the range of [0, max).
|
|
22
|
+
int GenerateRandomNumber(int max) { return std::rand() % max; }
|
|
23
|
+
|
|
24
|
+
std::string CreateRandomString(int32_t index) {
|
|
25
|
+
static const size_t len = 1024;
|
|
26
|
+
char bytes[len];
|
|
27
|
+
size_t i = 0;
|
|
28
|
+
while (i < 8) {
|
|
29
|
+
bytes[i] = 'a' + ((index >> (4 * i)) & 0xf);
|
|
30
|
+
++i;
|
|
31
|
+
}
|
|
32
|
+
while (i < sizeof(bytes)) {
|
|
33
|
+
bytes[i] = 'a' + GenerateRandomNumber(26);
|
|
34
|
+
++i;
|
|
35
|
+
}
|
|
36
|
+
return std::string(bytes, sizeof(bytes));
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
} // namespace
|
|
40
|
+
|
|
41
|
+
TEST(Issue320, Test) {
|
|
42
|
+
std::srand(0);
|
|
43
|
+
|
|
44
|
+
bool delete_before_put = false;
|
|
45
|
+
bool keep_snapshots = true;
|
|
46
|
+
|
|
47
|
+
std::vector<std::unique_ptr<std::pair<std::string, std::string>>> test_map(
|
|
48
|
+
10000);
|
|
49
|
+
std::vector<Snapshot const*> snapshots(100, nullptr);
|
|
50
|
+
|
|
51
|
+
DB* db;
|
|
52
|
+
Options options;
|
|
53
|
+
options.create_if_missing = true;
|
|
54
|
+
|
|
55
|
+
std::string dbpath = testing::TempDir() + "leveldb_issue320_test";
|
|
56
|
+
ASSERT_LEVELDB_OK(DB::Open(options, dbpath, &db));
|
|
57
|
+
|
|
58
|
+
uint32_t target_size = 10000;
|
|
59
|
+
uint32_t num_items = 0;
|
|
60
|
+
uint32_t count = 0;
|
|
61
|
+
std::string key;
|
|
62
|
+
std::string value, old_value;
|
|
63
|
+
|
|
64
|
+
WriteOptions writeOptions;
|
|
65
|
+
ReadOptions readOptions;
|
|
66
|
+
while (count < 200000) {
|
|
67
|
+
if ((++count % 1000) == 0) {
|
|
68
|
+
std::cout << "count: " << count << std::endl;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
int index = GenerateRandomNumber(test_map.size());
|
|
72
|
+
WriteBatch batch;
|
|
73
|
+
|
|
74
|
+
if (test_map[index] == nullptr) {
|
|
75
|
+
num_items++;
|
|
76
|
+
test_map[index].reset(new std::pair<std::string, std::string>(
|
|
77
|
+
CreateRandomString(index), CreateRandomString(index)));
|
|
78
|
+
batch.Put(test_map[index]->first, test_map[index]->second);
|
|
79
|
+
} else {
|
|
80
|
+
ASSERT_LEVELDB_OK(
|
|
81
|
+
db->Get(readOptions, test_map[index]->first, &old_value));
|
|
82
|
+
if (old_value != test_map[index]->second) {
|
|
83
|
+
std::cout << "ERROR incorrect value returned by Get" << std::endl;
|
|
84
|
+
std::cout << " count=" << count << std::endl;
|
|
85
|
+
std::cout << " old value=" << old_value << std::endl;
|
|
86
|
+
std::cout << " test_map[index]->second=" << test_map[index]->second
|
|
87
|
+
<< std::endl;
|
|
88
|
+
std::cout << " test_map[index]->first=" << test_map[index]->first
|
|
89
|
+
<< std::endl;
|
|
90
|
+
std::cout << " index=" << index << std::endl;
|
|
91
|
+
ASSERT_EQ(old_value, test_map[index]->second);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
if (num_items >= target_size && GenerateRandomNumber(100) > 30) {
|
|
95
|
+
batch.Delete(test_map[index]->first);
|
|
96
|
+
test_map[index] = nullptr;
|
|
97
|
+
--num_items;
|
|
98
|
+
} else {
|
|
99
|
+
test_map[index]->second = CreateRandomString(index);
|
|
100
|
+
if (delete_before_put) batch.Delete(test_map[index]->first);
|
|
101
|
+
batch.Put(test_map[index]->first, test_map[index]->second);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
ASSERT_LEVELDB_OK(db->Write(writeOptions, &batch));
|
|
106
|
+
|
|
107
|
+
if (keep_snapshots && GenerateRandomNumber(10) == 0) {
|
|
108
|
+
int i = GenerateRandomNumber(snapshots.size());
|
|
109
|
+
if (snapshots[i] != nullptr) {
|
|
110
|
+
db->ReleaseSnapshot(snapshots[i]);
|
|
111
|
+
}
|
|
112
|
+
snapshots[i] = db->GetSnapshot();
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
for (Snapshot const* snapshot : snapshots) {
|
|
117
|
+
if (snapshot) {
|
|
118
|
+
db->ReleaseSnapshot(snapshot);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
delete db;
|
|
123
|
+
DestroyDB(dbpath, options);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
} // namespace leveldb
|
|
127
|
+
|
|
128
|
+
int main(int argc, char** argv) {
|
|
129
|
+
testing::InitGoogleTest(&argc, argv);
|
|
130
|
+
return RUN_ALL_TESTS();
|
|
131
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
This directory contains interfaces and implementations that isolate the
|
|
2
|
+
rest of the package from platform details.
|
|
3
|
+
|
|
4
|
+
Code in the rest of the package includes "port.h" from this directory.
|
|
5
|
+
"port.h" in turn includes a platform specific "port_<platform>.h" file
|
|
6
|
+
that provides the platform specific implementation.
|
|
7
|
+
|
|
8
|
+
See port_stdcxx.h for an example of what must be provided in a platform
|
|
9
|
+
specific header file.
|
|
10
|
+
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
|
2
|
+
// Use of this source code is governed by a BSD-style license that can be
|
|
3
|
+
// found in the LICENSE file. See the AUTHORS file for names of contributors.
|
|
4
|
+
|
|
5
|
+
#ifndef STORAGE_LEVELDB_PORT_PORT_H_
|
|
6
|
+
#define STORAGE_LEVELDB_PORT_PORT_H_
|
|
7
|
+
|
|
8
|
+
#include <string.h>
|
|
9
|
+
|
|
10
|
+
// Include the appropriate platform specific file below. If you are
|
|
11
|
+
// porting to a new platform, see "port_example.h" for documentation
|
|
12
|
+
// of what the new port_<platform>.h file must provide.
|
|
13
|
+
#if defined(LEVELDB_PLATFORM_POSIX) || defined(LEVELDB_PLATFORM_WINDOWS)
|
|
14
|
+
#include "port/port_stdcxx.h"
|
|
15
|
+
#elif defined(LEVELDB_PLATFORM_CHROMIUM)
|
|
16
|
+
#include "port/port_chromium.h"
|
|
17
|
+
#endif
|
|
18
|
+
|
|
19
|
+
#endif // STORAGE_LEVELDB_PORT_PORT_H_
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// Copyright 2017 The LevelDB Authors. All rights reserved.
|
|
2
|
+
// Use of this source code is governed by a BSD-style license that can be
|
|
3
|
+
// found in the LICENSE file. See the AUTHORS file for names of contributors.
|
|
4
|
+
|
|
5
|
+
#ifndef STORAGE_LEVELDB_PORT_PORT_CONFIG_H_
|
|
6
|
+
#define STORAGE_LEVELDB_PORT_PORT_CONFIG_H_
|
|
7
|
+
|
|
8
|
+
// Define to 1 if you have a definition for fdatasync() in <unistd.h>.
|
|
9
|
+
#if !defined(HAVE_FDATASYNC)
|
|
10
|
+
#cmakedefine01 HAVE_FDATASYNC
|
|
11
|
+
#endif // !defined(HAVE_FDATASYNC)
|
|
12
|
+
|
|
13
|
+
// Define to 1 if you have a definition for F_FULLFSYNC in <fcntl.h>.
|
|
14
|
+
#if !defined(HAVE_FULLFSYNC)
|
|
15
|
+
#cmakedefine01 HAVE_FULLFSYNC
|
|
16
|
+
#endif // !defined(HAVE_FULLFSYNC)
|
|
17
|
+
|
|
18
|
+
// Define to 1 if you have a definition for O_CLOEXEC in <fcntl.h>.
|
|
19
|
+
#if !defined(HAVE_O_CLOEXEC)
|
|
20
|
+
#cmakedefine01 HAVE_O_CLOEXEC
|
|
21
|
+
#endif // !defined(HAVE_O_CLOEXEC)
|
|
22
|
+
|
|
23
|
+
// Define to 1 if you have Google CRC32C.
|
|
24
|
+
#if !defined(HAVE_CRC32C)
|
|
25
|
+
#cmakedefine01 HAVE_CRC32C
|
|
26
|
+
#endif // !defined(HAVE_CRC32C)
|
|
27
|
+
|
|
28
|
+
// Define to 1 if you have Google Snappy.
|
|
29
|
+
#if !defined(HAVE_SNAPPY)
|
|
30
|
+
#cmakedefine01 HAVE_SNAPPY
|
|
31
|
+
#endif // !defined(HAVE_SNAPPY)
|
|
32
|
+
|
|
33
|
+
#endif // STORAGE_LEVELDB_PORT_PORT_CONFIG_H_
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
|
2
|
+
// Use of this source code is governed by a BSD-style license that can be
|
|
3
|
+
// found in the LICENSE file. See the AUTHORS file for names of contributors.
|
|
4
|
+
//
|
|
5
|
+
// This file contains the specification, but not the implementations,
|
|
6
|
+
// of the types/operations/etc. that should be defined by a platform
|
|
7
|
+
// specific port_<platform>.h file. Use this file as a reference for
|
|
8
|
+
// how to port this package to a new platform.
|
|
9
|
+
|
|
10
|
+
#ifndef STORAGE_LEVELDB_PORT_PORT_EXAMPLE_H_
|
|
11
|
+
#define STORAGE_LEVELDB_PORT_PORT_EXAMPLE_H_
|
|
12
|
+
|
|
13
|
+
#include "port/thread_annotations.h"
|
|
14
|
+
|
|
15
|
+
namespace leveldb {
|
|
16
|
+
namespace port {
|
|
17
|
+
|
|
18
|
+
// TODO(jorlow): Many of these belong more in the environment class rather than
|
|
19
|
+
// here. We should try moving them and see if it affects perf.
|
|
20
|
+
|
|
21
|
+
// ------------------ Threading -------------------
|
|
22
|
+
|
|
23
|
+
// A Mutex represents an exclusive lock.
|
|
24
|
+
class LOCKABLE Mutex {
|
|
25
|
+
public:
|
|
26
|
+
Mutex();
|
|
27
|
+
~Mutex();
|
|
28
|
+
|
|
29
|
+
// Lock the mutex. Waits until other lockers have exited.
|
|
30
|
+
// Will deadlock if the mutex is already locked by this thread.
|
|
31
|
+
void Lock() EXCLUSIVE_LOCK_FUNCTION();
|
|
32
|
+
|
|
33
|
+
// Unlock the mutex.
|
|
34
|
+
// REQUIRES: This mutex was locked by this thread.
|
|
35
|
+
void Unlock() UNLOCK_FUNCTION();
|
|
36
|
+
|
|
37
|
+
// Optionally crash if this thread does not hold this mutex.
|
|
38
|
+
// The implementation must be fast, especially if NDEBUG is
|
|
39
|
+
// defined. The implementation is allowed to skip all checks.
|
|
40
|
+
void AssertHeld() ASSERT_EXCLUSIVE_LOCK();
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
class CondVar {
|
|
44
|
+
public:
|
|
45
|
+
explicit CondVar(Mutex* mu);
|
|
46
|
+
~CondVar();
|
|
47
|
+
|
|
48
|
+
// Atomically release *mu and block on this condition variable until
|
|
49
|
+
// either a call to SignalAll(), or a call to Signal() that picks
|
|
50
|
+
// this thread to wakeup.
|
|
51
|
+
// REQUIRES: this thread holds *mu
|
|
52
|
+
void Wait();
|
|
53
|
+
|
|
54
|
+
// If there are some threads waiting, wake up at least one of them.
|
|
55
|
+
void Signal();
|
|
56
|
+
|
|
57
|
+
// Wake up all waiting threads.
|
|
58
|
+
void SignallAll();
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
// ------------------ Compression -------------------
|
|
62
|
+
|
|
63
|
+
// Store the snappy compression of "input[0,input_length-1]" in *output.
|
|
64
|
+
// Returns false if snappy is not supported by this port.
|
|
65
|
+
bool Snappy_Compress(const char* input, size_t input_length,
|
|
66
|
+
std::string* output);
|
|
67
|
+
|
|
68
|
+
// If input[0,input_length-1] looks like a valid snappy compressed
|
|
69
|
+
// buffer, store the size of the uncompressed data in *result and
|
|
70
|
+
// return true. Else return false.
|
|
71
|
+
bool Snappy_GetUncompressedLength(const char* input, size_t length,
|
|
72
|
+
size_t* result);
|
|
73
|
+
|
|
74
|
+
// Attempt to snappy uncompress input[0,input_length-1] into *output.
|
|
75
|
+
// Returns true if successful, false if the input is invalid lightweight
|
|
76
|
+
// compressed data.
|
|
77
|
+
//
|
|
78
|
+
// REQUIRES: at least the first "n" bytes of output[] must be writable
|
|
79
|
+
// where "n" is the result of a successful call to
|
|
80
|
+
// Snappy_GetUncompressedLength.
|
|
81
|
+
bool Snappy_Uncompress(const char* input_data, size_t input_length,
|
|
82
|
+
char* output);
|
|
83
|
+
|
|
84
|
+
// ------------------ Miscellaneous -------------------
|
|
85
|
+
|
|
86
|
+
// If heap profiling is not supported, returns false.
|
|
87
|
+
// Else repeatedly calls (*func)(arg, data, n) and then returns true.
|
|
88
|
+
// The concatenation of all "data[0,n-1]" fragments is the heap profile.
|
|
89
|
+
bool GetHeapProfile(void (*func)(void*, const char*, int), void* arg);
|
|
90
|
+
|
|
91
|
+
// Extend the CRC to include the first n bytes of buf.
|
|
92
|
+
//
|
|
93
|
+
// Returns zero if the CRC cannot be extended using acceleration, else returns
|
|
94
|
+
// the newly extended CRC value (which may also be zero).
|
|
95
|
+
uint32_t AcceleratedCRC32C(uint32_t crc, const char* buf, size_t size);
|
|
96
|
+
|
|
97
|
+
} // namespace port
|
|
98
|
+
} // namespace leveldb
|
|
99
|
+
|
|
100
|
+
#endif // STORAGE_LEVELDB_PORT_PORT_EXAMPLE_H_
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
// Copyright (c) 2018 The LevelDB Authors. All rights reserved.
|
|
2
|
+
// Use of this source code is governed by a BSD-style license that can be
|
|
3
|
+
// found in the LICENSE file. See the AUTHORS file for names of contributors.
|
|
4
|
+
|
|
5
|
+
#ifndef STORAGE_LEVELDB_PORT_PORT_STDCXX_H_
|
|
6
|
+
#define STORAGE_LEVELDB_PORT_PORT_STDCXX_H_
|
|
7
|
+
|
|
8
|
+
// port/port_config.h availability is automatically detected via __has_include
|
|
9
|
+
// in newer compilers. If LEVELDB_HAS_PORT_CONFIG_H is defined, it overrides the
|
|
10
|
+
// configuration detection.
|
|
11
|
+
#if defined(LEVELDB_HAS_PORT_CONFIG_H)
|
|
12
|
+
|
|
13
|
+
#if LEVELDB_HAS_PORT_CONFIG_H
|
|
14
|
+
#include "port/port_config.h"
|
|
15
|
+
#endif // LEVELDB_HAS_PORT_CONFIG_H
|
|
16
|
+
|
|
17
|
+
#elif defined(__has_include)
|
|
18
|
+
|
|
19
|
+
#if __has_include("port/port_config.h")
|
|
20
|
+
#include "port/port_config.h"
|
|
21
|
+
#endif // __has_include("port/port_config.h")
|
|
22
|
+
|
|
23
|
+
#endif // defined(LEVELDB_HAS_PORT_CONFIG_H)
|
|
24
|
+
|
|
25
|
+
#if HAVE_CRC32C
|
|
26
|
+
#include <crc32c/crc32c.h>
|
|
27
|
+
#endif // HAVE_CRC32C
|
|
28
|
+
#if HAVE_SNAPPY
|
|
29
|
+
#include <snappy.h>
|
|
30
|
+
#endif // HAVE_SNAPPY
|
|
31
|
+
|
|
32
|
+
#include <cassert>
|
|
33
|
+
#include <condition_variable> // NOLINT
|
|
34
|
+
#include <cstddef>
|
|
35
|
+
#include <cstdint>
|
|
36
|
+
#include <mutex> // NOLINT
|
|
37
|
+
#include <string>
|
|
38
|
+
|
|
39
|
+
#include "port/thread_annotations.h"
|
|
40
|
+
|
|
41
|
+
namespace leveldb {
|
|
42
|
+
namespace port {
|
|
43
|
+
|
|
44
|
+
class CondVar;
|
|
45
|
+
|
|
46
|
+
// Thinly wraps std::mutex.
|
|
47
|
+
class LOCKABLE Mutex {
|
|
48
|
+
public:
|
|
49
|
+
Mutex() = default;
|
|
50
|
+
~Mutex() = default;
|
|
51
|
+
|
|
52
|
+
Mutex(const Mutex&) = delete;
|
|
53
|
+
Mutex& operator=(const Mutex&) = delete;
|
|
54
|
+
|
|
55
|
+
void Lock() EXCLUSIVE_LOCK_FUNCTION() { mu_.lock(); }
|
|
56
|
+
void Unlock() UNLOCK_FUNCTION() { mu_.unlock(); }
|
|
57
|
+
void AssertHeld() ASSERT_EXCLUSIVE_LOCK() {}
|
|
58
|
+
|
|
59
|
+
private:
|
|
60
|
+
friend class CondVar;
|
|
61
|
+
std::mutex mu_;
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
// Thinly wraps std::condition_variable.
|
|
65
|
+
class CondVar {
|
|
66
|
+
public:
|
|
67
|
+
explicit CondVar(Mutex* mu) : mu_(mu) { assert(mu != nullptr); }
|
|
68
|
+
~CondVar() = default;
|
|
69
|
+
|
|
70
|
+
CondVar(const CondVar&) = delete;
|
|
71
|
+
CondVar& operator=(const CondVar&) = delete;
|
|
72
|
+
|
|
73
|
+
void Wait() {
|
|
74
|
+
std::unique_lock<std::mutex> lock(mu_->mu_, std::adopt_lock);
|
|
75
|
+
cv_.wait(lock);
|
|
76
|
+
lock.release();
|
|
77
|
+
}
|
|
78
|
+
void Signal() { cv_.notify_one(); }
|
|
79
|
+
void SignalAll() { cv_.notify_all(); }
|
|
80
|
+
|
|
81
|
+
private:
|
|
82
|
+
std::condition_variable cv_;
|
|
83
|
+
Mutex* const mu_;
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
inline bool Snappy_Compress(const char* input, size_t length,
|
|
87
|
+
std::string* output) {
|
|
88
|
+
#if HAVE_SNAPPY
|
|
89
|
+
output->resize(snappy::MaxCompressedLength(length));
|
|
90
|
+
size_t outlen;
|
|
91
|
+
snappy::RawCompress(input, length, &(*output)[0], &outlen);
|
|
92
|
+
output->resize(outlen);
|
|
93
|
+
return true;
|
|
94
|
+
#else
|
|
95
|
+
// Silence compiler warnings about unused arguments.
|
|
96
|
+
(void)input;
|
|
97
|
+
(void)length;
|
|
98
|
+
(void)output;
|
|
99
|
+
#endif // HAVE_SNAPPY
|
|
100
|
+
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
inline bool Snappy_GetUncompressedLength(const char* input, size_t length,
|
|
105
|
+
size_t* result) {
|
|
106
|
+
#if HAVE_SNAPPY
|
|
107
|
+
return snappy::GetUncompressedLength(input, length, result);
|
|
108
|
+
#else
|
|
109
|
+
// Silence compiler warnings about unused arguments.
|
|
110
|
+
(void)input;
|
|
111
|
+
(void)length;
|
|
112
|
+
(void)result;
|
|
113
|
+
return false;
|
|
114
|
+
#endif // HAVE_SNAPPY
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
inline bool Snappy_Uncompress(const char* input, size_t length, char* output) {
|
|
118
|
+
#if HAVE_SNAPPY
|
|
119
|
+
return snappy::RawUncompress(input, length, output);
|
|
120
|
+
#else
|
|
121
|
+
// Silence compiler warnings about unused arguments.
|
|
122
|
+
(void)input;
|
|
123
|
+
(void)length;
|
|
124
|
+
(void)output;
|
|
125
|
+
return false;
|
|
126
|
+
#endif // HAVE_SNAPPY
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
inline bool GetHeapProfile(void (*func)(void*, const char*, int), void* arg) {
|
|
130
|
+
// Silence compiler warnings about unused arguments.
|
|
131
|
+
(void)func;
|
|
132
|
+
(void)arg;
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
inline uint32_t AcceleratedCRC32C(uint32_t crc, const char* buf, size_t size) {
|
|
137
|
+
#if HAVE_CRC32C
|
|
138
|
+
return ::crc32c::Extend(crc, reinterpret_cast<const uint8_t*>(buf), size);
|
|
139
|
+
#else
|
|
140
|
+
// Silence compiler warnings about unused arguments.
|
|
141
|
+
(void)crc;
|
|
142
|
+
(void)buf;
|
|
143
|
+
(void)size;
|
|
144
|
+
return 0;
|
|
145
|
+
#endif // HAVE_CRC32C
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
} // namespace port
|
|
149
|
+
} // namespace leveldb
|
|
150
|
+
|
|
151
|
+
#endif // STORAGE_LEVELDB_PORT_PORT_STDCXX_H_
|