]>
git.proxmox.com Git - ceph.git/blob - ceph/src/messages/MOSDPGLeaseAck.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"
7 #include "osd/osd_types.h"
9 class MOSDPGLeaseAck final
: public MOSDPeeringOp
{
11 static constexpr int HEAD_VERSION
= 1;
12 static constexpr int COMPAT_VERSION
= 1;
16 pg_lease_ack_t lease_ack
;
19 spg_t
get_spg() const {
22 epoch_t
get_map_epoch() const {
25 epoch_t
get_min_epoch() const {
28 PGPeeringEvent
*get_event() override
{
29 return new PGPeeringEvent(
32 MLeaseAck(epoch
, get_source().num(), lease_ack
));
35 MOSDPGLeaseAck() : MOSDPeeringOp
{MSG_OSD_PG_LEASE_ACK
,
36 HEAD_VERSION
, COMPAT_VERSION
} {}
37 MOSDPGLeaseAck(version_t mv
, spg_t p
, pg_lease_ack_t lease_ack
) :
38 MOSDPeeringOp
{MSG_OSD_PG_LEASE_ACK
,
39 HEAD_VERSION
, COMPAT_VERSION
},
42 lease_ack(lease_ack
) { }
44 ~MOSDPGLeaseAck() final
{}
47 std::string_view
get_type_name() const override
{ return "pg_lease_ack"; }
48 void inner_print(std::ostream
& out
) const override
{
52 void encode_payload(uint64_t features
) override
{
54 encode(epoch
, payload
);
55 encode(spgid
, payload
);
56 encode(lease_ack
, payload
);
58 void decode_payload() override
{
60 auto p
= payload
.cbegin();
66 template<class T
, typename
... Args
>
67 friend boost::intrusive_ptr
<T
> ceph::make_message(Args
&&... args
);