<html><head><title>VCP::Filter - A base class for filters</title></head><body><h1><a name="NAME">NAME
</a></h1><p>VCP::Filter - A base class for filters
<p><hr><h1><a name="SYNOPSIS">SYNOPSIS
</a></h1><pre> use VCP::Filter;
@ISA = qw( VCP::Filter );
...
</pre><p><hr><h1><a name="DESCRIPTION">DESCRIPTION
</a></h1><p>A VPC::Filter is a VCP::Plugin that is placed between the source
and the destination and allows the stream of revisions to be altered.
<p>For instance, the Map: option in vcp files is implemented by
VCP::Filter::Map
<p>By default a filter is a pass-through.
<p><hr><h1><a name="SUBCLASSING">SUBCLASSING
</a></h1><p>This class uses the fields pragma, so you'll need to use base and
possibly fields in any subclasses.
<dl><dt><a name="parse_rules_list_"><strong><p>parse_rules_list
</strong></a><dd>Used in VCP::Filter::*map and VCP::Filter::*edit to parse lists of rules
where every rule is a set of N "words". The value of N is computed from
the number of labels passed in and the labels are used when printing an
error message:
<pre> @rules = $self->parse_rules( $options, "Pattern", "Replacement" );
</pre><dt><a name="filter_name_"><strong><p>filter_name
</strong></a><dd>Returns the StudlyCaps version of the filter name. By default, assumes
a single work name and uses ucfirst on it. Filters like StringEdit should
overload this to be more creative and typgraphically appealing (heh).
<dt><a name="sort_keys_"><strong><p>sort_keys
</strong></a><pre> my @output_sort_order = $filter->sort_keys( @input_sort_order );
</pre><dd>Accepts a list of sort keys from the upstream filter and returns a list
of sort keys representing the order that records will be emitted in.
<p>This is a pass-through by default, but VCP::Filter::sort and VCP::Filter::changesets return appropriate values.
<dt><a name="config_file_section_as_string_"><strong><p>config_file_section_as_string
</strong></a><br><strong>last_rev_in_filebranch
</strong><dd>(passthru; see <a href="VCP/Dest.html">VCP::Dest</a>)
<dt><a name="backfill_"><strong><p>backfill
</strong></a><dd>(passthru; see <a href="VCP/Dest.html">VCP::Dest</a>)
<dt><a name="handle_header_"><strong><p>handle_header
</strong></a><dd>(passthru)
<dt><a name="rev_count_"><strong><p>rev_count
</strong></a><dd>passthru, see VCP::Dest.
<dt><a name="handle_rev_"><strong><p>handle_rev
</strong></a><dd>passthru, see VCP::Dest.
<dt><a name="skip_rev_"><strong><p>skip_rev
</strong></a><dd>passthru, see VCP::Dest
<dt><a name="handle_footer_"><strong><p>handle_footer
</strong></a><dd>passthru, see VCP::Dest
</dl><p><hr><h1><a name="COPYRIGHT">COPYRIGHT
</a></h1><p>Copyright 2000, Perforce Software, Inc. All Rights Reserved.
<p>This module and the VCP package are licensed according to the terms given in
the file LICENSE accompanying this distribution, a copy of which is included in
<a href="vcp.html">vcp</a>.
<p><hr><h1><a name="AUTHOR">AUTHOR
</a></h1><p>Barrie Slaymaker <barries@slaysys.com>
<p><hr><i><font size="-1">Last updated: Fri Jun 4 14:21:30 2004</font></i></body></html>