* Copyright 2007-2013, Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License.
*/
#ifndef _PATH_MONITOR_H
#define _PATH_MONITOR_H
#include <NodeMonitor.h>
#define B_WATCH_RECURSIVELY 0x0100
#define B_WATCH_FILES_ONLY 0x0200
#define B_WATCH_DIRECTORIES_ONLY 0x0400
#define B_PATH_MONITOR '_PMN'
namespace BPrivate {
class BPathMonitor {
public:
class BWatchingInterface;
public:
static status_t StartWatching(const char* path, uint32 flags,
const BMessenger& target);
static status_t StopWatching(const char* path,
const BMessenger& target);
static status_t StopWatching(const BMessenger& target);
static void SetWatchingInterface(
BWatchingInterface* watchingInterface);
private:
BPathMonitor();
~BPathMonitor();
static status_t _InitIfNeeded();
static void _Init();
};
*/
class BPathMonitor::BWatchingInterface {
public:
BWatchingInterface();
virtual ~BWatchingInterface();
virtual status_t WatchNode(const node_ref* node, uint32 flags,
const BMessenger& target);
virtual status_t WatchNode(const node_ref* node, uint32 flags,
const BHandler* handler,
const BLooper* looper = NULL);
virtual status_t StopWatching(const BMessenger& target);
virtual status_t StopWatching(const BHandler* handler,
const BLooper* looper = NULL);
};
}
using BPrivate::BPathMonitor;
#endif