]> git.vpit.fr Git - perl/modules/Bit-MorseSignals.git/blobdiff - lib/Bit/MorseSignals/Emitter.pm
Make sure the POD headings are linkable
[perl/modules/Bit-MorseSignals.git] / lib / Bit / MorseSignals / Emitter.pm
index 0bf93b06a3538db50a2df23b7cc7b7aecaf3b1de..7e11c1dbe66f1865bb9343af5eebaf5f0bb6959e 100644 (file)
@@ -3,11 +3,11 @@ package Bit::MorseSignals::Emitter;
 use strict;
 use warnings;
 
-use Carp qw/croak/;
-use Encode qw/encode_utf8 is_utf8/;
-use Storable qw/freeze/;
+use Carp     qw<croak>;
+use Encode   qw<encode_utf8 is_utf8>;
+use Storable qw<freeze>;
 
-use Bit::MorseSignals qw/:consts/;
+use Bit::MorseSignals qw<:consts>;
 
 =head1 NAME
 
@@ -15,17 +15,17 @@ Bit::MorseSignals::Emitter - Base class for Bit::MorseSignals emitters.
 
 =head1 VERSION
 
-Version 0.04
+Version 0.08
 
 =cut
 
-our $VERSION = '0.04';
+our $VERSION = '0.08';
 
 =head1 SYNOPSIS
 
     use Bit::MorseSignals::Emitter;
 
-    my $deuce = new Bit::MorseSignals::Emitter;
+    my $deuce = Bit::MorseSignals::Emitter->new;
     $deuce->post("hlagh") for 1 .. 3;
     while (defined(my $bit = $deuce->pop)) {
      sends_by_some_mean_lets_say_signals($bit);
@@ -64,13 +64,15 @@ sub _count_bits {
 
 =head2 C<new>
 
+    my $bme = Bit::MorseSignals::Emitter->new;
+
 L<Bit::MorseSignals::Emitter> object constructor. Currently does not take any optional argument.
 
 =cut
 
 sub new {
  my $class = shift;
$class = ref $class || $class || return;
return unless $class = ref $class || $class;
  croak 'Optional arguments must be passed as key => value pairs' if @_ % 2;
  my %opts = @_;
  my $self = {
@@ -81,7 +83,9 @@ sub new {
  return $self;
 }
 
-=head2 C<< post $msg, < type => $type > >>
+=head2 C<post>
+
+    $bme->post($msg, type => $type);
 
 Adds C<$msg> to the message queue and, if no other message is currently processed, dequeue the oldest item and prepare it. The type is automatically chosen, but you may want to try to force it with the C<type> option : C<$type> is then one of the C<BM_DATA_*> constants listed in L<Bit::MorseSignals/CONSTANTS>
 
@@ -102,7 +106,7 @@ sub post {
   #      BM_DATA_{PLAIN,         UTF8,          STORABLE}
   $type = BM_DATA_AUTO unless defined $type and exists $manglers[$type];
   if (ref $msg) {
-   return if { map { $_ => 1 } qw/CODE GLOB/ }->{ref $msg};
+   return if { map { $_ => 1 } qw<CODE GLOB> }->{ref $msg};
    $type = BM_DATA_STORABLE;
   } elsif ($type == BM_DATA_AUTO) {
    $type = is_utf8($msg) ? BM_DATA_UTF8 : BM_DATA_PLAIN;
@@ -128,8 +132,8 @@ sub post {
  $self->{state} = 2;
 
  my $head = '';
- vec($head, 0, 1) = ($type & 2) >> 1;
- vec($head, 1, 1) = ($type & 1);
+ vec($head, 0, 1) = ($type & 1);
+ vec($head, 1, 1) = ($type & 2) >> 1;
  vec($head, 2, 1) = 0;
  my $hlen = 3;
 
@@ -176,6 +180,30 @@ sub pop {
  return $bit;
 }
 
+=head2 C<len>
+
+The length of the currently posted message.
+
+=cut
+
+sub len {
+ my ($self) = @_;
+ _check_self($self);
+ return $self->{len};
+}
+
+=head2 C<pos>
+
+The number of bits that have already been sent for the current message.
+
+=cut
+
+sub pos {
+ my ($self) = @_;
+ _check_self($self);
+ return $self->{pos};
+}
+
 =head2 C<reset>
 
 Cancels the current transfer, but does not empty the queue.
@@ -186,7 +214,7 @@ sub reset {
  my ($self) = @_;
  _check_self($self);
  $self->{state} = @{$self->{queue}} > 0;
- @{$self}{qw/buf len pos/} = ();
+ @{$self}{qw<buf len pos>} = ();
  return $self;
 }
 
@@ -243,7 +271,7 @@ L<Bit::MorseSignals>, L<Bit::MorseSignals::Receiver>.
 
 Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
 
-You can contact me by mail or on #perl @ FreeNode (vincent or Prof_Vince).
+You can contact me by mail or on C<irc.perl.org> (vincent).
 
 =head1 BUGS
 
@@ -255,6 +283,8 @@ You can find documentation for this module with the perldoc command.
 
     perldoc Bit::MorseSignals::Emitter
 
+Tests code coverage report is available at L<http://www.profvince.com/perl/cover/Bit-MorseSignals>.
+
 =head1 COPYRIGHT & LICENSE
 
 Copyright 2008 Vincent Pit, all rights reserved.