| /*!**************************************************************************** |
| |
| @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 |
| |