AnyEvent-Connection
view release on metacpan or search on metacpan
lib/AnyEvent/Connection/Raw.pm view on Meta::CPAN
$self->{h} and $self->{h}->destroy;
delete $self->{h};
%$self = ();
return;
}
sub push_write {
my $self = shift;
$self->{h} or return;
for (@_) {
if (!ref and utf8::is_utf8($_)) {
$_ = $_;
utf8::encode $_;
}
}
$self->{h}->push_write(@_);
warn ">> @_ " if $self->{debug};
}
sub push_read {
my $self = shift;
my $cb = pop;
$self->{h} or return;
lib/AnyEvent/Connection/Raw.pm view on Meta::CPAN
sub unshift_read {
my $self = shift;
$self->{h} or return;
$self->{h}->unshift_read(@_);
}
sub say {
my $self = shift;
$self->{h} or return;
for (@_) {
if (!ref and utf8::is_utf8($_)) {
$_ = $_;
utf8::encode $_;
}
}
$self->{h}->push_write("@_$self->{nl}");
warn ">> @_ " if $self->{debug};
return;
}
*reply = \&say;
sub recv {
my ($self,$bytes,%args) = @_;
lib/AnyEvent/Connection/Raw.pm view on Meta::CPAN
substr( $self->{h}{rbuf}, 0, 1 ) = '' if substr( $self->{h}{rbuf}, 0, 1 ) eq "\012";
delete $self->{waitingcb}{int $args{cb}};
shift; (delete $args{cb})->(@_);
%args = ();
} );
}
sub command {
my $self = shift;
my $write = shift;
if (utf8::is_utf8($write)) {
utf8::encode $write;
}
my %args = @_;
$args{cb} or croak "no cb for command at @{[ (caller)[1,2] ]}";
$self->{h} or return $args{cb}(undef,"Not connected"),%args = ();
weaken( $self->{waitingcb}{int $args{cb}} = $args{cb} );
#my $i if 0;
#my $c = ++$i;
warn ">> $write " if $self->{debug};
$self->{h}->push_write("$write$self->{nl}");
( run in 0.519 second using v1.01-cache-2.11-cpan-49f99fa48dc )