From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

=head1 NAME
MR::IProto::Request - request message
=head1 DESCRIPTION
Base class for all request messages.
=cut
use Mouse;
has '+data' => (
lazy_build => 1,
);
=head1 PUBLIC METHODS
=over
=item key
Returns key value.
You must reimplement this method in your subclass to use this feature.
=cut
sub key {
return undef;
}
=item retry
If request retry is allowed.
=cut
sub retry {
return 0;
}
=back
=head1 PROTECTED METHODS
=over
=item key_attr
Class method which must return name of key attribute.
=item _build_data
You B<must> implement this method in you subclass to pack your object.
Returns packed data.
=cut
sub _build_data {
return '';
}
=back
=cut
no Mouse;
__PACKAGE__->meta->make_immutable();
1;