diff options
Diffstat (limited to 'public/panorama/panoramasymbol.h')
| -rw-r--r-- | public/panorama/panoramasymbol.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/public/panorama/panoramasymbol.h b/public/panorama/panoramasymbol.h new file mode 100644 index 0000000..511a285 --- /dev/null +++ b/public/panorama/panoramasymbol.h @@ -0,0 +1,56 @@ +//=========== Copyright Valve Corporation, All rights reserved. ===============// +// +// Purpose: +//=============================================================================// + +#ifndef PANORAMASYMBOL_H +#define PANORAMASYMBOL_H + +#ifdef _WIN32 +#pragma once +#endif + +#include "utlsymbol.h" + +namespace panorama +{ + + +// Panorama wrapper around CUtlSymbol which always creates symbol in panorama.dll module +class CPanoramaSymbol +{ +public: + // constructor, destructor + CPanoramaSymbol() : m_Id( UTL_INVAL_SYMBOL ) {} + CPanoramaSymbol( UtlSymId_t id ) : m_Id( id ) {} + CPanoramaSymbol( char const* pStr ); + CPanoramaSymbol( CPanoramaSymbol const& sym ) : m_Id( sym.m_Id ) {} + + // operator= + CPanoramaSymbol& operator=(CPanoramaSymbol const& src) { m_Id = src.m_Id; return *this; } + + // operator== + bool operator==(CPanoramaSymbol const& src) const { return m_Id == src.m_Id; } + bool operator==(char const* pStr) const { return CPanoramaSymbol( pStr ).m_Id == m_Id; } + + // sort by index offset and NOT lexigraphical + bool operator<(CPanoramaSymbol const& src) const { return m_Id < src.m_Id; } + bool operator>( CPanoramaSymbol const& src ) const { return m_Id > src.m_Id; } + bool operator!=(CPanoramaSymbol const& src) const { return !operator==(src); } + + // Is valid? + bool IsValid() const { return m_Id != UTL_INVAL_SYMBOL; } + + // Gets at the symbol + operator UtlSymId_t () const { return m_Id; } + + // Gets the string associated with the symbol + char const* String() const; + +private: + UtlSymId_t m_Id; +}; + +} // namespace panorama + +#endif // PANORAMASYMBOL_H
\ No newline at end of file |