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 + -
显示快捷键?