www.pudn.com > fanccMSNr.src.rar > MessageDispatcher.h
#pragma once #include#include
#include "messenger/MessageDispatcher.hpp" #include "messenger/MessageListener.hpp" using namespace poral; /** * MessageDispatcherÀÎÅÍÆäÀ̽º¸¦ CAsyncSocketÀ» ÅëÇØ ±¸ÇöÇÑ ¸Þ½ÃÁö * Àü¼Û Ŭ·¡½º. */ class CMessageDispatcher : public CAsyncSocket, public MessageDispatcher // interface { public: CMessageDispatcher(); virtual ~CMessageDispatcher(); // MessageDispatcher ÀÎÅÍÆäÀ̽º virtual void connect(const string &address, unsigned long port); virtual void close() { Close(); } virtual int listen(int preferredPort); virtual void getAddress(string &address); virtual void sendMessage(Message &message); virtual bool sendBytes(const unsigned char *bytes, size_t length); virtual void addMessageListener(MessageListener &messageListener); virtual void removeMessageListener(MessageListener &messageListener); virtual MessageDispatcher *newInstance(); virtual void OnConnect(int nErrorCode); protected: /** ¸Þ½ÃÁö°¡ Å뺸µÉ ¸®½º³Ê */ list listeners; /** OnReceive¿¡¼ ¸Þ½ÃÁö¸¦ Á¶¸³ÇÏ´Â µ¥ ¾µ buffer */ string buffer; /** ¼¹ö·Î ¼ÒÄÏÀ» ¿ ¶§ ¸®½º´×ÇÒ ¼ÒÄÏ */ CAsyncSocket *serverSocket; public: virtual void OnClose(int nErrorCode); /** * ¼ÒÄÏÀ¸·ÎºÎÅÍ ¹ÙÀÌÆ®°¡ µµÂøÇßÀ» ¶§ È£ÃâµÈ´Ù. * ¹Þ¾Æ³½ ¹ÙÀÌÆ®¸¦ ¸ð¾Æ¼ ¸Þ½ÃÁö¸¦ ±¸¼ºÇϰí MessageListener¸¦ È£ÃâÇÑ´Ù. */ virtual void OnReceive(int nErrorCode); virtual void OnSend(int nErrorCode); };