15#ifndef HASHED_STRING_H
16#define HASHED_STRING_H
19#include<tqdatastream.h>
22#include <ext/hash_map>
38 inline size_t hash()
const {
42 TQString str()
const {
47 if ( m_hash != rhs.m_hash )
49 return m_str == rhs.m_str;
54 if ( m_hash < rhs.m_hash )
56 if ( m_hash == rhs.m_hash )
57 return m_str < rhs.m_str;
61 static size_t hashString(
const TQString& str );
69 friend TQDataStream& operator << ( TQDataStream& stream,
const HashedString& str );
70 friend TQDataStream& operator >> ( TQDataStream& stream,
HashedString& str );
73TQDataStream& operator << ( TQDataStream& stream,
const HashedString& str );
75TQDataStream& operator >> ( TQDataStream& stream,
HashedString& str );
77class HashedStringSetData;
110 void read( TQDataStream& stream );
111 void write( TQDataStream& stream )
const;
113 std::string print()
const;
118 void makeDataPrivate();
119 TDESharedPtr<HashedStringSetData> m_data;
137 typedef std::set<size_t> ItemSet;
139 void enableSet(
size_t id );
140 bool isDisabled(
size_t id )
const;
141 void disableSet(
size_t id );
142 void removeSet(
size_t id );
148 typedef __gnu_cxx::hash_map<HashedString, ItemSet> GroupMap;
149 typedef __gnu_cxx::hash_map<size_t, size_t> SizeMap;
Used to find all registered HashedStringSet's that contain all strings given to findGroups(....
This is a reference-counting string-set optimized for fast lookup of hashed strings.
bool operator[](const HashedString &rhs) const
bool operator<=(const HashedStringSet &rhs) const
intersection-test Returns true if all files that are part of this set are also part of the given set
A simple class that stores a string together with it's appropriate hash-key.
bool operator<(const HashedString &rhs) const
Does not compare alphabetically, uses the hash-key for ordering.