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