Async-Selector
view release on metacpan or search on metacpan
lib/Async/Selector/Watcher.pm view on Meta::CPAN
package Async::Selector::Watcher;
use strict;
use warnings;
use Scalar::Util qw(weaken);
use Carp;
sub new {
my ($class, $selector, $conditions) = @_;
my $self = bless {
selector => $selector,
conditions => $conditions,
check_all => 0,
}, $class;
weaken($self->{selector});
return $self;
}
sub detach {
my ($self) = @_;
$self->{selector} = undef;
}
sub get_check_all {
my ($self) = @_;
return $self->{check_all};
}
sub set_check_all {
my ($self, $check_all) = @_;
$self->{check_all} = $check_all;
}
sub cancel {
my ($self) = @_;
return $self if not defined($self->{selector});
my $selector = $self->{selector};
$self->detach();
$selector->cancel($self);
return $self;
}
sub conditions {
my ($self) = @_;
return %{$self->{conditions}};
}
sub resources {
my ($self) = @_;
return keys %{$self->{conditions}};
}
sub active {
my ($self) = @_;
return defined($self->{selector});
}
our $VERSION = '1.03';
1;
=pod
=head1 NAME
Async::Selector::Watcher - representation of resource watch in Async::Selector
=head1 VERSION
1.03
=head1 SYNOPSIS
use Async::Selector;
( run in 1.942 second using v1.01-cache-2.11-cpan-39bf76dae61 )