NAME
Class::PObject::Driver::DBM - Base class for DBM-related pobject drivers
SYNOPSIS
use Class::PObject::Driver::DBM;
@ISA = ('Class::PObject::Driver::DBM');
sub dbh {
my ($self, $pobject_name, $properties) = @_;
...
}
ABSTRACT
Class::PObject::Driver::DBM is a base class for all the DBM-related
pobject drivers. Class::PObject::Driver::DBM is a direct subclass of
Class::PObject::Driver.
DESCRIPTION
Class::PObject::Driver::DBM is a direct subclass of Class::PObject::Driver, and provides all the necessary methods common for DBM-related disk access.
METHODS
Refer to Class::PObject::Driver for the details of all the driver-specific methods. Class::PObject::Driver::DBM overrides save()
, load()
and remove()
methods with the versions relevant to DBM-related disk access.
dbh($self, $pobject_name, \%properties, $lock_type)
- called whenever base methods need database tied hash. DBM drivers should provide this method, which should return an array of elements, namely$DB
- an DBM object, usually returned fromtie()
ortied()
functions;$dbh
- a hash tied to database;$unlock
- an action required for unlocking the database.$unlock
should be a reference to a subroutine, which when called should release the lock.Currently base methods ignore
$DB
, but it may change in the future._filename($self, $pobject_name, \%properties)
- returns a name of the file to connect to. It first looks for$properties-
{datasource}> and if it exists, uses the value as a directory name object file should be created in. If it's missing, defaults to systems temporary folder.It then returns a file name derived out of
$pobject_name
inside this directory._lock($file, $filename, $lock_type)
- acquires either shared or exclusive lock depending on the$lock_type
, which can be either of w or r.Returns a reference to an action (subroutine), which perform unlocking for this particular lock. On failure returns undef.
_lock()
is usually called from withindbh()
, and return value is returned together with database hadnles.
SEE ALSO
Class::PObject::Driver, Class::PObject::Driver::DB_File Class::PObject::Driver::DBI
AUTHOR
Sherzod B. Ruzmetov, <sherzodr@cpan.org>, http://author.handalak.com/
COPYRIGHT AND LICENSE
Copyright 2003 by Sherzod B. Ruzmetov.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.