relation/server/guildserver/IMListener.h
2020-09-18 15:00:33 +08:00

39 lines
793 B
C++

#pragma once
#include "framework/cpp/netmsghandler.h"
//imserver listener
namespace a8
{
class TcpListener;
}
class IMListener : public a8::Singleton<IMListener>
{
private:
IMListener() {};
friend class a8::Singleton<IMListener>;
public:
void Init();
void UnInit();
template <typename T>
void SendMsg(int sockhandle, T& msg)
{
static int msgid = f8::Net_GetMessageId(msg);
f8::Net_SendMsg(tcp_listener_, sockhandle, 0, msgid, msg);
#ifdef DEBUG
f8::DumpMsgToLog(msg, "<<<<<<<IML ");
#endif
}
void SendText(int sockhandle, const std::string& text);
void ForceCloseClient(int sockhandle);
void MarkClient(int sockhandle, bool is_active);
private:
a8::TcpListener *tcp_listener_ = nullptr;
};