ObjectStore *ObjectStore::create(CephContext *cct,
const string& type,
const string& data,
const string& journal,
osflagbits_t flags)
{
if (type == "filestore") {
return new FileStore(data, journal, flags);
}
if (type == "memstore") {
return new MemStore(cct, data);
}
if (type == "keyvaluestore" &&
cct->check_experimental_feature_enabled("keyvaluestore")) {
return new KeyValueStore(data);
}
#if defined(HAVE_LIBAIO)
if (type == "newstore" &&
cct->check_experimental_feature_enabled("newstore")) {
return new NewStore(cct, data);
}
#endif
return NULL;
}