NAME

BusyBird::Watcher - interface for watcher objects

SYNOPSIS

    my $watcher = $timeline->watch_unacked_counts(
        assumed => { total => 0 },
        callback => sub { ... }
    );
    
    $watcher->active;   ## returns true if the $watcher is active
    $watcher->cancel(); ## cancels the $watcher

DESCRIPTION

This is an interface (or role) class for watcher objects. A watcher is something that represents a callback registered somewhere. Users can use a watcher to cancel (i.e. unregister) the callback.

BusyBird::Watcher does not implement any method. Implementations of BusyBird::Watcher must be a subclass of BusyBird::Watcher and implement the following methods.

OBJECT METHODS

$is_active = $watcher->active()

Returns true if the $watcher is active. Returns false otherwise.

An active watcher is the one whose callback can be called. On the other hand, the callback of an inactive watcher will never be called.

$watcher->cancel()

Cancels the $watcher, that is, makes it inactive.

If $watcher is already inactive, it stays inactive.

AUTHOR

Toshio Ito <toshioito [at] cpan.org>