]>
Commit | Line | Data |
---|---|---|
224ce89b WB |
1 | // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- |
2 | // vim: ts=8 sw=2 smarttab | |
3 | ||
4 | #pragma once | |
5 | ||
6 | #include "msg/Message.h" | |
7 | #include "mgr/ServiceMap.h" | |
8 | ||
f67539c2 | 9 | class MServiceMap final : public Message { |
224ce89b WB |
10 | public: |
11 | ServiceMap service_map; | |
12 | ||
9f95a23c | 13 | MServiceMap() : Message{MSG_SERVICE_MAP} { } |
224ce89b | 14 | explicit MServiceMap(const ServiceMap& sm) |
9f95a23c | 15 | : Message{MSG_SERVICE_MAP}, |
224ce89b WB |
16 | service_map(sm) { |
17 | } | |
18 | private: | |
f67539c2 | 19 | ~MServiceMap() final {} |
224ce89b WB |
20 | |
21 | public: | |
11fdf7f2 | 22 | std::string_view get_type_name() const override { return "service_map"; } |
f67539c2 | 23 | void print(std::ostream& out) const override { |
224ce89b WB |
24 | out << "service_map(e" << service_map.epoch << " " |
25 | << service_map.services.size() << " svc)"; | |
26 | } | |
27 | void encode_payload(uint64_t features) override { | |
11fdf7f2 TL |
28 | using ceph::encode; |
29 | encode(service_map, payload, features); | |
224ce89b WB |
30 | } |
31 | void decode_payload() override { | |
f67539c2 | 32 | using ceph::decode; |
11fdf7f2 TL |
33 | auto p = payload.cbegin(); |
34 | decode(service_map, p); | |
224ce89b | 35 | } |
9f95a23c TL |
36 | private: |
37 | template<class T, typename... Args> | |
38 | friend boost::intrusive_ptr<T> ceph::make_message(Args&&... args); | |
224ce89b | 39 | }; |