rocksdb/utilities
Andrew Kryczka 17c1180603 Generalize Env registration framework
Summary:
The Env registration framework supports registering client Envs and selecting which one to instantiate according to a text field. This enabled things like adding the -env_uri argument to db_bench, so the same binary could be reused with different Envs just by changing CLI config.

Now this problem has come up again in a non-Env context, as I want to instantiate a client Statistics implementation from db_bench, which is configured entirely via text parameters. Also, in the future we may wish to use it for deserializing client objects when loading OPTIONS file.

This diff generalizes the Env registration logic to work with arbitrary types.

- Generalized registration and instantiation code by templating them
- The entire implementation is in a header file as that's Google style guide's recommendation for template definitions
- Pattern match with std::regex_match rather than checking prefix, which was the previous behavior
- Rename functions/files to be non-Env-specific
Closes https://github.com/facebook/rocksdb/pull/1776

Differential Revision: D4421933

Pulled By: ajkr

fbshipit-source-id: 34647d1
2017-01-25 16:09:14 -08:00
..
backupable Fix backupable db test 2017-01-01 11:24:14 -08:00
blob_db Support SST files with Global sequence numbers [reland] 2016-10-18 16:59:37 -07:00
checkpoint Fix valgrind failure in test CurrentFileModifiedWhileCheckpointing2PC 2017-01-09 11:54:13 -08:00
compaction_filters Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
convenience Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
date_tiered DeleteRange user iterator support 2016-11-04 12:09:22 -07:00
document Revert "PinnableSlice" 2017-01-08 14:24:12 -08:00
geodb Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
leveldb_options Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
lua rocks_lua_compaction_filter: add unused attribute to a variable 2016-11-21 14:54:14 -08:00
memory Disable auto compactions in memory_test and re-enable the test (#1408) 2016-10-19 18:18:42 -07:00
merge_operators Introduce FullMergeV2 (eliminate memcpy from merge operators) 2016-07-20 09:49:03 -07:00
option_change_migration option_change_migration_test: force full compaction when needed 2016-11-15 22:09:34 -08:00
options Only cache level 0 indexes and filter when opening table reader 2016-07-20 11:23:31 -07:00
persistent_cache fixed typo 2017-01-23 12:54:13 -08:00
redis Eliminate use of 'using namespace std'. Also remove a number of ADL references to std functions. 2016-05-20 07:42:18 -07:00
simulator_cache Allow incrementing refcount on cache handles 2017-01-10 16:54:20 -08:00
spatialdb fix wrong assignment of level0_stop_writes_trigger in spatialdb (#1061) 2016-04-07 09:02:28 -07:00
table_properties_collectors Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
transactions Fix for 2PC causing WAL to grow too large 2017-01-19 15:39:12 -08:00
ttl Revert "PinnableSlice" 2017-01-08 14:24:12 -08:00
write_batch_with_index Avoid calling GetDBOptions() inside GetFromBatchAndDB() 2016-10-18 13:19:26 -07:00
col_buf_decoder.cc fix non-portable behavior in encoder 2017-01-20 16:39:22 -08:00
col_buf_decoder.h Fix clang build failure and refactor unit test 2016-08-02 15:16:39 -07:00
col_buf_encoder.cc Fix travis (compile for clang < 3.9) 2016-12-01 10:09:22 -08:00
col_buf_encoder.h Fix clang build failure and refactor unit test 2016-08-02 15:16:39 -07:00
column_aware_encoding_exp.cc Fix build on FreeBSD 2017-01-10 11:39:12 -08:00
column_aware_encoding_test.cc Fix clang build failure and refactor unit test 2016-08-02 15:16:39 -07:00
column_aware_encoding_util.cc Fix Windows build issues (#1253) 2016-08-02 17:15:18 -07:00
column_aware_encoding_util.h Remove ImmutableCFOptions from public API 2016-09-02 14:16:31 -07:00
env_librados_test.cc Add EnvLibrados - RocksDB Env of RADOS (#1222) 2016-07-21 11:16:34 -07:00
env_librados.cc change UseDirectIO() to use_direct_io() 2017-01-13 12:09:15 -08:00
env_librados.md Add EnvLibrados - RocksDB Env of RADOS (#1222) 2016-07-21 11:16:34 -07:00
env_mirror_test.cc env: add EnvMirror 2015-12-10 21:32:45 -05:00
env_mirror.cc direct io write support 2016-12-22 13:09:19 -08:00
merge_operators.h Introduce FullMergeV2 (eliminate memcpy from merge operators) 2016-07-20 09:49:03 -07:00
object_registry_test.cc Generalize Env registration framework 2017-01-25 16:09:14 -08:00
util_merge_operators_test.cc Introduce FullMergeV2 (eliminate memcpy from merge operators) 2016-07-20 09:49:03 -07:00