=head1 VERSION
-Version 1.02
+Version 1.16
=cut
-our $VERSION = '1.02';
+our $VERSION = '1.16';
=head1 DESCRIPTION
=cut
-use base qw/Test::Valgrind::Carp/;
+use base qw<Test::Valgrind::Component Test::Valgrind::Carp>;
=head1 METHODS
=head2 C<new>
-=cut
+ my $tvp = Test::Valgrind::Parser->new;
+
+The parser constructor, called without arguments.
+
+Defaults to L<Test::Valgrind::Component/new>.
+
+=head2 C<start>
+
+ $tvp->start($session);
+
+Called when the C<$session> starts.
-sub new {
- my $class = shift;
- $class = ref($class) || $class;
+Defaults to set L<Test::Valgrind::Component/started>.
- bless { }, $class;
-}
+=head2 C<args>
-=head2 C<args $session, $fh>
+ my @args = $tvp->args($session, $fh);
-Returns the list of parser-specific arguments that are to be passed to C<valgrind>.
+Returns the list of parser-specific arguments that are to be passed to the C<valgrind> process spawned by the session C<$session> and whose output will be captured by the filehandle C<$fh>.
Defaults to the empty list.
sub args { }
-=head2 C<parse $session, $fh>
+=head2 C<parse>
+
+ my $aborted = $tvp->parse($session, $fh);
+
+Parses the output of the C<valgrind> process attached to the session C<$session> received through the filehandle C<$fh>.
+Returns true when the output indicates that C<valgrind> has aborted.
This method must be implemented when subclassing.
sub parse;
+=head2 C<finish>
+
+ $tvp->finish($session);
+
+Called when the C<$session> finishes.
+
+Defaults to clear L<Test::Valgrind::Component/started>.
+
=head1 SEE ALSO
-L<Test::Valgrind>, L<Test::Valgrind::Session>.
+L<Test::Valgrind>, L<Test::Valgrind::Component>, L<Test::Valgrind::Session>.
=head1 AUTHOR
=head1 COPYRIGHT & LICENSE
-Copyright 2009 Vincent Pit, all rights reserved.
+Copyright 2009,2010,2011,2013,2015 Vincent Pit, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.