00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef NVBLASTTKTYPEIMPL_H
00030 #define NVBLASTTKTYPEIMPL_H
00031
00032
00033 #include "NvPreprocessor.h"
00034
00035 #include "NvBlastTkType.h"
00036
00037
00038 namespace Nv
00039 {
00040 namespace Blast
00041 {
00042
00046 class TkTypeImpl : public TkType
00047 {
00048 public:
00049 TkTypeImpl(const char* typeName, uint32_t typeID, uint32_t version);
00050
00051
00052 virtual const char* getName() const override { return getNameInternal(); }
00053
00054 virtual uint32_t getVersion() const override { return getVersionInternal(); }
00055
00056
00057
00058
00064 const char* getNameInternal() const;
00065
00071 uint32_t getVersionInternal() const;
00072
00078 uint32_t getID() const;
00079
00085 uint32_t getIndex() const;
00086
00090 bool indexIsValid() const;
00091
00092 private:
00093 enum { InvalidIndex = 0xFFFFFFFF };
00094
00100 void setIndex(uint32_t index);
00101
00102 const char* m_name;
00103 uint32_t m_ID;
00104 uint32_t m_version;
00105 uint32_t m_index;
00106
00107 friend class TkFrameworkImpl;
00108 };
00109
00110
00112
00113 NV_INLINE TkTypeImpl::TkTypeImpl(const char* typeName, uint32_t typeID, uint32_t version)
00114 : m_name(typeName)
00115 , m_ID(typeID)
00116 , m_version(version)
00117 , m_index((uint32_t)InvalidIndex)
00118 {
00119 }
00120
00121
00122 NV_INLINE const char* TkTypeImpl::getNameInternal() const
00123 {
00124 return m_name;
00125 }
00126
00127
00128 NV_INLINE uint32_t TkTypeImpl::getVersionInternal() const
00129 {
00130 return m_version;
00131 }
00132
00133
00134 NV_INLINE uint32_t TkTypeImpl::getID() const
00135 {
00136 return m_ID;
00137 }
00138
00139
00140 NV_INLINE uint32_t TkTypeImpl::getIndex() const
00141 {
00142 return m_index;
00143 }
00144
00145
00146 NV_INLINE bool TkTypeImpl::indexIsValid() const
00147 {
00148 return m_index != (uint32_t)InvalidIndex;
00149 }
00150
00151
00152 NV_INLINE void TkTypeImpl::setIndex(uint32_t index)
00153 {
00154 m_index = index;
00155 }
00156
00157 }
00158 }
00159
00160
00161 #endif // ifndef NVBLASTTKTYPEIMPL_H