return p - 1;
}
-bool pg_t::is_merge(unsigned old_pg_num, unsigned new_pg_num,
- pg_t *parent) const
+bool pg_t::is_merge_source(
+ unsigned old_pg_num,
+ unsigned new_pg_num,
+ pg_t *parent) const
{
if (m_seed < old_pg_num &&
m_seed >= new_pg_num) {
old_size != new_size ||
pgid.is_split(old_pg_num, new_pg_num, 0) ||
// pre-merge source
- pgid.is_merge(old_pg_num_pending, new_pg_num_pending, 0) ||
+ pgid.is_merge_source(old_pg_num_pending, new_pg_num_pending, 0) ||
// merge source
- pgid.is_merge(old_pg_num, new_pg_num, 0) ||
+ pgid.is_merge_source(old_pg_num, new_pg_num, 0) ||
// pre-merge target
(pgid.ps() < new_pg_num_pending &&
pgid.is_split(new_pg_num_pending, old_pg_num_pending, 0)) ||
bool is_split(unsigned old_pg_num, unsigned new_pg_num, set<pg_t> *pchildren) const;
- bool is_merge(unsigned old_pg_num, unsigned new_pg_num, pg_t *parent) const;
+ bool is_merge_source(unsigned old_pg_num, unsigned new_pg_num, pg_t *parent) const;
/**
* Returns b such that for all object o:
}
return is_split;
}
- bool is_merge(unsigned old_pg_num, unsigned new_pg_num, spg_t *parent) const {
+ bool is_merge_source(unsigned old_pg_num, unsigned new_pg_num,
+ spg_t *parent) const {
spg_t out = *this;
- bool r = pgid.is_merge(old_pg_num, new_pg_num, &out.pgid);
+ bool r = pgid.is_merge_source(old_pg_num, new_pg_num, &out.pgid);
if (r && parent) {
*parent = out;
}
bool b;
pgid = pg_t(7, 0);
- b = pgid.is_merge(8, 7, &parent);
+ b = pgid.is_merge_source(8, 7, &parent);
ASSERT_TRUE(b);
ASSERT_EQ(parent, pg_t(3, 0));
- b = pgid.is_merge(8, 5, &parent);
+ b = pgid.is_merge_source(8, 5, &parent);
ASSERT_TRUE(b);
ASSERT_EQ(parent, pg_t(3, 0));
- b = pgid.is_merge(8, 4, &parent);
+ b = pgid.is_merge_source(8, 4, &parent);
ASSERT_TRUE(b);
ASSERT_EQ(parent, pg_t(3, 0));
- b = pgid.is_merge(8, 3, &parent);
+ b = pgid.is_merge_source(8, 3, &parent);
ASSERT_TRUE(b);
ASSERT_EQ(parent, pg_t(1, 0));
- b = pgid.is_merge(9, 8, &parent);
+ b = pgid.is_merge_source(9, 8, &parent);
ASSERT_FALSE(b);
}