Skip to content

Commit e80ad6d

Browse files
committed
refactor: add getByteCount() methods to more message classes and use it
1 parent 238fc7e commit e80ad6d

File tree

3 files changed

+39
-10
lines changed

3 files changed

+39
-10
lines changed

GeneralsMD/Code/GameEngine/Include/GameNetwork/NetCommandMsg.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,8 @@ class NetDisconnectChatCommandMsg : public NetCommandMsg
310310
UnicodeString getText();
311311
void setText(UnicodeString text);
312312

313+
size_t getByteCount() const;
314+
313315
protected:
314316
UnicodeString m_text;
315317
};
@@ -426,6 +428,8 @@ class NetFileCommandMsg : public NetCommandMsg
426428
UnsignedByte * getFileData();
427429
void setFileData(UnsignedByte *data, UnsignedInt dataLength);
428430

431+
size_t getByteCount() const;
432+
429433
protected:
430434
AsciiString m_portableFilename;
431435

@@ -453,6 +457,8 @@ class NetFileAnnounceCommandMsg : public NetCommandMsg
453457
UnsignedByte getPlayerMask(void);
454458
void setPlayerMask(UnsignedByte playerMask);
455459

460+
size_t getByteCount() const;
461+
456462
protected:
457463
AsciiString m_portableFilename;
458464
UnsignedShort m_fileID;

GeneralsMD/Code/GameEngine/Source/GameNetwork/NetCommandMsg.cpp

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -767,6 +767,17 @@ size_t NetChatCommandMsg::getByteCount() const
767767
return m_text.getLength() * sizeof(UnsignedShort) + sizeof(m_playerMask);
768768
}
769769

770+
//-------------------------
771+
// NetDisconnectChatCommandMsg
772+
//-------------------------
773+
/**
774+
* Get the byte count for this disconnect chat message.
775+
*/
776+
size_t NetDisconnectChatCommandMsg::getByteCount() const
777+
{
778+
return m_text.getLength() * sizeof(UnsignedShort);
779+
}
780+
770781
//-------------------------
771782
// NetDisconnectVoteCommandMsg
772783
//-------------------------
@@ -948,6 +959,16 @@ void NetFileCommandMsg::setFileData(UnsignedByte *data, UnsignedInt dataLength)
948959
memcpy(m_data, data, dataLength);
949960
}
950961

962+
/**
963+
* Get the byte count for this file command message.
964+
*/
965+
size_t NetFileCommandMsg::getByteCount() const
966+
{
967+
return m_portableFilename.getLength() + 1 // filename + null terminator
968+
+ sizeof(UnsignedInt) // file data length
969+
+ m_dataLength; // the file data
970+
}
971+
951972
//-------------------------
952973
// NetFileAnnounceCommandMsg
953974
//-------------------------
@@ -987,6 +1008,15 @@ void NetFileAnnounceCommandMsg::setPlayerMask(UnsignedByte playerMask) {
9871008
m_playerMask = playerMask;
9881009
}
9891010

1011+
/**
1012+
* Get the byte count for this file announce command message.
1013+
*/
1014+
size_t NetFileAnnounceCommandMsg::getByteCount() const
1015+
{
1016+
return m_portableFilename.getLength() + 1 // filename + null terminator
1017+
+ sizeof(m_fileID) // file ID
1018+
+ sizeof(m_playerMask); // player mask
1019+
}
9901020

9911021
//-------------------------
9921022
// NetFileProgressCommandMsg

GeneralsMD/Code/GameEngine/Source/GameNetwork/NetPacket.cpp

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -466,8 +466,7 @@ UnsignedInt NetPacket::GetPacketRouterAckCommandSize(NetCommandMsg *msg) {
466466

467467
UnsignedInt NetPacket::GetDisconnectChatCommandSize(NetCommandMsg *msg) {
468468
NetDisconnectChatCommandMsg *cmdMsg = static_cast<NetDisconnectChatCommandMsg*>(msg);
469-
UnsignedByte textmsglen = cmdMsg->getText().getLength();
470-
return sizeof(NetPacketDisconnectChatCommandHeader) + (textmsglen * sizeof(UnsignedShort));
469+
return sizeof(NetPacketDisconnectChatCommandHeader) + cmdMsg->getByteCount();
471470
}
472471

473472
UnsignedInt NetPacket::GetDisconnectVoteCommandSize(NetCommandMsg *msg) {
@@ -497,18 +496,12 @@ UnsignedInt NetPacket::GetWrapperCommandSize(NetCommandMsg *msg) {
497496

498497
UnsignedInt NetPacket::GetFileCommandSize(NetCommandMsg *msg) {
499498
NetFileCommandMsg *filemsg = (NetFileCommandMsg *)msg;
500-
return sizeof(NetPacketFileCommandHeader)
501-
+ filemsg->getPortableFilename().getLength() + 1 // PORTABLE filename and the terminating 0
502-
+ sizeof(UnsignedInt) // file data length
503-
+ filemsg->getFileLength(); // the file data
499+
return sizeof(NetPacketFileCommandHeader) + filemsg->getByteCount();
504500
}
505501

506502
UnsignedInt NetPacket::GetFileAnnounceCommandSize(NetCommandMsg *msg) {
507503
NetFileAnnounceCommandMsg *filemsg = (NetFileAnnounceCommandMsg *)msg;
508-
return sizeof(NetPacketFileAnnounceCommandHeader)
509-
+ filemsg->getPortableFilename().getLength() + 1 // PORTABLE filename and the terminating 0
510-
+ sizeof(UnsignedShort) // m_fileID
511-
+ sizeof(UnsignedByte); // m_playerMask
504+
return sizeof(NetPacketFileAnnounceCommandHeader) + filemsg->getByteCount();
512505
}
513506

514507
UnsignedInt NetPacket::GetFileProgressCommandSize(NetCommandMsg *msg) {

0 commit comments

Comments
 (0)