Skip to content

Commit 787fcea

Browse files
committed
refactor(network): add getByteCount() to all 25 command message classes for consistent polymorphic interface
1 parent 07b592f commit 787fcea

File tree

3 files changed

+147
-28
lines changed

3 files changed

+147
-28
lines changed

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

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,8 @@ class NetAckBothCommandMsg : public NetCommandMsg
110110
UnsignedByte getOriginalPlayerID();
111111
void setOriginalPlayerID(UnsignedByte originalPlayerID);
112112
virtual Int getSortNumber();
113+
114+
size_t getByteCount() const;
113115

114116
protected:
115117
UnsignedShort m_commandID;
@@ -134,6 +136,8 @@ class NetAckStage1CommandMsg : public NetCommandMsg
134136
UnsignedByte getOriginalPlayerID();
135137
void setOriginalPlayerID(UnsignedByte originalPlayerID);
136138
virtual Int getSortNumber();
139+
140+
size_t getByteCount() const;
137141

138142
protected:
139143
UnsignedShort m_commandID;
@@ -158,6 +162,8 @@ class NetAckStage2CommandMsg : public NetCommandMsg
158162
UnsignedByte getOriginalPlayerID();
159163
void setOriginalPlayerID(UnsignedByte originalPlayerID);
160164
virtual Int getSortNumber();
165+
166+
size_t getByteCount() const;
161167

162168
protected:
163169
UnsignedShort m_commandID;
@@ -174,6 +180,8 @@ class NetFrameCommandMsg : public NetCommandMsg
174180

175181
void setCommandCount(UnsignedShort commandCount);
176182
UnsignedShort getCommandCount();
183+
184+
size_t getByteCount() const;
177185

178186
protected:
179187
UnsignedShort m_commandCount;
@@ -189,6 +197,8 @@ class NetPlayerLeaveCommandMsg : public NetCommandMsg
189197

190198
UnsignedByte getLeavingPlayerID();
191199
void setLeavingPlayerID(UnsignedByte id);
200+
201+
size_t getByteCount() const;
192202

193203
protected:
194204
UnsignedByte m_leavingPlayerID;
@@ -206,6 +216,8 @@ class NetRunAheadMetricsCommandMsg : public NetCommandMsg
206216
void setAverageLatency(Real avgLat);
207217
Int getAverageFps();
208218
void setAverageFps(Int fps);
219+
220+
size_t getByteCount() const;
209221

210222
protected:
211223
Real m_averageLatency;
@@ -225,6 +237,8 @@ class NetRunAheadCommandMsg : public NetCommandMsg
225237

226238
UnsignedByte getFrameRate();
227239
void setFrameRate(UnsignedByte frameRate);
240+
241+
size_t getByteCount() const;
228242

229243
protected:
230244
UnsignedShort m_runAhead;
@@ -241,6 +255,8 @@ class NetDestroyPlayerCommandMsg : public NetCommandMsg
241255

242256
UnsignedInt getPlayerIndex();
243257
void setPlayerIndex(UnsignedInt playerIndex);
258+
259+
size_t getByteCount() const;
244260

245261
protected:
246262
UnsignedInt m_playerIndex;
@@ -253,6 +269,8 @@ class NetKeepAliveCommandMsg : public NetCommandMsg
253269
public:
254270
NetKeepAliveCommandMsg();
255271
//virtual ~NetKeepAliveCommandMsg();
272+
273+
size_t getByteCount() const;
256274
};
257275

258276
//-----------------------------------------------------------------------------
@@ -262,6 +280,8 @@ class NetDisconnectKeepAliveCommandMsg : public NetCommandMsg
262280
public:
263281
NetDisconnectKeepAliveCommandMsg();
264282
//virtual ~NetDisconnectKeepAliveCommandMsg();
283+
284+
size_t getByteCount() const;
265285
};
266286

267287
//-----------------------------------------------------------------------------
@@ -277,6 +297,8 @@ class NetDisconnectPlayerCommandMsg : public NetCommandMsg
277297

278298
UnsignedInt getDisconnectFrame();
279299
void setDisconnectFrame(UnsignedInt frame);
300+
301+
size_t getByteCount() const;
280302

281303
protected:
282304
UnsignedByte m_disconnectSlot;
@@ -290,6 +312,8 @@ class NetPacketRouterQueryCommandMsg : public NetCommandMsg
290312
public:
291313
NetPacketRouterQueryCommandMsg();
292314
//virtual ~NetPacketRouterQueryCommandMsg();
315+
316+
size_t getByteCount() const;
293317
};
294318

