Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
virtual ~BlockerT() = default;
private:
const char *get_type_name() const final {
- return T::type_name;
+ return static_cast<const T*>(this)->type_name;
}
};
class ShardServices;
class OSDMapGate {
- struct OSDMapBlocker : public Blocker {
+ struct OSDMapBlocker : public BlockerT<OSDMapBlocker> {
const char * type_name;
epoch_t epoch;
seastar::shared_promise<epoch_t> promise;
void dump_detail(Formatter *f) const final;
- private:
- const char *get_type_name() const final {
- return type_name;
- }
};
// order the promises in ascending order of the waited osdmap epoch,