use strict;
package ObjStore::REP::HashRecord;
use base 'Exporter';
use ObjStore::MakeMaker qw(add_os_args);
use vars qw($VERSION @EXPORT_OK $Fspec %align);
$VERSION = '0.96';
@EXPORT_OK = qw($VERSION &hrec_args &c_types $Fspec %align);
$Fspec = "osp_hashrec_field_spec";
sub hrec_args {
require Config;
my $sitearch = $Config::Config{sitearch};
$sitearch =~ s,$Config::Config{prefix},$ENV{PERL5PREFIX}, if
exists $ENV{PERL5PREFIX};
my %arg = @_;
$arg{INC} .= " -I$sitearch/auto/ObjStore/REP/HashRecord";
$arg{LIBS} ||= [''];
for (@{$arg{LIBS}}) {
$_ .= " -L$sitearch/auto/ObjStore/REP/HashRecord -lHashRecord"
}
%arg;
}
my $max_osp_str = 35;
sub c_types() {
# It is important not to change the order of these types!
my @T = ('OSSV','OSPVptr','char','float','double');
for (16,32) { push @T, "os_int$_"; }
for (my $w=3; $w <= $max_osp_str; $w+=4) { push @T, "osp_str$w"; }
push @T, 'os_reference', 'os_reference_this_DB';
@T
}
# These cannot change either!
%align = (OSSV => 8, OSPVptr => 4, char => 1, float => 4, double => 8,
os_int16 => 2, os_int32 => 4, os_reference => 4,
os_reference_this_DB => 4);
for (my $w=3; $w <= $max_osp_str; $w+=4) { $align{"osp_str$w"} = 4 }
1;