virtual bool have_missing() const = 0;
virtual bool is_missing(const hobject_t& oid, pg_missing_item *out = nullptr) const = 0;
virtual bool is_missing(const hobject_t& oid, eversion_t v) const = 0;
- virtual eversion_t have_old(const hobject_t& oid) const = 0;
virtual ~pg_missing_const_i() {}
};
return false;
return true;
}
- eversion_t have_old(const hobject_t& oid) const override {
- map<hobject_t, item>::const_iterator m =
- missing.find(oid);
- if (m == missing.end())
- return eversion_t();
- const item &item(m->second);
- return item.have;
- }
void claim(pg_missing_set& o) {
static_assert(!TrackChanges, "Can't use claim with TrackChanges");
}
}
-TEST(pg_missing_t, have_old)
-{
- hobject_t oid(object_t("objname"), "key", 123, 456, 0, "");
- pg_missing_t missing;
- EXPECT_EQ(eversion_t(), missing.have_old(oid));
- missing.add(oid, eversion_t(), eversion_t(), false);
- EXPECT_EQ(eversion_t(), missing.have_old(oid));
- eversion_t have(1,1);
- missing.revise_have(oid, have);
- EXPECT_EQ(have, missing.have_old(oid));
-}
-
TEST(pg_missing_t, add_next_event)
{
hobject_t oid(object_t("objname"), "key", 123, 456, 0, "");