diff --git a/src/include/CompatSet.h b/src/include/CompatSet.h index 03bf54d5ec4..23381c93386 100644 --- a/src/include/CompatSet.h +++ b/src/include/CompatSet.h @@ -29,19 +29,26 @@ struct CompatSet { Feature(uint64_t _id, const string& _name) : id(_id), name(_name) {} }; - struct FeatureSet { + class FeatureSet { uint64_t mask; map names; + public: + friend struct CompatSet; + friend class CephCompatSet_AllSet_Test; + friend class CephCompatSet_other_Test; + friend class CephCompatSet_merge_Test; + friend ostream& operator<<(ostream& out, const CompatSet::FeatureSet& fs); + friend ostream& operator<<(ostream& out, const CompatSet& compat); FeatureSet() : mask(1), names() {} - void insert(Feature f) { + void insert(const Feature& f) { assert(f.id > 0); assert(f.id < 64); mask |= ((uint64_t)1<second; } + void remove(uint64_t f) { if (names.count(f)) { names.erase(f); mask &= ~((uint64_t)1<