package HeaderDoc::DBLookup;
use strict;
use vars qw($VERSION @ISA);
$VERSION = '1.20';
my $isMacOS;
my $pathSeparator;
if ($^O =~ /MacOS/i) {
$pathSeparator = ":";
$isMacOS = 1;
} else {
$pathSeparator = "/";
$isMacOS = 0;
}
my $debugging = 0;
my $theTime = time();
my ($sec, $min, $hour, $dom, $moy, $year, @rest);
($sec, $min, $hour, $dom, $moy, $year, @rest) = localtime($theTime);
$moy++;
$year += 1900;
my $dateStamp = "$moy/$dom/$year";
my %datatypeNameToIDHash;
my %functionNameToIDHash;
sub loadUsingFolderAndFiles {
my($class) = shift;
my $folder = shift;
my $functionFilename = shift;
my $typesFilename = shift;
my $enumsFilename = shift;
if (ref $class) { die "Class method called as object method" };
my $functionTable = $folder.$pathSeparator.$functionFilename;
open(FUNCIDS, "<$functionTable") || die "Can't open $functionTable.\n";
my @funcIDLines = <FUNCIDS>;
close FUNCIDS;
foreach my $line (@funcIDLines) {
if ($line =~/^ chomp $line;
my ($funcID, $funcName);
($funcID, $funcName) = split (/\t/, $line);
if (length($funcID)) {
$functionNameToIDHash{$funcName} = $funcID;
}
}
undef @funcIDLines;
my $typeTable = $folder.$pathSeparator.$typesFilename;
open(TYPEIDS, "<$typeTable") || die "Can't open $typeTable.\n";
my @typeIDLines = <TYPEIDS>;
close TYPEIDS;
foreach my $line (@typeIDLines) {
if ($line =~/^ chomp $line;
my ($typeID, $typeName);
($typeID, $typeName) = split (/\t/, $line);
if (length($typeID)) {
$datatypeNameToIDHash{$typeName} = $typeID;
}
}
undef @typeIDLines;
my $enumTable = $folder.$pathSeparator.$enumsFilename;
open(ENUMIDS, "<$enumTable") || die "Can't open $enumTable.\n";
my @enumIDLines = <ENUMIDS>;
close ENUMIDS;
foreach my $line (@enumIDLines) {
if ($line =~/^ chomp $line;
my ($enumID, $enumName);
($enumID, $enumName) = split (/\t/, $line);
if (length($enumID)) {
$datatypeNameToIDHash{$enumName} = $enumID;
}
}
undef @enumIDLines;
}
sub dataTypeNameToIDHash {
return %datatypeNameToIDHash;
}
sub functionNameToIDHash {
return %functionNameToIDHash;
}
sub functionIDForName {
my $class = shift;
my $name = shift;
if (exists ($functionNameToIDHash{$name})) {
return $functionNameToIDHash{$name};
} else {
return "UNKNOWN_ID";
}
}
sub typeIDForName {
my $class = shift;
my $name = shift;
if (exists ($datatypeNameToIDHash{$name})) {
return $datatypeNameToIDHash{$name};
} else {
return "UNKNOWN_ID";
}
}
1;