/** @file Acceptor.h @brief
*	Copyright (c) 2007,第九城市游戏研发中心
*	All rights reserved.
*
*	当前版本:
*	作    者:zhangsongwei
*	完成日期:2007-10-10
*
*	取代版本:
*	作    者:
*	完成日期:
*/ #ifndef ACCEPTOR_H #define ACCEPTOR_H #include "./BufQueue/BufQueue.h" #include "./BufQueue/BufQueueImp.h" /** * @class CAcceptor * * @brief 抽象地接受器工厂类 */ template class CAcceptor : public ACE_Acceptor { private: CAcceptor( const CAcceptor& map); CAcceptor& operator = ( const CAcceptor& map ); //屏蔽这两个操作; public: /// typedef ACE_Acceptor parent; /// 缺省构造 CAcceptor(void); /// 构造 CAcceptor(IBufQueue *pReadQueue, IBufQueue *pSendQueue,unsigned int uiPeerBufferSize); /// 析构 virtual ~CAcceptor(void); public: /// 初始化 virtual int open (const ACE_PEER_ACCEPTOR_ADDR &local_addr, ACE_Reactor *reactor, int flags = 0, int use_select = 1, int reuse_addr = 1); /// 重写handler的获取规则 virtual int make_svc_handler(SVC_HANDLER *&sh); /// 获取/设置队列 /// 获取已读队列 IBufQueue * ReadQueue(void); /// 设置已读队列 void ReadQueue(IBufQueue *pReadQueue); /// 获取待发队列 IBufQueue * SendQueue(void); /// 设置待发队列 void SendQueue(IBufQueue *pSendQueue); private: /// 已读消息队列 IBufQueue *m_pReadQueue; /// 待发消息队列 IBufQueue *m_pSendQueue; /// 连接端发送缓存 unsigned int m_uiPeerBufferSize; }; #if defined(ACE_TEMPLATES_REQUIRE_SOURCE) #include "Acceptor.cpp" #endif #if defined(ACE_TEMPLATES_REQUIRE_PRAGMA) #pragma implementation("Acceptor.cpp") #endif #endif/*ACCEPTOR_H*/