package IM::Engine::Outgoing;
use Moose;
use MooseX::StrictConstructor;
extends 'IM::Engine::Message';
has recipient => (
is => 'ro',
isa => 'IM::Engine::User',
required => 1,
);
has incoming => (
is => 'ro',
isa => 'IM::Engine::Incoming',
predicate => 'has_incoming',
);
__PACKAGE__->meta->make_immutable;
no Moose;
1;
# Sartak is not at all outgoing!
__END__
=head1 NAME
IM::Engine::Outgoing - a message we're sending to somebody
=head1 ATTRIBUTES
=head2 recipient
An instance of L<IM::Engine::User> which represents the recipient of this
outgoing message.
=head2 incoming
An instance of L<IM::Engine::Incoming> to which this outgoing message was a
response. Since not all outgoing messages are replies, this attribute may have
no value; use the C<has_incoming> accessor to see whether it does.
=head2 message
See L<IM::Engine::Message/message>.
=head2 plaintext
See L<IM::Engine::Message/plaintext>.
=head1 SEE ALSO
=over 4
=item L<IM::Engine::Outgoing::IRC>
=item L<IM::Engine::Outgoing::Jabber>
=item L<IM::Engine::Incoming>
=item L<IM::Engine::Message> (the superclass)
=back
=cut