return ec_impl->minimum_to_decode(want, have, &min) == 0;
}
};
- IsPGRecoverablePredicate *get_is_recoverable_predicate() override {
+ IsPGRecoverablePredicate *get_is_recoverable_predicate() const override {
return new ECRecPred(ec_impl);
}
return _have.count(whoami) && rec_pred(_have);
}
};
- IsPGReadablePredicate *get_is_readable_predicate() override {
+ IsPGReadablePredicate *get_is_readable_predicate() const override {
return new ECReadPred(get_parent()->whoami_shard(), ec_impl);
}
bool eio_errors_to_process = false;
virtual PGBackend *get_pgbackend() = 0;
+ virtual const PGBackend* get_pgbackend() const = 0;
protected:
/*** PG ****/
/// get_is_recoverable_predicate: caller owns returned pointer and must delete when done
- IsPGRecoverablePredicate *get_is_recoverable_predicate() {
+ IsPGRecoverablePredicate *get_is_recoverable_predicate() const {
return get_pgbackend()->get_is_recoverable_predicate();
}
protected:
virtual void on_flushed() = 0;
- virtual IsPGRecoverablePredicate *get_is_recoverable_predicate() = 0;
- virtual IsPGReadablePredicate *get_is_readable_predicate() = 0;
+ virtual IsPGRecoverablePredicate *get_is_recoverable_predicate() const = 0;
+ virtual IsPGReadablePredicate *get_is_readable_predicate() const = 0;
virtual void dump_recovery_info(Formatter *f) const = 0;
return pgbackend.get();
}
+ const PGBackend *get_pgbackend() const override {
+ return pgbackend.get();
+ }
+
/// Listener methods
DoutPrefixProvider *get_dpp() override {
return this;
return !have.empty();
}
};
- IsPGRecoverablePredicate *get_is_recoverable_predicate() override {
+ IsPGRecoverablePredicate *get_is_recoverable_predicate() const override {
return new RPCRecPred;
}
return have.count(whoami);
}
};
- IsPGReadablePredicate *get_is_readable_predicate() override {
+ IsPGReadablePredicate *get_is_readable_predicate() const override {
return new RPCReadPred(get_parent()->whoami_shard());
}