/usr/local/CPAN/ObjStore/ObjStore/REP/ODI.pm
use strict;
package ObjStore::REP::ODI;
use base 'DynaLoader';
__PACKAGE__->bootstrap($ObjStore::VERSION);
$ObjStore::SCHEMA{'ObjStore::REP::ODI'}->
load($ObjStore::Config::SCHEMA_DBDIR."/REP-ODI-01.adb");
package ObjStore::REP::ODI::HashIndex;
use Carp;
# The HashIndex project has been delayed. XXX
sub configure {
my $o = shift;
my $c = $o->ObjStore::REP::ODI::HashIndex::_conf_slot();
$c ||= [0,1,[]];
return $c if @_ == 0;
my @conf = ref $_[0] ? %{$_[0]} : @_;
while (@conf) {
my $k = shift @conf;
croak "$o->configure: no value found for key '$k'" if !@conf;
my $v = shift @conf;
if ($k eq 'unique') {
croak "$o only supports unique indices" if !$v;
} elsif ($k eq 'path') {
my @comp = split(m",\s*", $v);
# maybe do multiple keys by gluing them together with "$;"? XXX
croak "$o cannot handle more than one key" if @comp>1;
croak("$o->configure(path=>'$v'): invalidate") if @comp==0;
$c->[2] = [map {[map {"$_\0"} split(m"\/", $_)]} @comp];
} elsif ($k eq 'size' or $k eq 'type') {
} else {
carp "$o->configure: unknown parameter '$k'";
}
}
bless $c, __PACKAGE__.'::Conf';
$o->ObjStore::REP::ODI::HashIndex::_conf_slot($c);
}
package ObjStore::REP::ODI::HashIndex::Conf;
use base 'ObjStore::AV';
use vars qw($VERSION);
$VERSION = '1.00';
#POSH_PEEK
1;