39 lines
793 B
C++
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;
|
|
};
|