// // Created by dongl on 23-4-20. // #ifndef IM2_AGREEMENT_H #define IM2_AGREEMENT_H #include #include "Body.h" #include "proto/mp.mph.pb.h" #include "proto/mp.cqi.pb.h" #include "proto/mp.sri.pb.h" #include "proto/mp.response.pb.h" #include "proto/mp.request.pb.h" #include "event2/bufferevent.h" #include "proto/mp.im.pb.h" class agreement { public: agreement(){} virtual ~agreement() {} }; class agreement_request : public agreement{ public: agreement_request(); ~agreement_request(); public: void set (std::shared_ptr &mph, std::shared_ptr& request, bufferevent* bev, sockaddr_in* addr); void set (std::shared_ptr &mph, std::shared_ptr& data, bufferevent* bev, sockaddr_in* addr); public: // 包头 std::shared_ptr m_mph; // im 包体 data std::shared_ptr m_data; // *********** 逻辑包体 mp::body m_body; mp::cqi m_cqi; // *********** 逻辑包体 end // 维护此链接的描述符号 fd bufferevent* m_bev; // 请求来源地址 sockaddr_in* m_addr; }; class agreement_response : public agreement { public: agreement_response(); ~agreement_response() override; public: void set (mp::sri* sri, bufferevent* bev); public: // im 包体 推送包 std::shared_ptr m_notice; // 返回 响应包体 内容 mp::sri* m_sri; // 维护此链接的描述符号 fd bufferevent* m_bev; }; #endif //IM2_AGREEMENT_H