G::DB SDB
SummaryIncluded librariesPackage variablesSynopsisDescriptionGeneral documentationMethods
Summary
G::DB::SDB - Persistent/Instant Data Storage for G-language v.2
Package variables
Privates (from "my" definitions)
%data;
$path = $ENV{HOME} . '/.glang/'
Included modules
File::Basename
G::Messenger
Inherit
Exporter
Synopsis
    use G::DB::SDB;
Description
    sdb related methods store and retrieve persistent data.
    pass related methods provide instant cache.
Methods
_sdb_path
No description
Code
_set_sdb_path
No description
Code
pass_get
No description
Code
pass_send
No description
Code
sdb_exists
No description
Code
sdb_load
No description
Code
sdb_save
No description
Code
Methods description
None available.
Methods code
_sdb_pathdescriptionprevnextTop
sub _sdb_path {
    mkdir($path, 0777);

    $path = '/tmp/' unless(-e $path);

    return $path;
}
_set_sdb_pathdescriptionprevnextTop
sub _set_sdb_path {
    $path = shift;
    $path .= '/' unless(substr($path, -1, 1) eq '/');
}
pass_getdescriptionprevnextTop
sub pass_get {
    my $name = shift;

    return $data{$name};
}
pass_senddescriptionprevnextTop
sub pass_send {
    my $name = shift;
    my $val = shift;

    $data{$name} = $val;
}
sdb_existsdescriptionprevnextTop
sub sdb_exists {
    my $name = shift;
    my $path = _sdb_path();

    if(-e "$path/$name"){
	return 1;
    }else{
	return 0;
    }
}
sdb_loaddescriptionprevnextTop
sub sdb_load {
    my $name = shift;
    my $path = _sdb_path();

    if (-e $path . $name){
	return retrieve($path . $name);
    }else{
	msg_error("SDB: cannot open $path . $name");
	return;
    }
}
sdb_savedescriptionprevnextTop
sub sdb_save {
    my $val = shift;
    my $name = shift || 'tmp';
    my $path = _sdb_path();

    nstore($val, $path . $name);

    return 1;
}
General documentation
AUTHORTop
  Kazuharu Arakawa, gaou@sfc.keio.ac.jp