/*!**************************************************************************** @file PVRTStringHash.h @copyright Copyright (c) Imagination Technologies Limited. @brief Inherits from PVRTString to include PVRTHash functionality for quick string compares. ******************************************************************************/ #ifndef PVRTSTRINGHASH_H #define PVRTSTRINGHASH_H #include "PVRTString.h" #include "PVRTHash.h" /*!*********************************************************************** @class CPVRTStringHash @brief Inherits from PVRTString to include PVRTHash functionality for quick string compares. *************************************************************************/ class CPVRTStringHash { public: /*!*********************************************************************** @brief Constructor @param[in] _Ptr A string @param[in] _Count Length of _Ptr ************************************************************************/ explicit CPVRTStringHash(const char* _Ptr, size_t _Count = CPVRTString::npos); /*!*********************************************************************** @brief Constructor @param[in] _Right A string ************************************************************************/ explicit CPVRTStringHash(const CPVRTString& _Right); /*!*********************************************************************** @brief Constructor ************************************************************************/ CPVRTStringHash(); /*!*********************************************************************** @brief Appends a string @param[in] _Ptr A string @return Updated string *************************************************************************/ CPVRTStringHash& append(const char* _Ptr); /*!*********************************************************************** @brief Appends a string @param[in] _Str A string @return Updated string *************************************************************************/ CPVRTStringHash& append(const CPVRTString& _Str); /*!*********************************************************************** @brief Assigns the string to the string _Ptr @param[in] _Ptr A string @return Updated string *************************************************************************/ CPVRTStringHash& assign(const char* _Ptr); /*!*********************************************************************** @brief Assigns the string to the string _Str @param[in] _Str A string @return Updated string *************************************************************************/ CPVRTStringHash& assign(const CPVRTString& _Str); /*!*********************************************************************** @brief == Operator. This function compares the hash values of the string. @param[in] _Str A hashed string to compare with @return True if they match *************************************************************************/ bool operator==(const CPVRTStringHash& _Str) const; /*!*********************************************************************** @brief == Operator. This function performs a strcmp() as it's more efficient to strcmp than to hash the string for every comparison. @param[in] _Str A string to compare with @return True if they match *************************************************************************/ bool operator==(const char* _Str) const; /*!*********************************************************************** @brief == Operator. This function performs a strcmp() as it's more efficient to strcmp than to hash the string for every comparison. @param[in] _Str A string to compare with @return True if they match *************************************************************************/ bool operator==(const CPVRTString& _Str) const; /*!*********************************************************************** @brief == Operator. This function compares the hash values of the string. @param[in] Hash A Hash to compare with @return True if they match *************************************************************************/ bool operator==(const CPVRTHash& Hash) const; /*!*********************************************************************** @brief != Operator @param[in] _Str A string to compare with @return True if they don't match *************************************************************************/ bool operator!=(const CPVRTStringHash& _Str) const; /*!*********************************************************************** @brief != Operator. This function compares the hash values of the string. @param[in] Hash A Hash to compare with @return True if they match *************************************************************************/ bool operator!=(const CPVRTHash& Hash) const; /*!*********************************************************************** @fn String @return The original string @brief Returns the original, base string. *************************************************************************/ const CPVRTString& String() const; /*!*********************************************************************** @brief Returns the hash of the base string @fn Hash @return The hash *************************************************************************/ const CPVRTHash& Hash() const; /*!*************************************************************************** @fn c_str @return The original string. @brief Returns the base string as a const char*. *****************************************************************************/ const char* c_str() const; private: CPVRTString m_String; CPVRTHash m_Hash; }; #endif