BVB Source Codes

CRYENGINE Show SharedParamsTypeInfo.h Source code

Return Download CRYENGINE: download SharedParamsTypeInfo.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: Shared parameters type information.
  8.  
  9.    -------------------------------------------------------------------------
  10.    History:
  11.    - 15:07:2010: Created by Paul Slinger
  12.  
  13. *************************************************************************/
  14.  
  15. #ifndef __SHAREDPARAMSTYPEINFO_H__
  16. #define __SHAREDPARAMSTYPEINFO_H__
  17.  
  18. #if _MSC_VER > 1000
  19.         #pragma once
  20. #endif
  21.  
  22. #include <CryString/StringUtils.h>
  23.  
  24. #ifdef _DEBUG
  25.         #define DEBUG_SHARED_PARAMS_TYPE_INFO 1
  26. #else
  27.         #define DEBUG_SHARED_PARAMS_TYPE_INFO 0
  28. #endif //_DEBUG
  29.  
  30. ////////////////////////////////////////////////////////////////////////////////////////////////////
  31. // Shared parameters type information class.
  32. ////////////////////////////////////////////////////////////////////////////////////////////////////
  33. class CSharedParamsTypeInfo
  34. {
  35. public:
  36.  
  37.         CSharedParamsTypeInfo(size_t size, const char* pName, const char* pFileName, uint32 line) : m_size(size)
  38.         {
  39.                 if (pName)
  40.                 {
  41.                         const size_t length = strlen(pName);
  42.                         size_t pos = 0;
  43.  
  44.                         if (length > sizeof(m_name) - 1)
  45.                         {
  46.                                 pos = length - (sizeof(m_name) - 1);
  47.                         }
  48.  
  49.                         cry_strcpy(m_name, pName + pos);
  50.                 }
  51.                 else
  52.                 {
  53.                         m_name[0] = '\0';
  54.                 }
  55.  
  56.                 if (pFileName)
  57.                 {
  58.                         const size_t length = strlen(pFileName);
  59.                         size_t pos = 0;
  60.  
  61.                         if (length > sizeof(m_fileName) - 1)
  62.                         {
  63.                                 pos = length - (sizeof(m_fileName) - 1);
  64.                         }
  65.  
  66.                         cry_strcpy(m_fileName, pFileName + pos);
  67.                 }
  68.                 else
  69.                 {
  70.                         m_fileName[0] = '\0';
  71.                 }
  72.  
  73.                 m_line = line;
  74.  
  75.                 CryFixedStringT<256> temp;
  76.  
  77.                 temp.Format("%" PRISIZE_T "%s%s%u", size, m_name, m_fileName, m_line);
  78.  
  79.                 m_uniqueId = CryStringUtils::CalculateHash(temp.c_str());
  80.         }
  81.  
  82.         inline size_t GetSize() const
  83.         {
  84.                 return m_size;
  85.         }
  86.  
  87.         inline const char* GetName() const
  88.         {
  89.                 return m_name;
  90.         }
  91.  
  92.         inline const char* GetFileName() const
  93.         {
  94.                 return m_fileName;
  95.         }
  96.  
  97.         inline uint32 GetLine() const
  98.         {
  99.                 return m_line;
  100.         }
  101.  
  102.         inline uint32 GetUniqueId() const
  103.         {
  104.                 return m_uniqueId;
  105.         }
  106.  
  107.         inline bool operator==(const CSharedParamsTypeInfo& right) const
  108.         {
  109. #if DEBUG_SHARED_PARAMS_TYPE_INFO
  110.                 if (m_uniqueId == right.m_uniqueId)
  111.                 {
  112.                         CRY_ASSERT(m_size == right.m_size);
  113.  
  114.                         CRY_ASSERT(!strcmp(m_name, right.m_name));
  115.  
  116.                         CRY_ASSERT(!strcmp(m_fileName, right.m_fileName));
  117.  
  118.                         CRY_ASSERT(m_line == right.m_line);
  119.                 }
  120. #endif //DEBUG_SHARED_PARAMS_TYPE_INFO
  121.  
  122.                 return m_uniqueId == right.m_uniqueId;
  123.         }
  124.  
  125.         inline bool operator!=(const CSharedParamsTypeInfo& right) const
  126.         {
  127. #if DEBUG_SHARED_PARAMS_TYPE_INFO
  128.                 if (m_uniqueId == right.m_uniqueId)
  129.                 {
  130.                         CRY_ASSERT(m_size == right.m_size);
  131.  
  132.                         CRY_ASSERT(!strcmp(m_name, right.m_name));
  133.  
  134.                         CRY_ASSERT(!strcmp(m_fileName, right.m_fileName));
  135.  
  136.                         CRY_ASSERT(m_line == right.m_line);
  137.                 }
  138. #endif //DEBUG_SHARED_PARAMS_TYPE_INFO
  139.  
  140.                 return m_uniqueId != right.m_uniqueId;
  141.         }
  142.  
  143. private:
  144.  
  145.         size_t m_size;
  146.  
  147.         char   m_name[64];
  148.         char   m_fileName[64];
  149.  
  150.         uint32 m_line;
  151.         uint32 m_uniqueId;
  152. };
  153.  
  154. #undef DEBUG_SHARED_PARAMS_TYPE_INFO
  155.  
  156. #endif //__SHAREDPARAMSTYPEINFO_H__
  157.  
downloadSharedParamsTypeInfo.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