DatabasePlugin: add FLAG_REQUIRE_STORAGE

Ignore the storage configuration if FLAG_REQUIRE_STORAGE is not set in
the DatabasePlugin.
This commit is contained in:
Max Kellermann
2014-02-17 20:57:56 +01:00
parent 9e36af7916
commit 150443b014
6 changed files with 43 additions and 11 deletions

View File

@@ -33,6 +33,12 @@ class DatabaseListener;
class Database;
struct DatabasePlugin {
/**
* This plugin requires a #Storage instance. It contains only
* cached metadata from files in the #Storage.
*/
static constexpr unsigned FLAG_REQUIRE_STORAGE = 0x1;
const char *name;
unsigned flags;
@@ -43,6 +49,10 @@ struct DatabasePlugin {
Database *(*create)(EventLoop &loop, DatabaseListener &listener,
const config_param &param,
Error &error);
constexpr bool RequireStorage() const {
return flags & FLAG_REQUIRE_STORAGE;
}
};
#endif

View File

@@ -780,6 +780,6 @@ ProxyDatabase::GetStats(const DatabaseSelection &selection,
const DatabasePlugin proxy_db_plugin = {
"proxy",
0,
DatabasePlugin::FLAG_REQUIRE_STORAGE,
ProxyDatabase::Create,
};

View File

@@ -337,6 +337,6 @@ SimpleDatabase::Save(Error &error)
const DatabasePlugin simple_db_plugin = {
"simple",
0,
DatabasePlugin::FLAG_REQUIRE_STORAGE,
SimpleDatabase::Create,
};