BVB Source Codes

CRYENGINE Show NetDebug.h Source code

Return Download CRYENGINE: download NetDebug.h Source code - Download CRYENGINE Source code - Type:.h
  1. // Copyright 2001-2016 Crytek GmbH / Crytek Group. All rights reserved.
  2.  
  3. /*************************************************************************
  4.    -------------------------------------------------------------------------
  5.    $Id$
  6.    $DateTime$
  7.    Description:  network debugging helpers for CryAction code
  8.    -------------------------------------------------------------------------
  9.    History:
  10.    - 01/06/2000   11:28 : Created by Sergii Rustamov
  11. *************************************************************************/
  12. #ifndef __NETDEBUG_H__
  13. #define __NETDEBUG_H__
  14.  
  15. #pragma once
  16.  
  17. #if ENABLE_NETDEBUG
  18.  
  19. class CNetDebug
  20. {
  21. public:
  22.         CNetDebug();
  23.         ~CNetDebug();
  24.  
  25.         void DebugAspectsChange(IEntity* pEntity, uint8 aspects);
  26.         void DebugRMI(const char* szDescription, size_t nSize);
  27.         void Update();
  28.  
  29. private:
  30.         static const int MAX_ASPECTS = 6;
  31.         static const int MAX_TTL = 600;
  32.         static const int UPDATE_DIFF_MSEC = 1000;
  33.  
  34.         struct DebugAspectsEntity
  35.         {
  36.                 string sEntityName;
  37.                 uint32 aspectChangeCount[MAX_ASPECTS];
  38.                 float  aspectChangeRate[MAX_ASPECTS];
  39.                 uint32 aspectLastCount[MAX_ASPECTS];
  40.                 int    entityTTL[MAX_ASPECTS];
  41.  
  42.                 DebugAspectsEntity()
  43.                 {
  44.                         memset(&aspectChangeCount, 0, sizeof(aspectChangeCount));
  45.                         memset(&aspectChangeRate, 0, sizeof(aspectChangeRate));
  46.                         memset(&aspectLastCount, 0, sizeof(aspectLastCount));
  47.                         memset(&entityTTL, 0, sizeof(entityTTL));
  48.                 }
  49.         };
  50.         typedef std::map<string, DebugAspectsEntity> TDebugEntities;
  51.         struct DebugAspectsContext
  52.         {
  53.                 string         sEntityClass;
  54.                 TDebugEntities entities;
  55.         };
  56.         typedef std::map<string, DebugAspectsContext> TDebugAspects;
  57.  
  58. private:
  59.         struct DebugRMIEntity
  60.         {
  61.                 string sDesc;
  62.                 uint32 invokeCount;
  63.                 size_t totalSize;
  64.                 size_t lastTotalSize;
  65.                 float  rate;
  66.                 float  peakRate;
  67.  
  68.                 DebugRMIEntity() : invokeCount(0), totalSize(0), lastTotalSize(0), rate(0), peakRate(0) {}
  69.         };
  70.         typedef std::map<string, DebugRMIEntity> TDebugRMI;
  71.  
  72. private:
  73.         float         m_fLastTime;
  74.         TDebugAspects m_aspects;
  75.         TDebugRMI     m_rmi;
  76.         int           m_varDebugRMI;
  77.         int           m_varDebug;
  78.         int           m_trapValue;
  79.         int           m_trapValueCount;
  80.  
  81. private:
  82.         void        UpdateAspectsDebugEntity(const DebugAspectsContext& ctx, DebugAspectsEntity& ent, uint8 aspects);
  83.         void        UpdateAspectsRates(float fDiffTimeMsec);
  84.         void        DrawAspects();
  85.         const char* IdxToAspectString(int idx);
  86.         int         AspectToIdx(EEntityAspects aspect);
  87.         bool        ProcessFilter(const char* szClass, const char* szEntity);
  88.         void        ProcessTrap(DebugAspectsEntity& ent);
  89.  
  90. private:
  91.         void UpdateRMI(float fDiffTimeMSec);
  92.         void DrawRMI();
  93. };
  94.  
  95. #endif // ENABLE_NETDEBUG
  96. #endif // __NETDEBUG_H__
  97.  
downloadNetDebug.h Source code - Download CRYENGINE Source code
Related Source Codes/Software:
postal - 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top