Which is symmetric to the add method and used for test.
Signed-off-by: Loic Dachary <loic-201408@dachary.org>
}
}
+int ErasureCodePluginRegistry::remove(const std::string &name)
+{
+ if (plugins.find(name) == plugins.end())
+ return -ENOENT;
+ std::map<std::string,ErasureCodePlugin*>::iterator plugin = plugins.find(name);
+ void *library = plugin->second->library;
+ delete plugin->second;
+ dlclose(library);
+ plugins.erase(plugin);
+ return 0;
+}
+
int ErasureCodePluginRegistry::add(const std::string &name,
ErasureCodePlugin* plugin)
{
ostream &ss);
int add(const std::string &name, ErasureCodePlugin *plugin);
+ int remove(const std::string &name);
ErasureCodePlugin *get(const std::string &name);
int load(const std::string &plugin_name,
EXPECT_TRUE(erasure_code);
ErasureCodePlugin *plugin = 0;
EXPECT_EQ(-EEXIST, instance.load("example", directory, &plugin, ss));
+ EXPECT_EQ(-ENOENT, instance.remove("does not exist"));
+ EXPECT_EQ(0, instance.remove("example"));
+ EXPECT_EQ(0, instance.load("example", directory, &plugin, ss));
}
int main(int argc, char **argv) {