VCP::DB_File - Persistant storage for vcp_state data
use base qw( VCP::DB_File );
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
$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 $self, " file to be
loaded.
To write your own ", ref $self,
" file, see VCP::DB_File::sdbm.
- new
-
VCP::DB_File::foo->new(
StoreLoc => $dir, ## path to a dir to keep the state store in
);
The "Store" field indicates
where the ", ref $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
"$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
"$self-"SUPER::open_db before doing
anything else in their open_db() overrides).
- close_db
-
$db->close_db;
(subclasses should call
"$self-"SUPER::close_db before doing
anything else in their close_db() overrides).
- set
-
$db->set( $key, @values );
Sets the values for $key.
- get
-
my @values = $db->get( $key );
Gets the values for $key.
- keys
-
my @keys = $db->keys;
Returns a list of ARRAY references. Each ARRAY ref is a
key.
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 );
Barrie Slaymaker <barries@slaysys.com>
Copyright (c) 2000, 2001, 2002 Perforce Software, Inc. All rights reserved.
See VCP::License ("vcp help
license") for the terms of use.