IM/MS/mmm/handler.h

35 lines
955 B
C++

//
// Created by dongl on 23-4-20.
//
#ifndef IM2_HANDLER_H
#define IM2_HANDLER_H
#include <optional>
#include "agreement.h"
#include "session.h"
class handler {
public:
virtual void run(std::shared_ptr<agreement_request> request, std::shared_ptr<agreement_response> response) = 0;
// 通话操作
public:
static void resp(const std::shared_ptr<agreement_request>& request, const std::shared_ptr<agreement_response>& response);
static void send(const std::shared_ptr<agreement_request>& request, const std::shared_ptr<agreement_response>& response);
static void ccp2p(const std::shared_ptr<agreement_request>& request, const std::shared_ptr<agreement_response>& response);
public:
static void remove_user(bufferevent* bev);
static std::optional<std::string> get_session(bufferevent* bev, const std::string &session_key);
protected:
static class session* session;
bufferevent* m_bev;
};
#endif //IM2_HANDLER_H