Commit 65842cd9 authored by Max Kellermann's avatar Max Kellermann

DatabasePlugin: pass config_param reference

parent bf6ed643
...@@ -50,13 +50,13 @@ static bool db_is_open; ...@@ -50,13 +50,13 @@ static bool db_is_open;
static bool is_simple; static bool is_simple;
bool bool
DatabaseGlobalInit(const config_param *param, GError **error_r) DatabaseGlobalInit(const config_param &param, GError **error_r)
{ {
assert(db == NULL); assert(db == NULL);
assert(!db_is_open); assert(!db_is_open);
const char *plugin_name = const char *plugin_name =
config_get_block_string(param, "plugin", "simple"); param.GetBlockValue("plugin", "simple");
is_simple = strcmp(plugin_name, "simple") == 0; is_simple = strcmp(plugin_name, "simple") == 0;
const DatabasePlugin *plugin = GetDatabasePluginByName(plugin_name); const DatabasePlugin *plugin = GetDatabasePluginByName(plugin_name);
......
...@@ -32,7 +32,7 @@ class Database; ...@@ -32,7 +32,7 @@ class Database;
* @param param the database configuration block * @param param the database configuration block
*/ */
bool bool
DatabaseGlobalInit(const config_param *param, GError **error_r); DatabaseGlobalInit(const config_param &param, GError **error_r);
void void
DatabaseGlobalDeinit(void); DatabaseGlobalDeinit(void);
......
...@@ -139,7 +139,7 @@ struct DatabasePlugin { ...@@ -139,7 +139,7 @@ struct DatabasePlugin {
/** /**
* Allocates and configures a database. * Allocates and configures a database.
*/ */
Database *(*create)(const struct config_param *param, Database *(*create)(const config_param &param,
GError **error_r); GError **error_r);
}; };
......
...@@ -193,7 +193,7 @@ glue_db_init_and_load(void) ...@@ -193,7 +193,7 @@ glue_db_init_and_load(void)
param = allocated; param = allocated;
} }
if (!DatabaseGlobalInit(param, &error)) if (!DatabaseGlobalInit(*param, &error))
MPD_ERROR("%s", error->message); MPD_ERROR("%s", error->message);
delete allocated; delete allocated;
......
...@@ -48,7 +48,7 @@ class ProxyDatabase : public Database { ...@@ -48,7 +48,7 @@ class ProxyDatabase : public Database {
Directory *root; Directory *root;
public: public:
static Database *Create(const struct config_param *param, static Database *Create(const config_param &param,
GError **error_r); GError **error_r);
virtual bool Open(GError **error_r) override; virtual bool Open(GError **error_r) override;
...@@ -73,7 +73,7 @@ public: ...@@ -73,7 +73,7 @@ public:
GError **error_r) const override; GError **error_r) const override;
protected: protected:
bool Configure(const struct config_param *param, GError **error_r); bool Configure(const config_param &param, GError **error_r);
}; };
G_GNUC_CONST G_GNUC_CONST
...@@ -132,7 +132,7 @@ CheckError(struct mpd_connection *connection, GError **error_r) ...@@ -132,7 +132,7 @@ CheckError(struct mpd_connection *connection, GError **error_r)
} }
Database * Database *
ProxyDatabase::Create(const struct config_param *param, GError **error_r) ProxyDatabase::Create(const config_param &param, GError **error_r)
{ {
ProxyDatabase *db = new ProxyDatabase(); ProxyDatabase *db = new ProxyDatabase();
if (!db->Configure(param, error_r)) { if (!db->Configure(param, error_r)) {
...@@ -144,10 +144,10 @@ ProxyDatabase::Create(const struct config_param *param, GError **error_r) ...@@ -144,10 +144,10 @@ ProxyDatabase::Create(const struct config_param *param, GError **error_r)
} }
bool bool
ProxyDatabase::Configure(const struct config_param *param, GError **) ProxyDatabase::Configure(const config_param &param, GError **)
{ {
host = config_get_block_string(param, "host", ""); host = param.GetBlockValue("host", "");
port = config_get_block_unsigned(param, "port", 0); port = param.GetBlockValue("port", 0u);
return true; return true;
} }
......
...@@ -41,7 +41,7 @@ simple_db_quark(void) ...@@ -41,7 +41,7 @@ simple_db_quark(void)
} }
Database * Database *
SimpleDatabase::Create(const struct config_param *param, GError **error_r) SimpleDatabase::Create(const config_param &param, GError **error_r)
{ {
SimpleDatabase *db = new SimpleDatabase(); SimpleDatabase *db = new SimpleDatabase();
if (!db->Configure(param, error_r)) { if (!db->Configure(param, error_r)) {
...@@ -53,11 +53,11 @@ SimpleDatabase::Create(const struct config_param *param, GError **error_r) ...@@ -53,11 +53,11 @@ SimpleDatabase::Create(const struct config_param *param, GError **error_r)
} }
bool bool
SimpleDatabase::Configure(const struct config_param *param, GError **error_r) SimpleDatabase::Configure(const config_param &param, GError **error_r)
{ {
GError *error = NULL; GError *error = NULL;
char *_path = config_dup_block_path(param, "path", &error); char *_path = param.DupBlockPath("path", &error);
if (_path == NULL) { if (_path == NULL) {
if (error != NULL) if (error != NULL)
g_propagate_error(error_r, error); g_propagate_error(error_r, error);
......
...@@ -60,7 +60,7 @@ public: ...@@ -60,7 +60,7 @@ public:
return mtime; return mtime;
} }
static Database *Create(const struct config_param *param, static Database *Create(const config_param &param,
GError **error_r); GError **error_r);
virtual bool Open(GError **error_r) override; virtual bool Open(GError **error_r) override;
...@@ -86,7 +86,7 @@ public: ...@@ -86,7 +86,7 @@ public:
GError **error_r) const override; GError **error_r) const override;
protected: protected:
bool Configure(const struct config_param *param, GError **error_r); bool Configure(const config_param &param, GError **error_r);
gcc_pure gcc_pure
bool Check(GError **error_r) const; bool Check(GError **error_r) const;
......
...@@ -113,7 +113,7 @@ main(int argc, char **argv) ...@@ -113,7 +113,7 @@ main(int argc, char **argv)
if (path != nullptr) if (path != nullptr)
param.AddBlockParam("path", path->value, path->line); param.AddBlockParam("path", path->value, path->line);
Database *db = plugin->create(&param, &error); Database *db = plugin->create(param, &error);
if (db == nullptr) { if (db == nullptr) {
cerr << error->message << endl; cerr << error->message << endl;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment