//Type identifier structure for object types and any other need.
#ifndef _HASHSTRING_H_
#define _HASHSTRING_H_

#include <string>

class HashString
{
	public:
	HashString();
	HashString(const std::string &typeStr);
	~HashString() {}

	void setStr(const std::string &typeStr);
	bool operator==(HashString t) { return (m_ulHash == t.getHash()); }

	std::string getStr() { return m_sTypeStr; }
	unsigned long getHash() { return m_ulHash; }

	static unsigned long StringToHash(const std::string &str);

	private:
	std::string m_sTypeStr;
	unsigned long m_ulHash;
};

#endif
