]>
git.proxmox.com Git - ceph.git/blob - ceph/src/messages/MConfig.h
1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab
6 #include "msg/Message.h"
8 class MConfig
: public Message
{
10 static constexpr int HEAD_VERSION
= 1;
11 static constexpr int COMPAT_VERSION
= 1;
13 // use transparent comparator so we can lookup in it by std::string_view keys
14 std::map
<std::string
,std::string
,std::less
<>> config
;
16 MConfig() : Message
{MSG_CONFIG
, HEAD_VERSION
, COMPAT_VERSION
} { }
17 MConfig(const std::map
<std::string
,std::string
,std::less
<>>& c
)
18 : Message
{MSG_CONFIG
, HEAD_VERSION
, COMPAT_VERSION
},
20 MConfig(std::map
<std::string
,std::string
,std::less
<>>&& c
)
21 : Message
{MSG_CONFIG
, HEAD_VERSION
, COMPAT_VERSION
},
22 config
{std::move(c
)} {}
24 std::string_view
get_type_name() const override
{
27 void print(std::ostream
& o
) const override
{
28 o
<< "config(" << config
.size() << " keys" << ")";
31 void decode_payload() override
{
33 auto p
= payload
.cbegin();
37 void encode_payload(uint64_t) override
{
39 encode(config
, payload
);