// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- // vim: ts=8 sw=2 smarttab #pragma once #include #include #include #if FMT_VERSION >= 90000 #include #endif #include namespace crimson::crush { class CrushLocation { public: explicit CrushLocation() { } seastar::future<> update_from_conf(); ///< refresh from config seastar::future<> init_on_startup(); seastar::future<> update_from_hook(); ///< call hook, if present std::multimap get_location() const; private: void _parse(const std::string& s); std::multimap loc; }; std::ostream& operator<<(std::ostream& os, const CrushLocation& loc); } #if FMT_VERSION >= 90000 template <> struct fmt::formatter : fmt::ostream_formatter {}; #endif