diff options
author | Max Kellermann <max@duempel.org> | 2012-08-07 20:07:17 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2012-08-07 20:07:17 +0200 |
commit | bb75e3ea553f2d577548430e2e99423ee74850ca (patch) | |
tree | 62afc520b22aa60432eee23bcb8723d7550dde8f | |
parent | 814eebf97624926ee714c267c7353bc59dcae292 (diff) | |
download | mpd-bb75e3ea553f2d577548430e2e99423ee74850ca.tar.gz mpd-bb75e3ea553f2d577548430e2e99423ee74850ca.tar.xz mpd-bb75e3ea553f2d577548430e2e99423ee74850ca.zip |
DatabaseRegistry: list of plugins
Diffstat (limited to '')
-rw-r--r-- | Makefile.am | 1 | ||||
-rw-r--r-- | src/DatabaseRegistry.cxx | 38 | ||||
-rw-r--r-- | src/DatabaseRegistry.hxx | 37 |
3 files changed, 76 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am index e571520cd..6322e2f52 100644 --- a/Makefile.am +++ b/Makefile.am @@ -433,6 +433,7 @@ endif # database plugins libdb_plugins_a_SOURCES = \ + src/DatabaseRegistry.cxx src/DatabaseRegistry.hxx \ src/db/SimpleDatabasePlugin.cxx src/db/SimpleDatabasePlugin.hxx DB_LIBS = \ diff --git a/src/DatabaseRegistry.cxx b/src/DatabaseRegistry.cxx new file mode 100644 index 000000000..c9189f733 --- /dev/null +++ b/src/DatabaseRegistry.cxx @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2003-2012 The Music Player Daemon Project + * http://www.musicpd.org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include "DatabaseRegistry.hxx" +#include "db/SimpleDatabasePlugin.hxx" + +#include <string.h> + +const DatabasePlugin *const database_plugins[] = { + &simple_db_plugin, + NULL +}; + +const DatabasePlugin * +GetDatabasePluginByName(const char *name) +{ + for (auto i = database_plugins; *i != nullptr; ++i) + if (strcmp((*i)->name, name) == 0) + return *i; + + return nullptr; +} diff --git a/src/DatabaseRegistry.hxx b/src/DatabaseRegistry.hxx new file mode 100644 index 000000000..4be581573 --- /dev/null +++ b/src/DatabaseRegistry.hxx @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2003-2012 The Music Player Daemon Project + * http://www.musicpd.org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef MPD_DATABASE_REGISTRY_HXX +#define MPD_DATABASE_REGISTRY_HXX + +#include "gcc.h" + +struct DatabasePlugin; + +/** + * NULL terminated list of all database plugins which were enabled at + * compile time. + */ +extern const DatabasePlugin *const database_plugins[]; + +gcc_pure +const DatabasePlugin * +GetDatabasePluginByName(const char *name); + +#endif |