#define CEPH_INCLUDE_CEPHFS_METRICS_TYPES_H
#include <string>
-#include <boost/variant.hpp>
+#include <variant>
#include "common/Formatter.h"
#include "include/buffer_fwd.h"
}
};
-typedef boost::variant<CapInfoPayload,
- ReadLatencyPayload,
- WriteLatencyPayload,
- MetadataLatencyPayload,
- DentryLeasePayload,
- OpenedFilesPayload,
- PinnedIcapsPayload,
- OpenedInodesPayload,
- ReadIoSizesPayload,
- WriteIoSizesPayload,
- UnknownPayload> ClientMetricPayload;
+typedef std::variant<CapInfoPayload,
+ ReadLatencyPayload,
+ WriteLatencyPayload,
+ MetadataLatencyPayload,
+ DentryLeasePayload,
+ OpenedFilesPayload,
+ PinnedIcapsPayload,
+ OpenedInodesPayload,
+ ReadIoSizesPayload,
+ WriteIoSizesPayload,
+ UnknownPayload> ClientMetricPayload;
// metric update message sent by clients
struct ClientMetricMessage {
: payload(payload) {
}
- class EncodePayloadVisitor : public boost::static_visitor<void> {
+ class EncodePayloadVisitor {
public:
explicit EncodePayloadVisitor(bufferlist &bl) : m_bl(bl) {
}
bufferlist &m_bl;
};
- class DecodePayloadVisitor : public boost::static_visitor<void> {
+ class DecodePayloadVisitor {
public:
DecodePayloadVisitor(bufferlist::const_iterator &iter) : m_iter(iter) {
}
bufferlist::const_iterator &m_iter;
};
- class DumpPayloadVisitor : public boost::static_visitor<void> {
+ class DumpPayloadVisitor {
public:
explicit DumpPayloadVisitor(Formatter *formatter) : m_formatter(formatter) {
}
Formatter *m_formatter;
};
- class PrintPayloadVisitor : public boost::static_visitor<void> {
+ class PrintPayloadVisitor {
public:
explicit PrintPayloadVisitor(std::ostream *out) : _out(out) {
}
};
void encode(bufferlist &bl) const {
- boost::apply_visitor(EncodePayloadVisitor(bl), payload);
+ std::visit(EncodePayloadVisitor(bl), payload);
}
void decode(bufferlist::const_iterator &iter) {
break;
}
- boost::apply_visitor(DecodePayloadVisitor(iter), payload);
+ std::visit(DecodePayloadVisitor(iter), payload);
}
void dump(Formatter *f) const {
- apply_visitor(DumpPayloadVisitor(f), payload);
+ std::visit(DumpPayloadVisitor(f), payload);
}
static void generate_test_instances(std::list<ClientMetricMessage*>& ls) {
}
void print(std::ostream *out) const {
- apply_visitor(PrintPayloadVisitor(out), payload);
+ std::visit(PrintPayloadVisitor(out), payload);
}
ClientMetricPayload payload;
namespace {
-struct AttributeDumpVisitor : public boost::static_visitor<void> {
+struct AttributeDumpVisitor {
ceph::Formatter *f;
std::string name;
f.dump_string("name", filesystem.fs_name);
for (auto &[attr_name, attr_value] : filesystem.fs_attributes) {
AttributeDumpVisitor visitor(&f, attr_name);
- boost::apply_visitor(visitor, attr_value);
+ std::visit(visitor, attr_value);
}
f.open_object_section("peers");
for (auto &[peer, attributes] : filesystem.peer_attributes) {
f.open_object_section("stats");
for (auto &[attr_name, attr_value] : attributes) {
AttributeDumpVisitor visitor(&f, attr_name);
- boost::apply_visitor(visitor, attr_value);
+ std::visit(visitor, attr_value);
}
f.close_section(); // stats
f.close_section(); // peer.uuid
#include <set>
#include <iostream>
#include <string_view>
+#include <variant>
#include "include/rados/librados.hpp"
#include "include/cephfs/libcephfs.h"
#include "mds/mdstypes.h"
-#include <boost/variant/variant.hpp>
-
namespace cephfs {
namespace mirror {
static const std::string CEPHFS_MIRROR_OBJECT("cephfs_mirror");
-typedef boost::variant<bool, uint64_t, std::string> AttributeValue;
+typedef std::variant<bool, uint64_t, std::string> AttributeValue;
typedef std::map<std::string, AttributeValue> Attributes;
// distinct filesystem identifier