NAME
ZooKeeper::Dispatcher
DESCRIPTION
A parent class for event dispatchers to inherit from. Dispatchers directly handle callbacks for ZooKeeper the C library, and manage the lifecycle of ZooKeeper::Watcher's.
ATTRIBUTES
channel
A ZooKeeper::Channel, used for sending event data from ZooKeeper C callbacks to perl.
watchers
A hashref of all live watchers.
dispatch_cb
The perl subroutine reference to be invoked whenever the dispatcher is notified of an event. Usually just calls dispatch_event.
ignore_session_events
Controls whether watchers should be triggered for session events.
METHODS
recv_event
Receive event data from the channel. Returns undef if no event data is available.
create_watcher
Create a new ZooKeeper::Watcher. This is the preferred way to instantiate watchers.
my
$watcher
=
$dispatcher
->create_watcher(
$path
,
$cb
,
%args
);
REQUIRED
$path
- The path of the node to register the watcher on
REQUIRED
$cb
- A perl subroutine reference to be invoked
with
event data
%args
REQUIRED type - The type of event the watcher is
for
(e.g get_children,
exists
)
dispatch_event
Read an event from the channel, and execute the corresponding watcher callback.
trigger_event
Manually trigger an event on a ZooKeeper::Watch.
wait
Synchronously dispatch one event. Returns the event hashref the watcher was called with. Can optionally be passed a timeout(specified in seconds), which will cause wait to return undef if it does not complete in the specified time.
my
$event
=
$zk
->
wait
(
$seconds
)
OPTIONAL
$seconds