Moved NodeMonitor docs to Haiku Book.
This commit is contained in:
@@ -0,0 +1,392 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2013 Haiku Inc. All rights reserved.
|
||||||
|
* Distributed under the terms of the MIT License.
|
||||||
|
*
|
||||||
|
* Authors:
|
||||||
|
* Axel Dörfler, [email protected]
|
||||||
|
* John Scipione, [email protected]
|
||||||
|
* Ingo Weinhold, [email protected]
|
||||||
|
* Clemens Zeidler, [email protected]
|
||||||
|
*
|
||||||
|
* Corresponds to:
|
||||||
|
* headers/os/storage/NodeMonitor.h hrev45253
|
||||||
|
* src/kits/storage/NodeMonitor.cpp hrev45253
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\file NodeMonitor.h
|
||||||
|
\ingroup storage
|
||||||
|
\ingroup libbe
|
||||||
|
\brief Provides functions and constants for monitoring changes to a node.
|
||||||
|
|
||||||
|
The are three main node monitoring functions are watch_volume(),
|
||||||
|
watch_node() and stop_watching().
|
||||||
|
- watch_volume() starts watching a volume and sends a message
|
||||||
|
when a requested event occurs.
|
||||||
|
- watch_node() starts or stops watching a node, or watches for volumes
|
||||||
|
to be mounted and unmounted, and sends a message when an event occurs.
|
||||||
|
- stop_watching() stops monitoring a node or volume and no longer sends
|
||||||
|
messages.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\var B_STOP_WATCHING
|
||||||
|
|
||||||
|
Flag for watch_node(). Unsubscribe from watching a node.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\var B_WATCH_NAME
|
||||||
|
|
||||||
|
Flag for watch_volume() and watch_node(). Subscribe to watching for
|
||||||
|
change to the name of a node.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\var B_WATCH_STAT
|
||||||
|
|
||||||
|
Flag for watch_volume() and watch_node(). Subscribe to watching for
|
||||||
|
changes to the stat information of a node.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\var B_WATCH_ATTR
|
||||||
|
|
||||||
|
Flag for watch_volume() and watch_node(). Subscribe to watching for
|
||||||
|
changes to the attributes of a node.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\var B_WATCH_DIRECTORY
|
||||||
|
|
||||||
|
Flag for watch_node(). Subscribe to watching for changes to the contents
|
||||||
|
of a directory.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\var B_WATCH_ALL
|
||||||
|
|
||||||
|
Flag for watch_node(). Subscribe to watching for changes to all
|
||||||
|
information of a node except \c B_WATCH_MOUNT.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\var B_WATCH_MOUNT
|
||||||
|
|
||||||
|
Flag for watch_node(). Subscribe to watching for when a volume is mounted
|
||||||
|
or unmounted. You may prefer to use BVolumeRoster for volume watching
|
||||||
|
instead.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\var B_WATCH_INTERIM_STAT
|
||||||
|
|
||||||
|
\internal Implementation detail. Not in Be Book.
|
||||||
|
|
||||||
|
Flag for watch_node(). Subscribe to watching when a file is written to.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\def B_ENTRY_CREATED
|
||||||
|
|
||||||
|
\c B_NODE_MONITOR notification message "opcode", entry created.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\def B_ENTRY_REMOVED
|
||||||
|
|
||||||
|
\c B_NODE_MONITOR notification message "opcode", entry removed.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\def B_ENTRY_MOVED
|
||||||
|
|
||||||
|
\c B_NODE_MONITOR notification message "opcode", entry moved.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\def B_STAT_CHANGED
|
||||||
|
|
||||||
|
\c B_NODE_MONITOR notification message "opcode", stat changed.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\def B_ATTR_CHANGED
|
||||||
|
|
||||||
|
\c B_NODE_MONITOR notification message "opcode", attribute changed.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\def B_DEVICE_MOUNTED
|
||||||
|
|
||||||
|
\c B_NODE_MONITOR notification message "opcode", device mounted.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\def B_DEVICE_UNMOUNTED
|
||||||
|
|
||||||
|
\c B_NODE_MONITOR notification message "opcode", device unmounted.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\def B_ATTR_CREATED
|
||||||
|
|
||||||
|
\c B_ATTR_CHANGED notification message "cause", attribute created.
|
||||||
|
(Haiku only)
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\def B_ATTR_REMOVED
|
||||||
|
|
||||||
|
\c B_ATTR_CHANGED notification message "cause", attribute removed.
|
||||||
|
(Haiku only)
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\var B_STAT_MODE
|
||||||
|
|
||||||
|
\c B_STAT_CHANGED notification messages "fields" flag, mode changed.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\var B_STAT_UID
|
||||||
|
|
||||||
|
\c B_STAT_CHANGED notification messages "fields" flag, UID changed.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\var B_STAT_GID
|
||||||
|
|
||||||
|
\c B_STAT_CHANGED notification messages "fields" flag, GID changed.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\var B_STAT_SIZE
|
||||||
|
|
||||||
|
\c B_STAT_CHANGED notification messages "fields" flag, stat size changed.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\var B_STAT_ACCESS_TIME
|
||||||
|
|
||||||
|
\c B_STAT_CHANGED notification messages "fields" flag, access time
|
||||||
|
changed.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\var B_STAT_MODIFICATION_TIME
|
||||||
|
|
||||||
|
\c B_STAT_CHANGED notification messages "fields" flag, modification time
|
||||||
|
changed.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\var B_STAT_CREATION_TIME
|
||||||
|
|
||||||
|
\c B_STAT_CHANGED notification messages "fields" flag, creation time
|
||||||
|
changed.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\var B_STAT_CHANGE_TIME
|
||||||
|
|
||||||
|
\c B_STAT_CHANGED notification messages "fields" flag, time information
|
||||||
|
changed.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\var B_STAT_INTERIM_UPDATE
|
||||||
|
|
||||||
|
\internal Implementation detail. Not in Be Book.
|
||||||
|
|
||||||
|
\c B_STAT_CHANGED notification messages "fields" flag, file is written to.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\fn status_t watch_volume(dev_t volume, uint32 flags, BMessenger target)
|
||||||
|
\brief Subscribes \a target to watch node changes on \a volume.
|
||||||
|
|
||||||
|
Depending of \a flags the action performed by this function varies:
|
||||||
|
- \a flags contains at least one of \c B_WATCH_NAME, \c B_WATCH_STAT,
|
||||||
|
or <tt>B_WATCH_ATTR</tt>: The target is subscribed to watching the specified
|
||||||
|
aspects of any node on the volume.
|
||||||
|
|
||||||
|
\a flags may include:
|
||||||
|
- \c B_WATCH_NAME
|
||||||
|
- \c B_WATCH_STAT
|
||||||
|
- \c B_WATCH_ATTR
|
||||||
|
|
||||||
|
\c B_WATCH_VOLUME flag is assumed.
|
||||||
|
|
||||||
|
\param volume dev_t referring to the volume to be watched.
|
||||||
|
\param flags Flags indicating the actions to be performed.
|
||||||
|
\param target Messenger referring to the target. Must be valid.
|
||||||
|
|
||||||
|
\return A status code.
|
||||||
|
\retval B_OK Everything went fine.
|
||||||
|
\retval B_BAD_VALUE \a flags did not include one of \c B_WATCH_NAME,
|
||||||
|
\c B_WATCH_STAT, or \c B_WATCH_ATTR.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\fn status_t watch_volume(dev_t volume, uint32 flags,
|
||||||
|
const BHandler *handler, const BLooper *looper)
|
||||||
|
\brief Subscribes \a handler or \a looper to watch node changes on
|
||||||
|
\a volume.
|
||||||
|
|
||||||
|
Depending of \a flags the action performed by this function varies:
|
||||||
|
- \a flags contains at least one of \c B_WATCH_NAME, \c B_WATCH_STAT,
|
||||||
|
or <tt>B_WATCH_ATTR</tt>: The target is subscribed to watching the specified
|
||||||
|
aspects of any node on the volume.
|
||||||
|
|
||||||
|
\a flags may include:
|
||||||
|
- \c B_WATCH_NAME
|
||||||
|
- \c B_WATCH_STAT
|
||||||
|
- \c B_WATCH_ATTR
|
||||||
|
|
||||||
|
\c B_WATCH_VOLUME flag is assumed.
|
||||||
|
|
||||||
|
\param volume dev_t referring to the volume to be watched.
|
||||||
|
\param flags Flags indicating the actions to be performed.
|
||||||
|
\param handler The target \a handler. May be \c NULL, if \a looper is not
|
||||||
|
\c NULL. Then the preferred handler of the looper is targeted.
|
||||||
|
\param looper The target \a looper. May be \c NULL, if \a handler is not
|
||||||
|
\c NULL. Then the handler's looper is the target looper.
|
||||||
|
|
||||||
|
\return A status code.
|
||||||
|
\retval B_OK Everything went fine.
|
||||||
|
\retval B_BAD_VALUE \a flags did not include one of \c B_WATCH_NAME,
|
||||||
|
\c B_WATCH_STAT, or \c B_WATCH_ATTR.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\fn status_t watch_node(const node_ref *node, uint32 flags,
|
||||||
|
BMessenger target)
|
||||||
|
\brief Subscribes or unsubscribes \a target to node and/or mount watching.
|
||||||
|
|
||||||
|
Depending of \a flags the action performed by this function varies:
|
||||||
|
- \a flags is 0: The target is unsubscribed from watching the node.
|
||||||
|
\a node must not be \c NULL in this case.
|
||||||
|
- \a flags contains \c B_WATCH_MOUNT: The target is subscribed to mount
|
||||||
|
watching.
|
||||||
|
- \a flags contains at least one of \c B_WATCH_NAME, \c B_WATCH_STAT,
|
||||||
|
\c B_WATCH_ATTR, or <tt>B_WATCH_DIRECTORY</tt>: The target is subscribed to
|
||||||
|
watching the specified aspects of the node. \a node must not be \c NULL
|
||||||
|
in this case.
|
||||||
|
|
||||||
|
\a flags may include:
|
||||||
|
- \c B_STOP_WATCHING
|
||||||
|
|
||||||
|
or one or more of the following:
|
||||||
|
- \c B_WATCH_NAME
|
||||||
|
- \c B_WATCH_STAT
|
||||||
|
- \c B_WATCH_ATTR
|
||||||
|
- \c B_WATCH_DIRECTORY
|
||||||
|
- \c B_WATCH_ALL
|
||||||
|
- \c B_WATCH_MOUNT
|
||||||
|
|
||||||
|
Note, that the latter two cases are not mutual exclusive, i.e. mount and
|
||||||
|
node watching can be requested with a single call.
|
||||||
|
|
||||||
|
\param node node_ref referring to the node to be watched. May be \c NULL,
|
||||||
|
if only mount watching is requested.
|
||||||
|
\param flags Flags indicating the actions to be performed.
|
||||||
|
\param target Messenger referring to the target. Must be valid.
|
||||||
|
|
||||||
|
\return \c B_OK if everything went fine, an error code otherwise.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\fn status_t watch_node(const node_ref *node, uint32 flags,
|
||||||
|
const BHandler *handler, const BLooper *looper)
|
||||||
|
\brief Subscribes or unsubscribes \a handler or \a looper to node and/or
|
||||||
|
mount watching.
|
||||||
|
|
||||||
|
Depending of \a flags the action performed by this function varies:
|
||||||
|
- \a flags is 0: The target is unsubscribed from watching the node.
|
||||||
|
\a node must not be \c NULL in this case.
|
||||||
|
- \a flags contains \c B_WATCH_MOUNT: The target is subscribed to mount
|
||||||
|
watching.
|
||||||
|
- \a flags contains at least one of \c B_WATCH_NAME, \c B_WATCH_STAT,
|
||||||
|
\c B_WATCH_ATTR, or <tt>B_WATCH_DIRECTORY</tt>: The target is subscribed to
|
||||||
|
watching the specified aspects of the node. \a node must not be \c NULL
|
||||||
|
in this case.
|
||||||
|
|
||||||
|
\a flags may include:
|
||||||
|
- \c B_STOP_WATCHING
|
||||||
|
|
||||||
|
or one or more of the following:
|
||||||
|
- \c B_WATCH_NAME
|
||||||
|
- \c B_WATCH_STAT
|
||||||
|
- \c B_WATCH_ATTR
|
||||||
|
- \c B_WATCH_DIRECTORY
|
||||||
|
- \c B_WATCH_ALL
|
||||||
|
- \c B_WATCH_MOUNT
|
||||||
|
|
||||||
|
Note, that the latter two cases are not mutual exlusive, i.e. mount and
|
||||||
|
node watching can be requested with a single call.
|
||||||
|
|
||||||
|
\param node node_ref referring to the node to be watched. May be \c NULL,
|
||||||
|
if only mount watching is requested.
|
||||||
|
\param flags Flags indicating the actions to be performed.
|
||||||
|
\param handler The target handler. May be \c NULL, if \a looper is not
|
||||||
|
\c NULL. Then the preferred handler of the looper is targeted.
|
||||||
|
\param looper The target looper. May be \c NULL, if \a handler is not
|
||||||
|
\c NULL. Then the handler's looper is the target looper.
|
||||||
|
|
||||||
|
\return \c B_OK if everything went fine, an error code otherwise.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\fn status_t stop_watching(BMessenger target)
|
||||||
|
\brief Unsubscribes \a target from node and mount monitoring.
|
||||||
|
|
||||||
|
\param target Messenger referring to the target. Must be valid.
|
||||||
|
|
||||||
|
\return \c B_OK if everything went fine, an error code otherwise.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\fn status_t stop_watching(const BHandler *handler, const BLooper *looper)
|
||||||
|
\brief Unsubscribes \a target from node and mount monitoring.
|
||||||
|
|
||||||
|
\param handler The target handler. May be \c NULL, if \a looper is not
|
||||||
|
\c NULL. Then the preferred handler of the looper is targeted.
|
||||||
|
\param looper The target looper. May be \c NULL, if \a handler is not
|
||||||
|
\c NULL. Then the handler's looper is the target looper.
|
||||||
|
|
||||||
|
\return \c B_OK if everything went fine, an error code otherwise.
|
||||||
|
*/
|
||||||
@@ -9,11 +9,10 @@
|
|||||||
#include <StorageDefs.h>
|
#include <StorageDefs.h>
|
||||||
|
|
||||||
|
|
||||||
/* Flags for the watch_node() call.
|
// Flags for the watch_node() call.
|
||||||
*
|
|
||||||
* Note that B_WATCH_MOUNT is NOT included in B_WATCH_ALL.
|
// Note that B_WATCH_MOUNT is NOT included in B_WATCH_ALL.
|
||||||
* You may prefer to use BVolumeRoster for volume watching.
|
// You may prefer to use BVolumeRoster for volume watching.
|
||||||
*/
|
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
B_STOP_WATCHING = 0x0000,
|
B_STOP_WATCHING = 0x0000,
|
||||||
@@ -28,11 +27,10 @@ enum {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/* The "opcode" field of the B_NODE_MONITOR notification message you get.
|
// The "opcode" field of the B_NODE_MONITOR notification message you get.
|
||||||
*
|
|
||||||
* The presence and meaning of the other fields in that message specifying what
|
// The presence and meaning of the other fields in that message specifying what
|
||||||
* exactly caused the notification depend on this value.
|
// exactly caused the notification depend on this value.
|
||||||
*/
|
|
||||||
|
|
||||||
#define B_ENTRY_CREATED 1
|
#define B_ENTRY_CREATED 1
|
||||||
#define B_ENTRY_REMOVED 2
|
#define B_ENTRY_REMOVED 2
|
||||||
@@ -67,11 +65,10 @@ enum {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/* C++ callable Prototypes
|
// C++ callable Prototypes
|
||||||
*
|
|
||||||
* Since you are not able to parse BMessages from plain C, there is no
|
// Since you are not able to parse BMessages from plain C, there is no
|
||||||
* API exported.
|
// API exported.
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(__cplusplus) && !defined(_KERNEL_MODE)
|
#if defined(__cplusplus) && !defined(_KERNEL_MODE)
|
||||||
|
|
||||||
@@ -95,6 +92,6 @@ extern status_t watch_node(const node_ref *node, uint32 flags,
|
|||||||
extern status_t stop_watching(BMessenger target);
|
extern status_t stop_watching(BMessenger target);
|
||||||
extern status_t stop_watching(const BHandler *handler, const BLooper *looper = NULL);
|
extern status_t stop_watching(const BHandler *handler, const BLooper *looper = NULL);
|
||||||
|
|
||||||
#endif /* __cplusplus && !_KERNEL_MODE */
|
#endif // __cplusplus && !_KERNEL_MODE
|
||||||
|
|
||||||
#endif /* _NODE_MONITOR_H*/
|
#endif // _NODE_MONITOR_H
|
||||||
|
|||||||
@@ -22,19 +22,7 @@
|
|||||||
// TODO: Tests!
|
// TODO: Tests!
|
||||||
|
|
||||||
|
|
||||||
// watch_volume
|
// Subscribes a target to watch node changes on a volume.
|
||||||
/*! \brief Subscribes a target to watch node changes on a volume.
|
|
||||||
|
|
||||||
Depending of \a flags the action performed by this function varies:
|
|
||||||
- \a flags contains at least one of \c B_WATCH_NAME, \c B_WATCH_STAT,
|
|
||||||
or \c B_WATCH_ATTR: The target is subscribed to
|
|
||||||
watching the specified aspects of any node on the volume.
|
|
||||||
|
|
||||||
\param volume dev_t referring to the volume to be watched.
|
|
||||||
\param flags Flags indicating the actions to be performed.
|
|
||||||
\param target Messenger referring to the target. Must be valid.
|
|
||||||
\return \c B_OK, if everything went fine, another error code otherwise.
|
|
||||||
*/
|
|
||||||
status_t
|
status_t
|
||||||
watch_volume(dev_t volume, uint32 flags, BMessenger target)
|
watch_volume(dev_t volume, uint32 flags, BMessenger target)
|
||||||
{
|
{
|
||||||
@@ -58,29 +46,7 @@ watch_volume(dev_t volume, uint32 flags, const BHandler *handler,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// watch_node
|
// Subscribes or unsubscribes a target to node and/or mount watching.
|
||||||
/*! \brief Subscribes a target to node and/or mount watching, or unsubscribes
|
|
||||||
it from node watching.
|
|
||||||
|
|
||||||
Depending of \a flags the action performed by this function varies:
|
|
||||||
- \a flags is \c 0: The target is unsubscribed from watching the node.
|
|
||||||
\a node must not be \c NULL in this case.
|
|
||||||
- \a flags contains \c B_WATCH_MOUNT: The target is subscribed to mount
|
|
||||||
watching.
|
|
||||||
- \a flags contains at least one of \c B_WATCH_NAME, \c B_WATCH_STAT,
|
|
||||||
\c B_WATCH_ATTR, or \c B_WATCH_DIRECTORY: The target is subscribed to
|
|
||||||
watching the specified aspects of the node. \a node must not be \c NULL
|
|
||||||
in this case.
|
|
||||||
|
|
||||||
Note, that the latter two cases are not mutual exlusive, i.e. mount and
|
|
||||||
node watching can be requested with a single call.
|
|
||||||
|
|
||||||
\param node node_ref referring to the node to be watched. May be \c NULL,
|
|
||||||
if only mount watching is requested.
|
|
||||||
\param flags Flags indicating the actions to be performed.
|
|
||||||
\param target Messenger referring to the target. Must be valid.
|
|
||||||
\return \c B_OK, if everything went fine, another error code otherwise.
|
|
||||||
*/
|
|
||||||
status_t
|
status_t
|
||||||
watch_node(const node_ref *node, uint32 flags, BMessenger target)
|
watch_node(const node_ref *node, uint32 flags, BMessenger target)
|
||||||
{
|
{
|
||||||
@@ -122,32 +88,9 @@ watch_node(const node_ref *node, uint32 flags, BMessenger target)
|
|||||||
return B_OK;
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
// watch_node
|
|
||||||
/*! \brief Subscribes a target to node and/or mount watching, or unsubscribes
|
|
||||||
it from node watching.
|
|
||||||
|
|
||||||
Depending of \a flags the action performed by this function varies:
|
// Subscribes or unsubscribes a handler or looper to node and/or mount
|
||||||
- \a flags is \c 0: The target is unsubscribed from watching the node.
|
// watching.
|
||||||
\a node must not be \c NULL in this case.
|
|
||||||
- \a flags contains \c B_WATCH_MOUNT: The target is subscribed to mount
|
|
||||||
watching.
|
|
||||||
- \a flags contains at least one of \c B_WATCH_NAME, \c B_WATCH_STAT,
|
|
||||||
\c B_WATCH_ATTR, or \c B_WATCH_DIRECTORY: The target is subscribed to
|
|
||||||
watching the specified aspects of the node. \a node must not be \c NULL
|
|
||||||
in this case.
|
|
||||||
|
|
||||||
Note, that the latter two cases are not mutual exlusive, i.e. mount and
|
|
||||||
node watching can be requested with a single call.
|
|
||||||
|
|
||||||
\param node node_ref referring to the node to be watched. May be \c NULL,
|
|
||||||
if only mount watching is requested.
|
|
||||||
\param flags Flags indicating the actions to be performed.
|
|
||||||
\param handler The target handler. May be \c NULL, if \a looper is not
|
|
||||||
\c NULL. Then the preferred handler of the looper is targeted.
|
|
||||||
\param looper The target looper. May be \c NULL, if \a handler is not
|
|
||||||
\c NULL. Then the handler's looper is the target looper.
|
|
||||||
\return \c B_OK, if everything went fine, another error code otherwise.
|
|
||||||
*/
|
|
||||||
status_t
|
status_t
|
||||||
watch_node(const node_ref *node, uint32 flags, const BHandler *handler,
|
watch_node(const node_ref *node, uint32 flags, const BHandler *handler,
|
||||||
const BLooper *looper)
|
const BLooper *looper)
|
||||||
@@ -156,10 +99,7 @@ watch_node(const node_ref *node, uint32 flags, const BHandler *handler,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*! \brief Unsubscribes a target from node and mount monitoring.
|
// Unsubscribes a target from node and mount monitoring.
|
||||||
\param target Messenger referring to the target. Must be valid.
|
|
||||||
\return \c B_OK, if everything went fine, another error code otherwise.
|
|
||||||
*/
|
|
||||||
status_t
|
status_t
|
||||||
stop_watching(BMessenger target)
|
stop_watching(BMessenger target)
|
||||||
{
|
{
|
||||||
@@ -174,13 +114,7 @@ stop_watching(BMessenger target)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*! \brief Unsubscribes a target from node and mount monitoring.
|
// Unsubscribes a target from node and mount monitoring.
|
||||||
\param handler The target handler. May be \c NULL, if \a looper is not
|
|
||||||
\c NULL. Then the preferred handler of the looper is targeted.
|
|
||||||
\param looper The target looper. May be \c NULL, if \a handler is not
|
|
||||||
\c NULL. Then the handler's looper is the target looper.
|
|
||||||
\return \c B_OK, if everything went fine, another error code otherwise.
|
|
||||||
*/
|
|
||||||
status_t
|
status_t
|
||||||
stop_watching(const BHandler *handler, const BLooper *looper)
|
stop_watching(const BHandler *handler, const BLooper *looper)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user