13 #include "../../clib/rawtypes.h" 14 #include "../../clib/spinlock.h" 15 #include "../pktboth.h" 16 #include "../pktbothid.h" 24 using namespace PktHelper;
25 using namespace PacketWriterDefs;
128 for (
auto& pkts : packets )
137 PacketQueueMap::iterator itr = packets.find(
id );
138 if ( itr != packets.end() )
139 return itr->second->GetNext(
id, sub );
140 throw std::runtime_error(
"Request of undefined Packet: " +
Clib::hexint(
id ) +
"-" +
146 PacketQueueMap::iterator itr = packets.find( pkt->
getID() );
147 if ( itr != packets.end() )
148 itr->second->Add( pkt );
156 for (
const auto& pkts : packets )
158 size +=
sizeof( pkts.first ) + (
sizeof(
void* ) * 3 + 1 ) / 2;
159 size += pkts.second->estimateSize();
219 while ( !pkts.second.empty() )
236 PacketInterfaceQueueMap::iterator itr =
_packets.find( sub );
239 if ( !itr->second.empty() )
241 pkt = itr->second.front();
258 PacketInterfaceQueueMap::iterator itr =
_packets.find( sub );
264 itr->second.push( pkt );
281 count += pkts.second.size();
292 size +=
sizeof( pkts.first ) + (
sizeof(
void* ) * 3 + 1 ) / 2;
293 if ( pkts.second.size() )
294 size += pkts.second.front()->estimateSize() * pkts.second.size();
304 using namespace Core;
475 throw std::runtime_error(
"Request of undefined Packet: " +
Clib::hexint(
id ) +
"-" +
508 throw std::runtime_error(
"Request of undefined Packet: " +
Clib::hexint(
id ) +
"-" +
PacketWriterDefs::PacketTemplateSub< Core::PKTBI_BF_ID, 3, Core::PKTBI_BF::TYPE_CLOSE_GUMP, 5+8 > PktOut_BF_Sub4
PacketWriterDefs::PacketTemplateSub< Core::PKTBI_BF_ID, 3, Core::PKTBI_BF::TYPE_EXTENDED_STATS_OUT, 5+7 > PktOut_BF_Sub19
virtual ~PacketQueueSubs()
std::queue< PacketInterface * > PacketInterfaceQueue
PacketWriterDefs::PacketTemplateSub< Core::PKTBI_BF_ID, 3, Core::PKTBI_BF::TYPE_ACTIVATE_CUSTOM_HOUSE_TOOL, 5+12 > PktOut_BF_Sub20
PacketWriterDefs::PacketTemplate< Core::PKTOUT_82_ID, 2 > PktOut_82
PacketWriterDefs::PacketTemplate< Core::PKTOUT_1B_ID, 37 > PktOut_1B
PacketWriterDefs::PacketTemplate< Core::PKTOUT_A5_ID, URL_MAX_LEN+4 > PktOut_A5
PacketWriterDefs::PacketTemplate< Core::PKTOUT_74_ID, 0xFFFF > PktOut_74
PacketWriterDefs::PacketTemplate< Core::PKTOUT_55_ID, 1 > PktOut_55
PacketWriterDefs::PacketTemplate< Core::PKTBI_56_ID, 11 > PktOut_56
PacketWriterDefs::PacketTemplate< Core::PKTOUT_11_ID, 121 > PktOut_11
PacketWriterDefs::PacketTemplate< Core::PKTOUT_1A_ID, 20 > PktOut_1A
PacketWriterDefs::PacketTemplate< Core::PKTOUT_E2_ID, 10 > PktOut_E2
PacketWriterDefs::PacketTemplate< Core::PKTOUT_1C_ID, 44+SPEECH_MAX_LEN+1 > PktOut_1C
PacketWriterDefs::PacketTemplate< Core::PKTOUT_AB_ID, 531 > PktOut_AB
PacketWriterDefs::PacketTemplate< Core::PKTBI_93_ID, 99 > PktOut_93
PacketWriterDefs::PacketTemplate< Core::PKTOUT_AF_ID, 13 > PktOut_AF
PacketWriterDefs::PacketTemplate< Core::PKTBI_99_ID, 30 > PktOut_99
PacketWriterDefs::PacketTemplate< Core::PKTOUT_A2_ID, 9 > PktOut_A2
PacketWriterDefs::PacketTemplate< Core::PKTOUT_21_ID, 8 > PktOut_21
virtual PacketInterface * GetNext(u8 id, u16 sub=0) POL_OVERRIDE
#define MAX_PACKETS_INSTANCES
PacketWriterDefs::PacketTemplate< Core::PKTOUT_E3_ID, 77 > PktOut_E3
PacketWriterDefs::PacketTemplate< Core::PKTOUT_BC_ID, 3 > PktOut_BC
PacketWriterDefs::PacketTemplate< Core::PKTBI_B8_OUT_ID, 7+5 *(SPEECH_MAX_LEN+1)> PktOut_B8
PacketWriterDefs::PacketTemplateSub< Core::PKTBI_BF_ID, 3, Core::PKTBI_BF::TYPE_CHARACTER_RACE_CHANGER, 5+2 > PktOut_BF_Sub2A
PacketWriterDefs::PacketTemplate< Core::PKTBI_98_OUT_ID, 37 > PktOut_98
PacketWriterDefs::PacketTemplate< Core::PKTBI_66_ID, 0xFFFF > PktOut_66
PacketInterface * getPacket(u8 id, u16 sub=0)
virtual size_t estimateSize() const POL_OVERRIDE
PacketWriterDefs::PacketTemplateSub< Core::PKTBI_BF_ID, 3, Core::PKTBI_BF::TYPE_CURSOR_HUE, 5+1 > PktOut_BF_Sub8
PacketWriterDefs::PacketTemplate< Core::PKTBI_3B_ID, 8 > PktOut_3B
PacketWriterDefs::PacketTemplate< Core::PKTOUT_1D_ID, 5 > PktOut_1D
PacketWriterDefs::PacketTemplate< Core::PKTBI_2C_ID, 2 > PktOut_2C
PacketWriterDefs::PacketTemplate< Core::PKTOUT_DF_ID, 0xFFFF > PktOut_DF
PacketWriterDefs::PacketTemplate< Core::PKTOUT_DD_ID, 0xFFFF > PktOut_DD
PacketWriterDefs::PacketTemplate< Core::PKTOUT_6D_ID, 3 > PktOut_6D
PacketWriterDefs::PacketTemplate< Core::PKTOUT_29_ID, 1 > PktOut_29
virtual size_t estimateSize() const POL_OVERRIDE
virtual void Add(PacketInterface *pkt) POL_OVERRIDE
PacketWriterDefs::PacketTemplate< Core::PKTOUT_78_ID, 19+(9 *Core::HIGHEST_LAYER)+4 > PktOut_78
PacketWriterDefs::PacketTemplate< Core::PKTBI_D6_OUT_ID, 0xFFFF > PktOut_D6
virtual void Add(PacketInterface *pkt) POL_OVERRIDE
PacketWriterDefs::PacketTemplateSub< Core::PKTBI_BF_ID, 3, Core::PKTBI_BF::TYPE_CLOSE_WINDOW, 5+8 > PktOut_BF_Sub16
PacketWriterDefs::PacketTemplate< Core::PKTOUT_BA_ID, 10 > PktOut_BA
PacketWriterDefs::PacketTemplate< Core::PKTOUT_A9_ID, 10000 > PktOut_A9
std::string hexint(unsigned short v)
PacketWriterDefs::PacketTemplate< Core::PKTOUT_89_ID, 7+(5 *(Core::NUM_LAYERS+1))+1 > PktOut_89
PacketWriterDefs::PacketTemplateSub< Core::PKTBI_BF_ID, 3, Core::PKTBI_BF::TYPE_OBJECT_CACHE, 5+8 > PktOut_BF_Sub10
PacketWriterDefs::PacketTemplate< Core::PKTBI_6C_ID, 19 > PktOut_6C
PacketWriterDefs::PacketTemplate< Core::PKTOUT_88_ID, 66 > PktOut_88
PacketWriterDefs::PacketTemplate< Core::PKTOUT_AA_ID, 5 > PktOut_AA
PacketWriterDefs::PacketTemplate< Core::PKTOUT_8C_ID, 11 > PktOut_8C
PacketWriterDefs::PacketTemplate< Core::PKTOUT_2E_ID, 15 > PktOut_2E
PacketWriterDefs::PacketTemplate< Core::PKTOUT_2D_ID, 17 > PktOut_2D
virtual size_t Count() const POL_OVERRIDE
PacketWriterDefs::PacketTemplate< Core::PKTOUT_25_ID, 21 > PktOut_25
PacketWriterDefs::PacketTemplate< Core::PKTOUT_77_ID, 17 > PktOut_77
PacketWriterDefs::PacketTemplate< Core::PKTOUT_9E_ID, 0xFFFF > PktOut_9E
PacketWriterDefs::PacketTemplate< Core::PKTBI_C2_ID, 21 > PktOut_C2
std::pair< u16, PacketInterfaceQueue > PacketInterfaceQueuePair
PacketWriterDefs::PacketTemplate< Core::PKTBI_3A_ID, 6+100 *9 > PktOut_3A
virtual u16 getSubID() const
PacketWriterDefs::PacketTemplate< Core::PKTBI_72_ID, 5 > PktOut_72
PacketWriterDefs::PacketTemplate< Core::PKTOUT_53_ID, 2 > PktOut_53
PacketWriterDefs::PacketTemplate< Core::PKTOUT_2F_ID, 10 > PktOut_2F
PacketWriterDefs::PacketTemplate< Core::PKTOUT_F6_ID, 0xFFFF > PktOut_F6
PacketWriterDefs::PacketTemplate< Core::PKTOUT_B0_ID, 0xFFFF > PktOut_B0
PacketWriterDefs::PacketTemplate< Core::PKTOUT_C1_ID, 48+(SPEECH_MAX_LEN+1)+2 > PktOut_C1
PacketWriterDefs::PacketTemplate< Core::PKTOUT_6E_ID, 14 > PktOut_6E
PacketWriterDefs::PacketTemplate< Core::PKTOUT_70_ID, 28 > PktOut_70
PacketWriterDefs::PacketTemplate< Core::PKTOUT_AE_ID,(SPEECH_MAX_LEN+1)*2+48 > PktOut_AE
PacketWriterDefs::PacketTemplate< Core::PKTOUT_3C_ID, 5+MAX_CONTAINER_ITEMS *20 > PktOut_3C
PacketWriterDefs::EmptyBufferTemplate< ENCRYPTEDPKTBUFFER, 0xFFFF > EncryptedPktBuffer
PacketInterfaceQueueMap _packets
PacketWriterDefs::PacketTemplate< Core::PKTOUT_C7_ID, 49 > PktOut_C7
PacketWriterDefs::PacketTemplate< Core::PKTBI_95_ID, 9 > PktOut_95
size_t estimateSize() const
PacketWriterDefs::PacketTemplate< Core::PKTOUT_20_ID, 19 > PktOut_20
PacketWriterDefs::PacketTemplate< Core::PKTOUT_F3_ID, 26 > PktOut_F3
PacketWriterDefs::PacketTemplateSub< Core::PKTBI_BF_ID, 3, Core::PKTBI_BF::TYPE_DAMAGE, 5+6 > PktOut_BF_Sub22
PacketWriterDefs::PacketTemplate< Core::PKTOUT_65_ID, 4 > PktOut_65
PacketWriterDefs::PacketTemplate< Core::PKTBI_6F_ID, 47 > PktOut_6F
PacketWriterDefs::PacketTemplate< Core::PKTOUT_7C_ID, 2000 > PktOut_7C
PacketWriterDefs::PacketTemplate< Core::PKTOUT_A8_ID, 2000 > PktOut_A8
PacketWriterDefs::PacketTemplate< Core::PKTOUT_DC_ID, 9 > PktOut_DC
PacketWriterDefs::PacketTemplate< Core::PKTOUT_A6_ID, 10010 > PktOut_A6
PacketWriterDefs::PacketTemplate< Core::PKTOUT_54_ID, 12 > PktOut_54
PacketWriterDefs::PacketTemplateSub< Core::PKTBI_BF_ID, 3, Core::PKTBI_BF::TYPE_PARTY_SYSTEM, 0xFFFF > PktOut_BF_Sub6
PacketWriterDefs::PacketTemplate< Core::PKTOUT_0B_ID, 7 > PktOut_0B
PacketWriterDefs::PacketTemplate< Core::PKTOUT_90_ID, 19 > PktOut_90
PacketWriterDefs::PacketTemplate< Core::PKTOUT_A3_ID, 9 > PktOut_A3
#define ENCRYPTEDPKTBUFFER
PacketWriterDefs::PacketTemplate< Core::PKTOUT_4F_ID, 2 > PktOut_4F
PacketWriterDefs::PacketTemplate< Core::PKTOUT_CC_ID, 49+(SPEECH_MAX_LEN+1)*2+SPEECH_MAX_LEN+1 > PktOut_CC
PacketWriterDefs::PacketTemplate< Core::PKTBI_9A_ID, 16 > PktOut_9A
virtual PacketInterface * GetNext(u8 id, u16 sub=0) POL_OVERRIDE
PacketWriterDefs::PacketTemplate< Core::PKTOUT_B7_ID, 521 > PktOut_B7
PacketWriterDefs::PacketTemplate< Core::PKTOUT_76_ID, 16 > PktOut_76
virtual void ReSetBuffer()
PacketWriterDefs::PacketTemplate< Core::PKTOUT_A1_ID, 9 > PktOut_A1
PacketWriterDefs::PacketTemplate< Core::PKTBI_22_APPROVED_ID, 3 > PktOut_22
PacketWriterDefs::PacketTemplateSub< Core::PKTBI_BF_ID, 3, Core::PKTBI_BF::TYPE_ENABLE_MAP_DIFFS, 5+4+MAX_NUMER_REALMS *8 > PktOut_BF_Sub18
std::pair< u8, PacketQueue * > PacketQueuePair
PacketInterface * GetPacket(u8 id, u16 sub=0)
PacketWriterDefs::PacketTemplate< Core::PKTOUT_27_ID, 2 > PktOut_27
std::lock_guard< SpinLock > SpinLockGuard
PacketWriterDefs::PacketTemplate< Core::PKTOUT_F7_ID, 0xFFFF > PktOut_F7
PacketWriterDefs::PacketTemplateSub< Core::PKTBI_BF_ID, 3, Core::PKTBI_BF::TYPE_NEW_SPELLBOOK, 5+18 > PktOut_BF_Sub1B
PacketWriterDefs::PacketTemplate< Core::PKTOUT_B9_ID, 5 > PktOut_B9
PacketWriterDefs::PacketTemplate< Core::PKTOUT_17_ID, 12 > PktOut_17
PacketInterfaceQueue _packets
virtual ~PacketQueueSingle()
PacketWriterDefs::PacketTemplateSub< Core::PKTBI_BF_ID, 3, Core::PKTBI_BF::TYPE_CUSTOM_HOUSE_SHORT, 5+8 > PktOut_BF_Sub1D
PacketWriterDefs::PacketTemplate< Core::PKTOUT_F5_ID, 21 > PktOut_F5
PacketWriterDefs::PacketTemplateSub< Core::PKTBI_BF_ID, 3, Core::PKTBI_BF::TYPE_DISPLAY_POPUP_MENU, 0xFFFF > PktOut_BF_Sub14
PacketWriterDefs::PacketTemplate< Core::PKTOUT_24_ID, 9 > PktOut_24
void ReAddPacket(PacketInterface *pkt)