*/
int rados_conf_read_file(rados_t cluster, const char *path);
+/* Parse argv */
+void rados_conf_parse_argv(rados_t cluster, int argc, const char **argv);
+
/* Sets a configuration value from a string.
* Returns 0 on success, error code otherwise. */
int rados_conf_set(rados_t cluster, const char *option, const char *value);
int connect();
void shutdown();
int conf_read_file(const char * const path) const;
+ void conf_parse_argv(int argc, const char ** argv) const;
int conf_set(const char *option, const char *value);
int conf_get(const char *option, std::string &val);
return rados_conf_read_file((rados_t)client, path);
}
+void librados::Rados::
+conf_parse_argv(int argc, const char ** argv) const
+{
+ rados_conf_parse_argv((rados_t)client, argc, argv);
+}
+
int librados::Rados::
conf_set(const char *option, const char *value)
{
return 0;
}
+extern "C" void rados_conf_parse_argv(rados_t cluster, int argc, const char **argv)
+{
+ librados::RadosClient *client = (librados::RadosClient *)cluster;
+ md_config_t *conf = client->cct->_conf;
+ vector<const char*> args;
+ argv_to_vec(argc, argv, args);
+ conf->parse_argv(args);
+ conf->apply_changes();
+}
+
extern "C" int rados_conf_set(rados_t cluster, const char *option, const char *value)
{
librados::RadosClient *client = (librados::RadosClient *)cluster;
{
rados_t cl;
RETURN_IF_NONZERO(rados_create(&cl, NULL));
+ rados_conf_parse_argv(cl, m_argc, m_argv);
RETURN_IF_NONZERO(rados_conf_read_file(cl, NULL));
RETURN_IF_NONZERO(rados_connect(cl));
int ret = rados_pool_delete(cl, "foo");
{
rados_t cl;
RETURN_IF_NONZERO(rados_create(&cl, NULL));
+ rados_conf_parse_argv(cl, m_argc, m_argv);
RETURN_IF_NONZERO(rados_conf_read_file(cl, NULL));
RETURN_IF_NONZERO(rados_connect(cl));
pool_setup_sem->wait();
int ret;
rados_t cl;
RETURN_IF_NONZERO(rados_create(&cl, NULL));
+ rados_conf_parse_argv(cl, m_argc, m_argv);
RETURN_IF_NONZERO(rados_conf_read_file(cl, NULL));
RETURN_IF_NONZERO(rados_connect(cl));
pool_setup_sem->wait();