packetidset.cpp
来自「天之炼狱1服务器端源文件游戏服务端不完整」· C++ 代码 · 共 131 行
CPP
131 行
//----------------------------------------------------------------------//// Filename : PacketIDSet.cpp// Written By : Reiot// Description :////----------------------------------------------------------------------// include files#include "PacketIDSet.h"#include "Assert.h"//----------------------------------------------------------------------// constructor//----------------------------------------------------------------------PacketIDSet::PacketIDSet ( PlayerStatus playerStatus , PacketIDSetType packetIDSetType ) throw (): m_PacketIDSetType(packetIDSetType), m_PlayerStatus(playerStatus){}//----------------------------------------------------------------------// destructor//----------------------------------------------------------------------PacketIDSet::~PacketIDSet () throw (){ m_PacketIDSet.clear();}//----------------------------------------------------------------------// add packet id to set//----------------------------------------------------------------------void PacketIDSet::addPacketID ( PacketID_t packetID ) throw ( DuplicatedException ){ __BEGIN_TRY Assert( m_PacketIDSetType != PIST_NONE ); Assert( m_PacketIDSetType != PIST_ANY ); pair<PACKET_ID_SET::iterator,bool> p = m_PacketIDSet.insert( packetID ); // 捞固 鞍篮 虐啊 粮犁茄促绰 家府促. if ( ! p.second ) throw DuplicatedException(); __END_CATCH}//----------------------------------------------------------------------// delete packet id from set//----------------------------------------------------------------------void PacketIDSet::deletePacketID ( PacketID_t packetID ) throw ( NoSuchElementException ){ __BEGIN_TRY PACKET_ID_SET::iterator itr = m_PacketIDSet.find( packetID ); if ( itr != m_PacketIDSet.end() ) throw NoSuchElementException(); m_PacketIDSet.erase(itr); __END_CATCH}//----------------------------------------------------------------------// has packet id ?//----------------------------------------------------------------------bool PacketIDSet::hasPacketID ( PacketID_t packetID ) const throw ( NoSuchElementException , IgnorePacketException ){ __BEGIN_TRY if ( m_PacketIDSetType == PIST_NORMAL ) { // 老馆利牢 版快, 粮犁且 锭俊父 true 甫 府畔茄促. PACKET_ID_SET::const_iterator itr = m_PacketIDSet.find( packetID ); return itr != m_PacketIDSet.end(); } else if ( m_PacketIDSetType == PIST_ANY ) { // 弊 绢恫 菩哦档 倾侩等促. return true; } else if ( m_PacketIDSetType == PIST_IGNORE_EXCEPT ) { // 菩哦捞 粮犁且 版快, true 甫 府畔茄促. // 菩哦捞 粮犁窍瘤 臼栏搁, 公矫秦具 茄促. PACKET_ID_SET::const_iterator itr = m_PacketIDSet.find( packetID ); if ( itr != m_PacketIDSet.end() ) { return true; } else { throw IgnorePacketException(); } } // case of PIST_NONE return false; __END_CATCH}//----------------------------------------------------------------------// get debug string//----------------------------------------------------------------------string PacketIDSet::toString () const throw (){ StringStream msg; msg << "PacketIDSet(" << "PlayerStatus:" << (int)m_PlayerStatus << "PacketID:"; for ( PACKET_ID_SET::const_iterator itr = m_PacketIDSet.begin() ; itr != m_PacketIDSet.end() ; itr ++ ) { msg << (*itr) << " "; } msg << ")"; return msg.toString();}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?