mirror of https://github.com/PCSX2/pcsx2.git
Remove HashTools::IHashable/CommonComparisonClass
These are no longer used.
This commit is contained in:
parent
abd605a066
commit
0c1087a2e5
|
@ -359,86 +359,5 @@ public:
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// This class contains comparison methods for most fundamental types; and is used by the CommonHashMap class.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// The predicates of this class do standard equality comparisons between fundamental C/STL types such as
|
|
||||||
/// <c>int, float</c>, and <c>std::string.</c> Usefulness of this class outside the <see cref="CommonHashMap"/>
|
|
||||||
/// class is limited.
|
|
||||||
/// </remarks>
|
|
||||||
/// <seealso cref="CommonHashMap">
|
|
||||||
struct CommonComparisonClass
|
|
||||||
{
|
|
||||||
bool operator()(const char* s1, const char* s2) const
|
|
||||||
{
|
|
||||||
return (s1 == s2) || (s1 && s2 && strcmp(s1, s2) == 0);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// An interface for classes that implement hashmap functionality.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// This class provides interface methods for getting th hashcode of a class and checking for object
|
|
||||||
/// equality. It's general intent is for use in situations where you have to store *non-similar objects*
|
|
||||||
/// in a single unified hash map. As all object instances derive from this type, it allows the equality
|
|
||||||
/// comparison to use typeid or dynamic casting to check for type similarity, and then use more detailed
|
|
||||||
/// equality checks for similar types.
|
|
||||||
/// </remarks>
|
|
||||||
class IHashable
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
/// Obligatory Virtual destructor mess!
|
|
||||||
virtual ~IHashable() {};
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Your basic no-thrills equality comparison; using a pointer comparison by default.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// This method uses a pointer comparison by default, which is the only way to really compare objects
|
|
||||||
/// of unrelated types or of derrived types. When implementing this method, you may want to use typeid comparisons
|
|
||||||
/// if you want derived types to register as being non-equal, or <c>dynamic_cast</c> for a more robust
|
|
||||||
/// base-class comparison (illustrated in the example below).
|
|
||||||
/// Note:
|
|
||||||
/// It's recommended important to always do a pointer comparison as the first step of any object equality check.
|
|
||||||
/// It is fast and easy, and 100% reliable.
|
|
||||||
/// </remarks>
|
|
||||||
/// <example>
|
|
||||||
/// Performing non-pointer comparisons:
|
|
||||||
/// <code>
|
|
||||||
/// class Hasher : IHashable
|
|
||||||
/// {
|
|
||||||
/// int someValue;
|
|
||||||
///
|
|
||||||
/// virtual bool Equals( const IHashable& right ) const
|
|
||||||
/// {
|
|
||||||
/// // Use pointer comparison first since it's fast and accurate:
|
|
||||||
/// if( &right == this ) return true;
|
|
||||||
///
|
|
||||||
/// Hasher* them = dynamic_cast<Hasher*>( right );
|
|
||||||
/// if( them == NULL ) return false;
|
|
||||||
/// return someValue == them->SomeValue;
|
|
||||||
/// }
|
|
||||||
/// }
|
|
||||||
/// </code>
|
|
||||||
/// </example>
|
|
||||||
virtual bool Equals( const IHashable& right ) const
|
|
||||||
{
|
|
||||||
return ( &right == this ); // pointer comparison.
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Returns a hash value for this object; by default the hash of its pointer address.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// </remarks>
|
|
||||||
/// <seealso cref="HashMap"/>
|
|
||||||
virtual hash_key_t GetHashCode() const
|
|
||||||
{
|
|
||||||
return GetCommonHash( this );
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue