use strict;
use warnings;
-use Carp qw/croak/;
-use Encode qw/decode_utf8/;
-use Storable qw/thaw/;
+use Carp qw<croak>;
+use Encode qw<decode_utf8>;
+use Storable qw<thaw>;
-use Bit::MorseSignals qw/:consts/;
+use Bit::MorseSignals qw<:consts>;
=head1 NAME
=head1 VERSION
-Version 0.06
+Version 0.08
=cut
-our $VERSION = '0.06';
+our $VERSION = '0.08';
=head1 SYNOPSIS
use Bit::MorseSignals::Receiver;
- my $pants = Bit::MorseSignals::Receiver->new(done => sub { print "received $_[1]!\n" });
+ my $pants = Bit::MorseSignals::Receiver->new(
+ done => sub { print "received $_[1]!\n" },
+ );
while (...) {
my $bit = comes_from_somewhere_lets_say_signals();
$pants->push($bit);
=head1 DESCRIPTION
-Base class for L<Bit::MorseSignals> receivers. Please refer to this module for more general information about the protocol.
+Base class for L<Bit::MorseSignals> receivers.
+Please refer to this module for more general information about the protocol.
Given a sequence of bits coming from the L<Bit::MorseSignals> protocol, the receiver object detects when a packet has been completed and then reconstructs the original message depending of the datatype specified in the header.
=head1 METHODS
-=head2 C<< new < done => $cb > >>
+=head2 C<new>
-L<Bit::MorseSignals::Receiver> object constructor. With the C<'done'> option, you can specify a callback that will be triggered every time a message is completed, and in which C<$_[0]> will be the receiver object and C<$_[1]> the message received.
+ my $bmr = Bit::MorseSignals::Receiver->new(done => $cb);
+
+L<Bit::MorseSignals::Receiver> object constructor.
+With the C<'done'> option, you can specify a callback that will be triggered every time a message is completed, and in which C<$_[0]> will be the receiver object and C<$_[1]> the message received.
=cut
return $self;
}
-=head2 C<push $bit>
+=head2 C<push>
+
+ $bmr->push($bit);
-Tells the receiver that you have received the bit C<$bit>. Returns true while the message isn't completed, and C<undef> as soon as it is.
+Tells the receiver that you have received the bit C<$bit>.
+Returns true while the message isn't completed, and C<undef> as soon as it is.
=cut
my $type = 2 * vec($self->{buf}, 1, 1)
+ vec($self->{buf}, 0, 1);
$type = BM_DATA_PLAIN if vec($self->{buf}, 2, 1);
- @{$self}{qw/state type buf len/} = (3, $type, '', 0);
+ @{$self}{qw<state type buf len>} = (3, $type, '', 0);
}
} elsif ($self->{state} == 1) { # end of signature
} else { # first bit
- @{$self}{qw/state sig sig_bit sig_len buf len/}
+ @{$self}{qw<state sig sig_bit sig_len buf len>}
= (1, '', $bit, 1, '', 0 );
vec($self->{sig}, 0, 1) = $bit;
my ($self) = @_;
_check_self($self);
$self->{state} = 0;
- @{$self}{qw/sig sig_bit sig_len type buf len/} = ();
+ @{$self}{qw<sig sig_bit sig_len type buf len>} = ();
return $self;
}
=head1 DEPENDENCIES
-L<Carp> (standard since perl 5), L<Encode> (since perl 5.007003), L<Storable> (idem).
+L<Carp> (standard since perl 5), L<Encode> (since perl 5.7.3), L<Storable> (idem).
=head1 SEE ALSO
=head1 BUGS
-Please report any bugs or feature requests to C<bug-bit-morsesignals-receiver at rt.cpan.org>, or through the web interface at L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Bit-MorseSignals>. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
+Please report any bugs or feature requests to C<bug-bit-morsesignals-receiver at rt.cpan.org>, or through the web interface at L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Bit-MorseSignals>.
+I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
=head1 SUPPORT