#ifndef _LIBRARY_CFG_HPP_ #define _LIBRARY_CFG_HPP_ // ------------------------------------------------------------------------------------------------ #include "Common.hpp" // ------------------------------------------------------------------------------------------------ namespace SqMod { /* ------------------------------------------------------------------------------------------------ * ... */ template < class T > class HashWrapper { public: /* -------------------------------------------------------------------------------------------- * ... */ HashWrapper() = default; /* -------------------------------------------------------------------------------------------- * ... */ HashWrapper(const HashWrapper & o) = default; /* -------------------------------------------------------------------------------------------- * ... */ HashWrapper(HashWrapper && o) = default; /* -------------------------------------------------------------------------------------------- * ... */ ~HashWrapper() = default; /* -------------------------------------------------------------------------------------------- * ... */ HashWrapper & operator = (const HashWrapper & o) = default; /* -------------------------------------------------------------------------------------------- * ... */ HashWrapper & operator = (HashWrapper && o) = default; /* -------------------------------------------------------------------------------------------- * ... */ String ToString() noexcept { return m_Encoder.getHash(); } /* -------------------------------------------------------------------------------------------- * ... */ void Reset() noexcept { m_Encoder.reset(); } /* -------------------------------------------------------------------------------------------- * ... */ String Compute(const String & str) noexcept { return m_Encoder(str); } /* -------------------------------------------------------------------------------------------- * ... */ String GetHash() noexcept { return m_Encoder.getHash(); } /* -------------------------------------------------------------------------------------------- * ... */ void AddStr(const String & str) noexcept { m_Encoder.add(str.data(), str.length() * sizeof(String::value_type)); } private: // -------------------------------------------------------------------------------------------- T m_Encoder; }; } // Namespace:: SqMod #endif // _LIBRARY_CFG_HPP_