// // Created by dongl on 23-4-21. // #ifndef IM2_ANALYSIS_H #define IM2_ANALYSIS_H #include #include "proto/mp.request.pb.h" #include "agreement.h" class analysis { public: analysis(std::shared_ptr& mph, std::shared_ptr& request) : m_mph(mph), m_request(request) { } analysis(std::shared_ptr& mph, std::shared_ptr& data) : m_mph(mph), m_data(data) { } std::shared_ptr operator () (bufferevent* bev, sockaddr_in* addr) { // agreement_request auto agreementRequest = std::make_shared(agreement_request()); // 判断是im数据包 还是 操作逻辑包 if (m_mph->mp_type() <= 200) { agreementRequest->set(m_mph, m_request, bev, addr); } else { agreementRequest->set(m_mph, m_data, bev, addr); } return agreementRequest; } private: std::shared_ptr m_mph; std::shared_ptr m_request; std::shared_ptr m_data; }; #endif //IM2_ANALYSIS_H