Iterator::File::State::Interface - Interface for Iterator::File state classes


Iterator-File documentation Contained in the Iterator-File distribution.

Index


Code Index:

NAME

Top

Iterator::File::State::Interface -- Interface for Iterator::File state classes

DESCRIPTION

Top

All data sources should subclass Iterator::File::State::Interface, overriding methods as appropriate.

Iterator::File::State::Interface inherits from Iterator::File::Utility.

new(%config)

Each subclass can take a %config hash. Keys/meaning will be specific to each subclass.

initialize()

Initilizes any requirements for class. (E.g., prepping temp files.) The iterator is not available until after initialize is invoked.

advance_marker()

Increments the marker by one.

marker()

Return the current value of the marker.

set_marker( $num )

Sets the value of the marker to $num. Note this update is independent of any changes to the source file.

finish()

Perform any required clean up once we're done.

SEE ALSO

Top

Iterator::File

AUTHOR

Top

William Reardon, <wdr1@pobox.com>

COPYRIGHT AND LICENSE

Top


Iterator-File documentation Contained in the Iterator-File distribution.
package Iterator::File::State::Interface;

## $Id: Interface.pm,v 1.5 2008/06/17 06:00:28 wdr1 Exp $

use 5.006;
use strict;
use warnings;

use Iterator::File::Utility;

our @ISA = qw(Iterator::File::Utility);
our $VERSION = substr(q$Revision: 1.5 $, 10);

our %default_config =
  (
   'update_frequency' => 1,
  );



sub new {
  my ($class, %config) = @_;

  %config = (%default_config, %config);
  my $self = $class->SUPER::new( %config );
  bless($self, $class);

  return $self;
}



sub initialize {
  my ($self) = @_;

  $self->{'marker'} = 0;
}



sub advance_marker {
  my ($self) = @_;

  return $self->set_marker( $self->marker() + 1 );
}



sub marker {
  my $self = shift;

  return $self->{'marker'};
}



sub set_marker {
  my $self = shift;
  my $num  = shift;

  $self->{'marker'} = $num;
}



sub finish {}


1;
__END__
# Below is stub documentation for your module. You'd better edit it!