#define CEPH_MMONPROBE_H
#include "include/ceph_features.h"
+#include "common/ceph_releases.h"
#include "msg/Message.h"
#include "mon/MonMap.h"
-class MMonProbe : public MessageInstance<MMonProbe> {
+class MMonProbe : public Message {
public:
- friend factory;
-
static constexpr int HEAD_VERSION = 7;
static constexpr int COMPAT_VERSION = 5;
version_t paxos_last_version = 0;
bool has_ever_joined = 0;
uint64_t required_features = 0;
- uint8_t mon_release = 0;
+ ceph_release_t mon_release{ceph_release_t::unknown};
MMonProbe()
- : MessageInstance(MSG_MON_PROBE, HEAD_VERSION, COMPAT_VERSION) {}
- MMonProbe(const uuid_d& f, int o, const string& n, bool hej, uint8_t mr)
- : MessageInstance(MSG_MON_PROBE, HEAD_VERSION, COMPAT_VERSION),
+ : Message{MSG_MON_PROBE, HEAD_VERSION, COMPAT_VERSION} {}
+ MMonProbe(const uuid_d& f, int o, const string& n, bool hej, ceph_release_t mr)
+ : Message{MSG_MON_PROBE, HEAD_VERSION, COMPAT_VERSION},
fsid(f),
op(o),
name(n),
paxos_last_version(0),
has_ever_joined(hej),
required_features(0),
- mon_release(mr) {}
+ mon_release{mr} {}
private:
~MMonProbe() override {}
out << " new";
if (required_features)
out << " required_features " << required_features;
- if (mon_release)
- out << " mon_release " << (int)mon_release;
+ if (mon_release != ceph_release_t::unknown)
+ out << " mon_release " << mon_release;
out << ")";
}
if (header.version >= 7)
decode(mon_release, p);
else
- mon_release = 0;
+ mon_release = ceph_release_t::unknown;
}
+private:
+ template<class T, typename... Args>
+ friend boost::intrusive_ptr<T> ceph::make_message(Args&&... args);
};
#endif