AnyEvent-XMPP
view release on metacpan or search on metacpan
lib/AnyEvent/XMPP/SimpleConnection.pm view on Meta::CPAN
on_read => sub {
my ($hdl) = @_;
my $data = $hdl->rbuf;
$hdl->rbuf = '';
$data = decode_utf8 $data;
$self->handle_data (\$data);
},
);
$self->connected
}, sub {
$timeout
};
return 1;
}
sub connected {
# subclass responsibility
}
sub send_buffer_empty {
# subclass responsibility
}
sub block_until_send_buffer_empty {
# subclass responsibility
}
sub debug_wrote_data {
# subclass responsibility
}
sub end_sockets {
my ($self) = @_;
delete $self->{handle};
}
sub write_data {
my ($self, $data) = @_;
$self->{handle}->push_write (encode_utf8 ($data));
$self->debug_wrote_data (encode_utf8 ($data));
$self->{handle}->on_drain (sub {
$self->send_buffer_empty;
});
}
sub enable_ssl {
my ($self) = @_;
$self->{handle}->starttls ('connect');
$self->{ssl_enabled} = 1;
}
sub disconnect {
my ($self, $msg) = @_;
$self->end_sockets;
$self->{disconnect_cb}->($self->{peer_host}, $self->{peer_port}, $msg);
$self->remove_all_callbacks;
}
1;
( run in 0.788 second using v1.01-cache-2.11-cpan-39bf76dae61 )