295319
//-----------------------------------------------------------------------------
@@ -299,6 +323,8 @@ class NetPacketRouterAckCommandMsg : public NetCommandMsg
299323
public:
300324
NetPacketRouterAckCommandMsg();
301325
//virtual ~NetPacketRouterAckCommandMsg();
326+
327+
size_t getByteCount() const;
302328
};
303329

304330
//-----------------------------------------------------------------------------
@@ -352,6 +378,8 @@ class NetDisconnectVoteCommandMsg : public NetCommandMsg
352378

353379
UnsignedInt getVoteFrame();
354380
void setVoteFrame(UnsignedInt voteFrame);
381+
382+
size_t getByteCount() const;
355383

356384
protected:
357385
UnsignedByte m_slot;
@@ -368,6 +396,8 @@ class NetProgressCommandMsg: public NetCommandMsg
368396

369397
UnsignedByte getPercentage();
370398
void setPercentage( UnsignedByte percent );
399+
400+
size_t getByteCount() const;
371401
protected:
372402
UnsignedByte m_percent;
373403
};
@@ -382,6 +412,8 @@ class NetWrapperCommandMsg : public NetCommandMsg
382412

383413
UnsignedByte * getData();
384414
void setData(UnsignedByte *data, UnsignedInt dataLength);
415+
416+
size_t getByteCount() const;
385417

386418
UnsignedInt getChunkNumber();
387419
void setChunkNumber(UnsignedInt chunkNumber);
@@ -480,6 +512,8 @@ class NetFileProgressCommandMsg : public NetCommandMsg
480512

481513
Int getProgress();
482514
void setProgress(Int val);
515+
516+
size_t getByteCount() const;
483517

484518
protected:
485519
UnsignedShort m_fileID;
@@ -495,6 +529,8 @@ class NetDisconnectFrameCommandMsg : public NetCommandMsg
495529

496530
UnsignedInt getDisconnectFrame();
497531
void setDisconnectFrame(UnsignedInt disconnectFrame);
532+
533+
size_t getByteCount() const;
498534

499535
protected:
500536
UnsignedInt m_disconnectFrame;
@@ -509,6 +545,8 @@ class NetDisconnectScreenOffCommandMsg : public NetCommandMsg
509545

510546
UnsignedInt getNewFrame();
511547
void setNewFrame(UnsignedInt newFrame);
548+
549+
size_t getByteCount() const;
512550

513551
protected:
514552
UnsignedInt m_newFrame;
@@ -523,6 +561,8 @@ class NetFrameResendRequestCommandMsg : public NetCommandMsg
523561

524562
UnsignedInt getFrameToResend();
525563
void setFrameToResend(UnsignedInt frame);
564+
565+
size_t getByteCount() const;
526566

