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