68 lines
1.5 KiB
C++
68 lines
1.5 KiB
C++
//
|
|
// Created by dongl on 23-4-20.
|
|
//
|
|
|
|
#ifndef IM2_AGREEMENT_H
|
|
#define IM2_AGREEMENT_H
|
|
|
|
|
|
#include <cstdint>
|
|
#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<mp::mph> &mph, std::shared_ptr<mp::request>& request, bufferevent* bev, sockaddr_in* addr);
|
|
void set (std::shared_ptr<mp::mph> &mph, std::shared_ptr<mp::im::msg_data>& data, bufferevent* bev, sockaddr_in* addr);
|
|
|
|
public:
|
|
// 包头
|
|
std::shared_ptr<mp::mph> m_mph;
|
|
// im 包体 data
|
|
std::shared_ptr<mp::im::msg_data> 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<mp::im::notice> m_notice;
|
|
// 返回 响应包体 内容
|
|
mp::sri* m_sri;
|
|
// 维护此链接的描述符号 fd
|
|
bufferevent* m_bev;
|
|
};
|
|
|
|
#endif //IM2_AGREEMENT_H
|