namespace crimson::os {
-seastar::future<std::unique_ptr<FuturizedStore>>
+std::unique_ptr<FuturizedStore>
FuturizedStore::create(const std::string& type,
const std::string& data,
const ConfigValues& values)
{
if (type == "cyanstore") {
- return seastar::make_ready_future<std::unique_ptr<FuturizedStore>>(
- std::make_unique<crimson::os::CyanStore>(data));
+ using crimson::os::CyanStore;
+ return std::make_unique<CyanStore>(data);
} else if (type == "seastore") {
return crimson::os::seastore::make_seastore(
- data, values
- ).then([] (auto seastore) {
- return seastar::make_ready_future<std::unique_ptr<FuturizedStore>>(
- seastore.release());
- });
+ data);
} else {
+ using crimson::os::AlienStore;
#ifdef WITH_BLUESTORE
// use AlienStore as a fallback. It adapts e.g. BlueStore.
- return seastar::make_ready_future<std::unique_ptr<FuturizedStore>>(
- std::make_unique<crimson::os::AlienStore>(type, data, values));
+ return std::make_unique<AlienStore>(type, data, values);
#else
ceph_abort_msgf("unsupported objectstore type: %s", type.c_str());
return {};