BVB Source Codes

CRYENGINE Show GameStatistics.h Source code

Return Download CRYENGINE: download GameStatistics.h Source code - Download CRYENGINE Source code - Type:.h
  1. // Copyright 2001-2016 Crytek GmbH / Crytek Group. All rights reserved.
  2.  
  3. #ifndef   __GAMESTATISTICS_H__
  4. #define   __GAMESTATISTICS_H__
  5.  
  6. #if _MSC_VER > 1000
  7.         #pragma once
  8. #endif
  9.  
  10. #include "StatisticsHelpers.h"
  11.  
  12. //////////////////////////////////////////////////////////////////////////
  13.  
  14. class CGameStatistics : public IGameStatistics
  15. {
  16.         typedef std::vector<IStatsSerializer*> TSerializers;
  17.  
  18. public:
  19.         CGameStatistics();
  20.         ~CGameStatistics();
  21.  
  22.         virtual bool                     RegisterGameEvents(const SGameStatDesc* eventDescs, size_t numEvents);
  23.         virtual size_t                   RegisterGameEvent(const char* scriptName, const char* serializeName);
  24.         virtual size_t                   GetEventCount() const;
  25.         virtual size_t                   GetEventID(const char* scriptName) const;
  26.         virtual size_t                   GetEventIDBySerializeName(const char* serializeName) const;
  27.         virtual const SGameStatDesc*     GetEventDesc(size_t eventID) const;
  28.  
  29.         virtual bool                     RegisterGameStates(const SGameStatDesc* stateDescs, size_t numStates);
  30.         virtual size_t                   RegisterGameState(const char* scriptName, const char* serializeName);
  31.         virtual size_t                   GetStateCount() const;
  32.         virtual size_t                   GetStateID(const char* scriptName) const;
  33.         virtual const SGameStatDesc*     GetStateDesc(size_t stateID) const;
  34.  
  35.         virtual bool                     RegisterGameScopes(const SGameScopeDesc* scopeDescs, size_t numScopes);
  36.         virtual IStatsTracker*           PushGameScope(size_t scopeID);
  37.         virtual void                     PopGameScope(size_t scopeID);
  38.         virtual size_t                   GetScopeStackSize() const;
  39.         virtual size_t                   GetScopeID(size_t depth = 0) const;
  40.         virtual size_t                   GetScopeCount() const;
  41.         virtual size_t                   GetScopeID(const char* scriptName) const;
  42.         virtual const SGameScopeDesc*    GetScopeDesc(size_t scopeID) const;
  43.  
  44.         virtual bool                     RegisterGameElements(const SGameElementDesc* elemDescs, size_t numElems);
  45.         virtual IStatsTracker*           AddGameElement(const SNodeLocator& locator, IScriptTable* pTable);
  46.         virtual void                     RemoveElement(const SNodeLocator& locator);
  47.         virtual size_t                   GetElementCount() const;
  48.         virtual size_t                   GetElementID(const char* scriptName) const;
  49.         virtual const SGameElementDesc*  GetElementDesc(size_t elemID) const;
  50.  
  51.         virtual IStatsTracker*           GetTracker(const SNodeLocator& locator) const;
  52.         virtual SNodeLocator             GetTrackedNode(IStatsTracker* tracker) const;
  53.  
  54.         virtual XmlNodeRef               CreateStatXMLNode(const char* tag = "root");
  55.         virtual IXMLSerializable*        WrapXMLNode(const XmlNodeRef& node);
  56.  
  57.         virtual void                     PreprocessScriptedEventParameter(size_t eventID, SStatAnyValue& value);
  58.         virtual void                     PreprocessScriptedStateParameter(size_t stateID, SStatAnyValue& value);
  59.  
  60.         virtual void                     SetStatisticsCallback(IGameStatisticsCallback* pCallback);
  61.         virtual IGameStatisticsCallback* GetStatisticsCallback() const;
  62.  
  63.         virtual void                     SetStorageFactory(IStatsStorageFactory* pFactory);
  64.         virtual IStatsStorageFactory*    GetStorageFactory() const;
  65.  
  66.         virtual void                     RegisterSerializer(IStatsSerializer* serializer);
  67.         virtual void                     UnregisterSerializer(IStatsSerializer* serializer);
  68.         virtual void                     SetMemoryLimit(size_t kb);
  69.  
  70.         virtual void                     GetMemoryStatistics(ICrySizer* pSizer) const;
  71.  
  72.         void                             OnTrackedEvent(const SNodeLocator& locator, size_t eventID, const CTimeValue& timeVal, const SStatAnyValue& value);
  73.         void                             OnTrackedState(const SNodeLocator& locator, size_t stateID, const SStatAnyValue& value);
  74.  
  75. private:
  76.         bool                 ValidatePopScope(size_t checkScopeID);
  77.         bool                 ValidateAddElement(const SNodeLocator& locator);
  78.         void                 PopScopesUntil(size_t scopeID);
  79.         bool                 DoRemoveElement(size_t scopePos, const SNodeLocator& locator, CStatsTracker* tracker);
  80.         void                 RemoveAllElements(size_t scopeID);
  81.         void                 CheckMemoryOverflow();
  82.         void                 GrowLiveMemUsage(const SStatAnyValue& value);
  83.         void                 SaveDeadNodesRec(SDeadStatNode* node);
  84.         void                 SaveScopesRec(size_t scopePos = 0);
  85.         const char*          GetSerializeName(const SNodeLocator& locator) const;
  86.         void                 NotifyVisitNode(const SNodeLocator& locator, const char* serializeName, IStatsContainer& container, EStatNodeState state);
  87.         void                 NotifyLeaveNode(const SNodeLocator& locator, const char* serializeName, IStatsContainer& container, EStatNodeState state);
  88.         static IScriptTable* GetGameRulesTable();
  89.  
  90.         std::unique_ptr<CScriptBind_GameStatistics> m_scriptBind;
  91.         IGameStatisticsCallback*                    m_gsCallback;
  92.         IStatsStorageFactory*                       m_storageFactory;
  93.         CDefaultStorageFactory                      m_defaultStorageFactory;
  94.  
  95.         CStatRegistry                               m_eventRegistry;
  96.         CStatRegistry                               m_stateRegistry;
  97.         CElemRegistry                               m_elemRegistry;
  98.         CGameScopes  m_gameScopes;
  99.  
  100.         TSerializers m_serializers;
  101.         size_t       m_memoryLimit;
  102.         size_t       m_cachedDeadMemory;
  103.         size_t       m_cachedLiveUnloadableMemory;
  104.         uint32       m_currTimeStamp;
  105. };
  106.  
  107. //////////////////////////////////////////////////////////////////////////
  108.  
  109. #endif //__GAMESTATISTICS_H__
  110.  
downloadGameStatistics.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