* Copyright 2003-2016 Haiku Inc. All rights reserved.
* Distributed under the terms of the MIT License.
*/
#ifndef _NODE_MONITOR_H
#define _NODE_MONITOR_H
#include <StorageDefs.h>
enum {
B_STOP_WATCHING = 0x0000,
B_WATCH_NAME = 0x0001,
B_WATCH_STAT = 0x0002,
B_WATCH_ATTR = 0x0004,
B_WATCH_DIRECTORY = 0x0008,
B_WATCH_ALL = 0x000f,
B_WATCH_MOUNT = 0x0010,
B_WATCH_INTERIM_STAT = 0x0020,
B_WATCH_CHILDREN = 0x0040
};
#define B_ENTRY_CREATED 1
#define B_ENTRY_REMOVED 2
#define B_ENTRY_MOVED 3
#define B_STAT_CHANGED 4
#define B_ATTR_CHANGED 5
#define B_DEVICE_MOUNTED 6
#define B_DEVICE_UNMOUNTED 7
#define B_ATTR_CREATED 1
#define B_ATTR_REMOVED 2
enum {
B_STAT_MODE = 0x0001,
B_STAT_UID = 0x0002,
B_STAT_GID = 0x0004,
B_STAT_SIZE = 0x0008,
B_STAT_ACCESS_TIME = 0x0010,
B_STAT_MODIFICATION_TIME = 0x0020,
B_STAT_CREATION_TIME = 0x0040,
B_STAT_CHANGE_TIME = 0x0080,
B_STAT_INTERIM_UPDATE = 0x1000
};
#if defined(__cplusplus) && !defined(_KERNEL_MODE)
#include <Node.h>
#include <Messenger.h>
class BLooper;
class BHandler;
extern status_t watch_volume(dev_t volume, uint32 flags, BMessenger target);
extern status_t watch_volume(dev_t volume, uint32 flags,
const BHandler* handler, const BLooper* looper = NULL);
extern status_t watch_node(const node_ref* node, uint32 flags,
BMessenger target);
extern status_t watch_node(const node_ref* node, uint32 flags,
const BHandler* handler, const BLooper* looper = NULL);
extern status_t stop_watching(BMessenger target);
extern status_t stop_watching(const BHandler* handler, const BLooper* looper = NULL);
#endif
#endif