rocksdb/options
Mark Rambacher cfcf045acc The ObjectRegistry class replaces the Registrar and NewCustomObjects.… (#5293)
Summary:
The ObjectRegistry class replaces the Registrar and NewCustomObjects.  Objects are registered with the registry by Type (the class must implement the static const char *Type() method).

This change is necessary for a few reasons:
- By having a class (rather than static template instances), the class can be passed between compilation units, meaning that objects could be registered and shared from a dynamic library with an executable.
- By having a class with instances, different units could have different objects registered.  This could be useful if, for example, one Option allowed for a dynamic library and one did not.

When combined with some other PRs (being able to load shared libraries, a Configurable interface to configure objects to/from string), this code will allow objects in external shared libraries to be added to a RocksDB image at run-time, rather than requiring every new extension to be built into the main library and called explicitly by every program.

Test plan (on riversand963's  devserver)
```
$COMPILE_WITH_ASAN=1 make -j32 all && sleep 1 && make check
```
All tests pass.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/5293

Differential Revision: D16363396

Pulled By: riversand963

fbshipit-source-id: fbe4acb615bfc11103eef40a0b288845791c0180
2019-07-23 17:13:05 -07:00
..
cf_options.cc simplify include directive involving inttypes (#5402) 2019-06-06 13:56:07 -07:00
cf_options.h Refresh snapshot list during long compactions (2nd attempt) (#5278) 2019-05-03 17:30:22 -07:00
db_options.cc Added log_readahead_size option to control prefetching for Log::Reader (#5592) 2019-07-19 12:00:19 -07:00
db_options.h Added log_readahead_size option to control prefetching for Log::Reader (#5592) 2019-07-19 12:00:19 -07:00
options.cc Persistent Stats: persist stats history to disk (#5046) 2019-06-17 15:21:50 -07:00
options_helper.cc The ObjectRegistry class replaces the Registrar and NewCustomObjects.… (#5293) 2019-07-23 17:13:05 -07:00
options_helper.h Option string/map/file can set env from object registry (#5237) 2019-04-25 11:35:09 -07:00
options_parser.cc Move some memory related files from util/ to memory/ (#5382) 2019-05-30 17:44:09 -07:00
options_parser.h Organizing rocksdb/table directory by format 2019-05-30 14:51:11 -07:00
options_sanity_check.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
options_sanity_check.h Change RocksDB License 2017-07-15 16:11:23 -07:00
options_settable_test.cc Added log_readahead_size option to control prefetching for Log::Reader (#5592) 2019-07-19 12:00:19 -07:00
options_test.cc The ObjectRegistry class replaces the Registrar and NewCustomObjects.… (#5293) 2019-07-23 17:13:05 -07:00