⛏️ index : haiku.git

/*
 * Copyright 2011, Haiku, Inc. All rights reserved.
 * Distributed under the terms of the MIT License.
 *
 * Authors:
 *		Clemens Zeidler <haiku@clemens-zeidler.de>
 */
#ifndef QUERY_MONITOR_H
#define QUERY_MONITOR_H


#include <Query.h>

#include <ObjectList.h>

#include "FileMonitor.h"


/*! Handle live query messages, query reader messages, and node monitor messages
and dispatch them to a EntryViewInterface. */
class QueryHandler : public FileMonitor {
public:
								QueryHandler(EntryViewInterface* listener);

			void				MessageReceived(BMessage* message);
};


typedef BObjectList<BQuery> BQueryList;


class QueryReader : public ReadThread {
public:
								QueryReader(QueryHandler* handler);
								~QueryReader();

			bool				AddQuery(BQuery* query);
			void				Reset();

protected:
			bool				ReadNextEntry(entry_ref& entry);
		
private:
			BQueryList			fQueries;
			BQueryList			fLiveQueries;
};


#endif // QUERY_MONITOR_H