NAME
Convos::Core::Connection - A Convos connection base class
DESCRIPTION
Convos::Core::Connection is a base class for Convos connections.
See also Convos::Core::Connection::Irc.
EVENTS
dialog
$self->on(dialog => sub { my ($self, $dialog) = @_; });
Emitted when a new $dialog is created.
me
$self->on(me => sub { my ($self, $me) = @_; });
Emitted when information about the representation of "user" changes. $me
contains:
{
nick => $str,
real_host => $str,
version => $str,
available_user_modes => $str,
available_channel_modes => $str,
}
Note that this hash is Convos::Core::Connection::Irc specific.
message
$self->on(message => sub { my ($self, $self, $msg) = @_; });
$self->on(message => sub { my ($self, $dialog, $msg) = @_; });
Emitted when a connection or dialog receives a new message. $msg
will contain:
{
from => $str,
message => $str,
type => {action|notice|privmsg},
}
state
$self->on(state => sub { my ($self, $state, $reason) = @_; });
Emitted when the connection state change.
dialog
$self->on(dialog => sub { my ($self, $dialog, $info) = @_; });
Emitted when the dialog change state. $info
will contain information about the change:
{join => $nick}
{nick => $new_new, renamed_from => $old_nick_lc}
{part => $nick, message => $reason, kicker => $kicker}
{part => $nick, message => $reason}
{updated => true}
ATTRIBUTES
Convos::Core::Connection inherits all attributes from Mojo::Base and implements the following new ones.
id
$str = $self->id;
$str = $class->id(\%attr);
Returns a unique identifier for a connection.
messages
$obj = $self->messages;
Holds a Convos::Core::Dialog object with the conversation to the server.
name
$str = $self->name;
Holds the name of the connection.
protocol
$str = $self->protocol;
Holds the protocol name.
url
$url = $self->url;
Holds a Mojo::URL object which describes where to connect to. This attribute is read-only.
user
$user = $self->user;
Holds a Convos::Core::User object that owns this connection.
METHODS
Convos::Core::Connection inherits all methods from Mojo::Base and implements the following new ones.
connect
$self = $self->connect(sub { my ($self, $err) = @_ });
Used to connect to "url". Meant to be overloaded in a subclass.
dialog
$dialog = $self->dialog(\%attrs);
Returns a new Convos::Core::Dialog object or updates an existing object.
dialogs
$objs = $self->dialogs;
Returns an array-ref of of Convos::Core::Dialog objects.
disconnect
$self = $self->disconnect(sub { my ($self, $err) = @_ });
Used to disconnect from server. Meant to be overloaded in a subclass.
get_dialog
$dialog = $self->get_dialog($id);
$dialog = $self->get_dialog(\%attrs);
Returns a Convos::Core::Dialog object or undef.
new
$self = Convos::Core::Connection->new(\%attrs);
Creates a new connection object.
participants
$self = $self->participants("#target" => sub { my ($self, $err, $participants) = @_; });
Retrieves a list of participants in a room.
rooms
$self = $self->rooms({match => "name"}, sub { my ($self, $err, $list) = @_; });
Used to retrieve a list of Convos::Core::Dialog objects for the given connection.
save
$self = $self->save(sub { my ($self, $err) = @_; });
Will save "ATTRIBUTES" to persistent storage. See "save_object" in Convos::Core::Backend for details.
send
$self = $self->send($target => $message, sub { my ($self, $err, $any) = @_; });
Used to send a $message
to $target
. $message
is a plain string and $target
can be a user or room/channel name.
Meant to be overloaded in a subclass.
state
$self = $self->state($state, $message);
$state = $self->state;
Holds the state of this object. $state
can be "disconnected", "connected" or "queued" (default). "queued" means that the object is in the process of connecting or that it want to connect.
uri
$path = $self->uri;
Holds a Mojo::Path object, with the URI to where this object should be stored.
wanted_state
$str = $self->wanted_state;
$self = $self->wanted_state("connected"); # or "disconnected"
The state that this connection should be in. "state" on the other hand reflects which state the connection is actually in.
AUTHOR
Jan Henning Thorsen - jhthorsen@cpan.org