xref: /haiku/src/apps/musiccollection/QueryMonitor.h (revision e81a954787e50e56a7f06f72705b7859b6ab06d1)
1 /*
2  * Copyright 2011, Haiku, Inc. All rights reserved.
3  * Distributed under the terms of the MIT License.
4  *
5  * Authors:
6  *		Clemens Zeidler <haiku@clemens-zeidler.de>
7  */
8 #ifndef QUERY_MONITOR_H
9 #define QUERY_MONITOR_H
10 
11 
12 #include <Query.h>
13 
14 #include <ObjectList.h>
15 
16 #include "FileMonitor.h"
17 
18 
19 /*! Handle live query messages, query reader messages, and node monitor messages
20 and dispatch them to a EntryViewInterface. */
21 class QueryHandler : public FileMonitor {
22 public:
23 								QueryHandler(EntryViewInterface* listener);
24 
25 			void				MessageReceived(BMessage* message);
26 };
27 
28 
29 typedef BObjectList<BQuery> BQueryList;
30 
31 
32 class QueryReader : public ReadThread {
33 public:
34 								QueryReader(QueryHandler* handler);
35 								~QueryReader();
36 
37 			bool				AddQuery(BQuery* query);
38 			void				Reset();
39 
40 protected:
41 			bool				ReadNextEntry(entry_ref& entry);
42 
43 private:
44 			BQueryList			fQueries;
45 			BQueryList			fLiveQueries;
46 };
47 
48 
49 #endif // QUERY_MONITOR_H
50