#pragma once #include #include #include #include class AckNotifiyMsgEx : public MirroredMessage> { public: typedef ErrorCodeResponseState< AckNotifiyRespMsg, NETMSGTYPE_AckNotify> ResponseState; std::unique_ptr executeLocally(ResponseContext&, bool) override { // do nothing at all. MirroredMessage has taken care of everything return boost::make_unique(FhgfsOpsErr_SUCCESS); } std::tuple<> lock(EntryLockStore&) override { return {}; } bool isMirrored() override { return true; } private: void forwardToSecondary(ResponseContext& ctx) override { sendToSecondary(ctx, *this, NETMSGTYPE_AckNotifyResp); } FhgfsOpsErr processSecondaryResponse(NetMessage& resp) override { return static_cast(resp).getResult(); } const char* mirrorLogContext() const override { return "AckNotifiyMsgEx/forward"; } };