1#ifndef LPC_INDEX_H1110724080_INCLUDE_GUARD_
2#define LPC_INDEX_H1110724080_INCLUDE_GUARD_
36#include <tqvaluelist.h>
40#include <indexlib/index.h>
41#include <indexlib/lockfile.h>
52class KMMsgIndex :
public TQObject {
56 explicit KMMsgIndex( TQObject* parent );
67 bool startQuery( KMSearch* );
73 bool stopQuery( KMSearch* );
78 std::vector<TQ_UINT32> simpleSearch( TQString,
bool* )
const;
87 bool isIndexable( KMFolder* folder )
const;
95 bool isIndexed( KMFolder* folder )
const;
100 bool isEnabled()
const {
return mState != s_disabled; }
111 void setEnabled(
bool );
119 void setIndexingEnabled( KMFolder*,
bool );
133 void removeSearch( TQObject* );
135 void continueCreation();
137 void slotAddMessage( KMFolder*, TQ_UINT32 message );
138 void slotRemoveMessage( KMFolder*, TQ_UINT32 message );
140 static TQString defaultPath();
142 bool canHandleQuery(
const KMSearchPattern* )
const;
143 int addMessage( TQ_UINT32 );
144 void removeMessage( TQ_UINT32 );
146 void scheduleAction();
147 bool creating()
const;
160 std::vector<TQ_UINT32> mPendingMsgs;
161 std::vector<KMFolder*> mPendingFolders;
162 std::vector<TQ_UINT32> mAddedMsgs;
163 std::vector<TQ_UINT32> mRemovedMsgs;
164 std::vector<TQ_UINT32> mExisting;
175 unsigned mMaintenanceCount;
182 indexlib::detail::lockfile mLockFile;
186 indexlib::index* mIndex;
188 std::set<KMFolder*> mOpenedFolders;
189 std::vector<Search*> mSearches;
190 TQCString mIndexPath;
196class KMMsgIndex::Search :
public TQObject {
200 explicit Search( KMSearch* s );
202 KMSearch* search()
const {
return mSearch; }
204 void found( TQ_UINT32 );
205 void finished(
bool );
215 KMSearchPattern* mResidual;
216 std::vector<TQ_UINT32> mValues;
217 enum { s_none = 0, s_starting, s_emitting, s_emitstopped, s_done } mState;
This class is an abstraction of a search over messages.
Incoming mail is sent through the list of mail filter rules before it is placed in the associated mai...