man VCP::DB_File () - Persistant storage for vcp_state data

NAME

VCP::DB_File - Persistant storage for vcp_state data

SYNOPSIS

    use base qw( VCP::DB_File );

DESCRIPTION

By default, most VCP::Dest::* drivers keep track of the relationship between the id field assigned by the (original) VCP::Source::* driver and the final name and rev_id (or whatever fields are important to it) in the destination repository so that the previous_id fields, which refer to the original id, may be resolved when backfilling or branching.

The VCP::*::revml drivers do not do this; they do not need to resolve id fields.

The intent for this file is to serve as a base class so that individual sites may write their own , ref CW$self, plugins to, for instance, store this state in a RDBMS table. This is not quite offered at this time; we need to add an option to the appropriate VCP::Dest::* modules to allow the appropriate , ref CW$self, file to be loaded.

To write your own , ref CW$self, file, see VCP::DB_File::sdbm.

Methods

new
   VCP::DB_File::foo->new(
      StoreLoc => $dir,  ## path to a dir to keep the state store in
   );
The CWStore field indicates where the , ref CW$self, should be stored, for instance a DBI specification string or a directory to place a revmap.db file in. There is no control over the filename, as different storage modes may need different conventions.
store_loc
Gets (does not set) the StoreLoc field as an absolute path.
delete_db
   $db->delete_db;
Deletes the persitent store. This should remove all files, lock files, etc. for filesystem stores and drop any tables for RDBMS stores. Default action is to call close_db; subclasses should perform the deletion. (subclasses should call CW$self-SUPER::delete_db before doing anything else in their delete_db() overrides).
open_db
   $db->open_db;
Creates a new or opens an existing db. (subclasses should call CW$self-SUPER::open_db before doing anything else in their open_db() overrides).
close_db
   $db->close_db;
(subclasses should call CW$self-SUPER::close_db before doing anything else in their close_db() overrides).
set
   $db->set( $key, @values );
Sets the values for CW$key.
get
   my @values = $db->get( $key );
Gets the values for CW$key.
keys
   my @keys = $db->keys;
Returns a list of ARRAY references. Each ARRAY ref is a key.

HELPER METHODS

These are provided to make subclassing a tad easier

mkdir_store_loc
   $self->mkdir_store_loc;
A helper method for subclasses' open_db()s to create the directory referred to by store_loc and any missing parent dirs.
rmdir_store_loc
   $self->rmdir_store_loc;
A helper method for subclasses' delete_db()s to remove the directory referred to by store_loc.
pack_values
   my $v = $self->pack_values( @values );
Combines the parameters in to a single string.
upack_values
   my @v = $self->unpack_values( $v );

AUTHOR

Barrie Slaymaker <barries@slaysys.com>

COPYRIGHT

Copyright (c) 2000, 2001, 2002 Perforce Software, Inc. All rights reserved.

See VCP::License (CWvcp help license) for the terms of use.