#ifndef __KEYSTRING_H__ #define __KEYSTRING_H__ #include "datalibx.h" ////////////////////////////////////////////////////////////////////////////// // KeyString Functions // class CKeyString { public: CKeyString(); ~CKeyString(); public: inline VOID SetNull(); inline VOID Set(const CHAR *pcValue); // This does not copy the string inline const CHAR *Get() const; public: inline BOOL operator==(const CKeyString &key) const; inline BOOL operator<(const CKeyString &key) const; inline BOOL operator>(const CKeyString &key) const; inline BOOL operator<=(const CKeyString &key) const; inline BOOL operator>=(const CKeyString &key) const; UINT_32 Hash() const; VOID Display() const; protected: const CHAR *m_pcValue; }; ////////////////////////////////////////////////////////////////////////////// // Inlined Functions // inline VOID CKeyString::SetNull() { m_pcValue = NULL; } inline VOID CKeyString::Set(const CHAR *pcValue) { ASSERT( pcValue != NULL ); m_pcValue = pcValue; } inline const CHAR *CKeyString::Get() const { return m_pcValue; } inline BOOL CKeyString::operator==(const CKeyString &key) const { return ( strcmp(m_pcValue, key.m_pcValue) == 0 ); } inline BOOL CKeyString::operator<(const CKeyString &key) const { return ( strcmp(m_pcValue, key.m_pcValue) < 0 ); } inline BOOL CKeyString::operator>(const CKeyString &key) const { return ( strcmp(m_pcValue, key.m_pcValue) > 0 ); } inline BOOL CKeyString::operator<=(const CKeyString &key) const { return ( strcmp(m_pcValue, key.m_pcValue) <= 0 ); } inline BOOL CKeyString::operator>=(const CKeyString &key) const { return ( strcmp(m_pcValue, key.m_pcValue) >= 0 ); } inline VOID SetNull(CKeyString *pkey) { pkey->SetNull(); } inline VOID Print(CKeyString *pkey) { pkey->Display(); } #endif // __KEYSTRING_H__