527567
protected:
528568
UnsignedInt m_frameToResend;

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

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1173,3 +1173,87 @@ UnsignedInt NetFrameResendRequestCommandMsg::getFrameToResend() {
11731173
void NetFrameResendRequestCommandMsg::setFrameToResend(UnsignedInt frame) {
11741174
m_frameToResend = frame;
11751175
}
1176+
1177+
//-------------------------
1178+
// getByteCount() implementations for fixed-size command messages
1179+
//-------------------------
1180+
1181+
size_t NetAckBothCommandMsg::getByteCount() const {
1182+
return sizeof(NetPacketAckCommand);
1183+
}
1184+
1185+
size_t NetFrameCommandMsg::getByteCount() const {
1186+
return sizeof(NetPacketFrameCommand);
1187+
}
1188+
1189+
size_t NetKeepAliveCommandMsg::getByteCount() const {
1190+
return sizeof(NetPacketKeepAliveCommand);
1191+
}
1192+
1193+
size_t NetWrapperCommandMsg::getByteCount() const {
1194+
return sizeof(NetPacketWrapperCommand);
1195+
}
1196+
1197+
size_t NetAckStage1CommandMsg::getByteCount() const {
1198+
return sizeof(NetPacketAckCommand);
1199+
}
1200+
1201+
size_t NetAckStage2CommandMsg::getByteCount() const {
1202+
return sizeof(NetPacketAckCommand);
1203+
}
1204+
1205+
size_t NetPlayerLeaveCommandMsg::getByteCount() const {
1206+
return sizeof(NetPacketPlayerLeaveCommand);
1207+
}
1208+
1209+
size_t NetRunAheadMetricsCommandMsg::getByteCount() const {
1210+
return sizeof(NetPacketRunAheadMetricsCommand);
1211+
}
1212+
1213+
size_t NetRunAheadCommandMsg::getByteCount() const {
1214+
return sizeof(NetPacketRunAheadCommand);
1215+
}
1216+
1217+
size_t NetDestroyPlayerCommandMsg::getByteCount() const {
1218+
return sizeof(NetPacketDestroyPlayerCommand);
1219+
}
1220+
1221+
size_t NetDisconnectKeepAliveCommandMsg::getByteCount() const {
1222+
return sizeof(NetPacketDisconnectKeepAliveCommand);
1223+
}
1224+
1225+
size_t NetDisconnectPlayerCommandMsg::getByteCount() const {
1226+
return sizeof(NetPacketDisconnectPlayerCommand);
1227+
}
1228+
1229+
size_t NetPacketRouterQueryCommandMsg::getByteCount() const {
1230+
return sizeof(NetPacketRouterQueryCommand);
1231+
}
1232+
1233+
size_t NetPacketRouterAckCommandMsg::getByteCount() const {
1234+
return sizeof(NetPacketRouterAckCommand);
1235+
}
1236+
1237+
size_t NetDisconnectVoteCommandMsg::getByteCount() const {
1238+
return sizeof(NetPacketDisconnectVoteCommand);
1239+
}
1240+
1241+
size_t NetProgressCommandMsg::getByteCount() const {
1242+
return sizeof(NetPacketProgressMessage);
1243+
}
1244+
1245+
size_t NetFileProgressCommandMsg::getByteCount() const {
1246+
return sizeof(NetPacketFileProgressCommand);
1247+
}
1248+
1249+
size_t NetDisconnectFrameCommandMsg::getByteCount() const {
1250+
return sizeof(NetPacketDisconnectFrameCommand);
1251+
}
1252+
1253+
size_t NetDisconnectScreenOffCommandMsg::getByteCount() const {
1254+
return sizeof(NetPacketDisconnectScreenOffCommand);
1255+
}
1256+
1257+
size_t NetFrameResendRequestCommandMsg::getByteCount() const {
1258+
return sizeof(NetPacketFrameResendRequestCommand);
1259+
}

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

Lines changed: 23 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -342,70 +342,67 @@ UnsignedInt NetPacket::GetBufferSizeNeededForCommand(NetCommandMsg *msg) {
342342
}
343343

344344
UnsignedInt NetPacket::GetGameCommandSize(NetCommandMsg *msg) {
345-
NetGameCommandMsg *cmdMsg = static_cast<NetGameCommandMsg *>(msg);
346-
return cmdMsg->getByteCount();
345+
return msg->getByteCount();
347346
}
348347

349348
UnsignedInt NetPacket::GetAckCommandSize(NetCommandMsg *msg) {
350-
return sizeof(NetPacketAckCommand);
349+
return msg->getByteCount();
351350
}
352351

353352
UnsignedInt NetPacket::GetFrameCommandSize(NetCommandMsg *msg) {
354-
return sizeof(NetPacketFrameCommand);
353+
return msg->getByteCount();
355354
}
356355

357356
UnsignedInt NetPacket::GetPlayerLeaveCommandSize(NetCommandMsg *msg) {
358-
return sizeof(NetPacketPlayerLeaveCommand);
357+
return msg->getByteCount();
359358
}
360359

361360
UnsignedInt NetPacket::GetRunAheadMetricsCommandSize(NetCommandMsg *msg) {
362-
return sizeof(NetPacketRunAheadMetricsCommand);
361+
return msg->getByteCount();
363362
}
364363

365364
UnsignedInt NetPacket::GetRunAheadCommandSize(NetCommandMsg *msg) {
366-
return sizeof(NetPacketRunAheadCommand);
365+
return msg->getByteCount();
367366
}
368367

369368
UnsignedInt NetPacket::GetDestroyPlayerCommandSize(NetCommandMsg *msg) {
370-
return sizeof(NetPacketDestroyPlayerCommand);
369+
return msg->getByteCount();
371370
}
372371

373372
UnsignedInt NetPacket::GetKeepAliveCommandSize(NetCommandMsg *msg) {
374-
return sizeof(NetPacketKeepAliveCommand);
373+
return msg->getByteCount();
375374
}
376375

377376
UnsignedInt NetPacket::GetDisconnectKeepAliveCommandSize(NetCommandMsg *msg) {
378-
return sizeof(NetPacketDisconnectKeepAliveCommand);
377+
return msg->getByteCount();
379378
}
380379

381380
UnsignedInt NetPacket::GetDisconnectPlayerCommandSize(NetCommandMsg *msg) {
382-
return sizeof(NetPacketDisconnectPlayerCommand);
381+
return msg->getByteCount();
383382
}
384383

385384
UnsignedInt NetPacket::GetPacketRouterQueryCommandSize(NetCommandMsg *msg) {
386-
return sizeof(NetPacketRouterQueryCommand);
385+
return msg->getByteCount();
387386
}
388387

389388
UnsignedInt NetPacket::GetPacketRouterAckCommandSize(NetCommandMsg *msg) {
390-
return sizeof(NetPacketRouterAckCommand);
389+
return msg->getByteCount();
391390
}
392391

393392
UnsignedInt NetPacket::GetDisconnectChatCommandSize(NetCommandMsg *msg) {
394-
NetDisconnectChatCommandMsg *cmdMsg = static_cast<NetDisconnectChatCommandMsg*>(msg);
395-
return sizeof(NetPacketDisconnectChatCommandHeader) + cmdMsg->getByteCount();
393+
return msg->getByteCount();
396394
}
397395

398396
UnsignedInt NetPacket::GetDisconnectVoteCommandSize(NetCommandMsg *msg) {
399-
return sizeof(NetPacketDisconnectVoteCommand);
397+
return msg->getByteCount();
400398
}
401399

402400
UnsignedInt NetPacket::GetChatCommandSize(NetCommandMsg *msg) {
403-
NetChatCommandMsg *cmdMsg = static_cast<NetChatCommandMsg*>(msg);
404-
return sizeof(NetPacketChatCommandHeader) + cmdMsg->getByteCount();
401+
return msg->getByteCount();
405402
}
406403

407404
UnsignedInt NetPacket::GetProgressMessageSize(NetCommandMsg *msg) {
408-
return sizeof(NetPacketProgressMessage);
405+
return msg->getByteCount();
409406
}
410407

411408
UnsignedInt NetPacket::GetLoadCompleteMessageSize(NetCommandMsg *msg) {
@@ -417,33 +414,31 @@ UnsignedInt NetPacket::GetTimeOutGameStartMessageSize(NetCommandMsg *msg) {
417414
}
418415

419416
UnsignedInt NetPacket::GetWrapperCommandSize(NetCommandMsg *msg) {
420-
return sizeof(NetPacketWrapperCommand);
417+
return msg->getByteCount();
421418
}
422419

423420
UnsignedInt NetPacket::GetFileCommandSize(NetCommandMsg *msg) {
424-
NetFileCommandMsg *filemsg = static_cast<NetFileCommandMsg *>(msg);
425-
return sizeof(NetPacketFileCommandHeader) + filemsg->getByteCount();
421+
return msg->getByteCount();
426422
}
427423

428424
UnsignedInt NetPacket::GetFileAnnounceCommandSize(NetCommandMsg *msg) {
429-
NetFileAnnounceCommandMsg *filemsg = static_cast<NetFileAnnounceCommandMsg *>(msg);
430-
return sizeof(NetPacketFileAnnounceCommandHeader) + filemsg->getByteCount();
425+
return msg->getByteCount();
431426
}
432427

433428
UnsignedInt NetPacket::GetFileProgressCommandSize(NetCommandMsg *msg) {
434-
return sizeof(NetPacketFileProgressCommand);
429+
return msg->getByteCount();
435430
}
436431

437432
UnsignedInt NetPacket::GetDisconnectFrameCommandSize(NetCommandMsg *msg) {
438-
return sizeof(NetPacketDisconnectFrameCommand);
433+
return msg->getByteCount();
439434
}
440435

441436
UnsignedInt NetPacket::GetDisconnectScreenOffCommandSize(NetCommandMsg *msg) {
442-
return sizeof(NetPacketDisconnectScreenOffCommand);
437+
return msg->getByteCount();
443438
}
444439

445440
UnsignedInt NetPacket::GetFrameResendRequestCommandSize(NetCommandMsg *msg) {
446-
return sizeof(NetPacketFrameResendRequestCommand);
441+
return msg->getByteCount();
447442
}
448443

449444

0 commit comments

Comments
 (0)