Ignore:
Timestamp:
12/09/16 21:24:55 (4 years ago)
Author:
ak19
Message:

This commit is related to but not specific to the upcoming commit to do with the new oaiinfo db and its directly affected files. This commit: New remove and rename (move) methods in DB package to clean up main db file and any additional db files created by any specific infodbtype. The new methods in dbutil/jdbm.pm are not called, for some reason. Requires more investigation, but committing for now.

Location:
main/trunk/greenstone2/perllib
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone2/perllib/DBDrivers/BaseDBDriver.pm

    r30517 r31188  
    344344
    345345
     346## @function rename_db_file_to(string, string) => void
     347#
     348sub rename_db_file_to {
     349    my $self = shift(@_);
     350    my ($srcpath, $destpath) = @_;
     351
     352    # rename basic db file
     353    &FileUtils::moveFiles($srcpath, $destpath);
     354
     355    # subclass should rename any additional files that the specific dbtype creates
     356}
     357## rename_db_file_to(string, string) => void ##
     358
     359## @function remove_db_file(string) => void
     360#
     361sub remove_db_file {
     362    my $self = shift(@_);
     363    my ($db_filepath) = @_;
     364   
     365    # remove basic db file
     366    &FileUtils::removeFiles($db_filepath);
     367
     368    # subclass must rename any additional files that the specific dbtype creates (e.g. transaction log files)
     369}
     370## remove_db_file(string, string) => void ##
     371
     372
    346373## @function supportsDatestamp(void) => integer
    347374#
  • main/trunk/greenstone2/perllib/DBDrivers/GDBM.pm

    r30370 r31188  
    7070# Handled by BaseDBDriver
    7171# sub get_infodb_file_path(string, string) => string
     72# sub rename_db_file_to(string, string) => void
     73# sub remove_db_file(string) => void
    7274
    7375# Handled by 70HyphenFormat
  • main/trunk/greenstone2/perllib/DBDrivers/JDBM.pm

    r30517 r31188  
    8383# -----------------------------------------------------------------------------
    8484
    85 # When DBUtil::* is properly structured with inheritence, then
     85# When DBUtil::* is properly structured with inheritance, then
    8686# much of this code (along with GDBM and GDBM-TXT-GZ) can be grouped into
    8787# a shared base class.  Really it is only the the command that needs to
     
    9191# sub get_infodb_file_path {}
    9292
    93 # Handles by 70HyphenFormat
     93# Handled by 70HyphenFormat
    9494# sub open_infodb_write_handle(string, string?) => filehandle
    9595# sub close_infodb_write_handle(filehandle) => void
  • main/trunk/greenstone2/perllib/dbutil.pm

    r30517 r31188  
    564564## write_infodb_rawentry(string, *) => void ##
    565565
     566## @function rename_db_file_to(string, string) => void
     567#
     568sub rename_db_file_to {
     569    my $infodb_type = shift(@_);
     570    my $driver = _loadDBDriver($infodb_type);
     571    $driver->rename_db_file_to(@_);   
     572}
     573## rename_db_file_to(string, string) => void ##
     574
     575## @function remove_db_file(string) => void
     576#
     577sub remove_db_file {
     578    my $infodb_type = shift(@_);
     579    my $driver = _loadDBDriver($infodb_type);
     580    $driver->remove_db_file(@_);   
     581}
     582## remove_db_file(string, string) => void ##
     583
    5665841;
  • main/trunk/greenstone2/perllib/dbutil/jdbm.pm

    r28395 r31188  
    306306
    307307
    308 
    309308sub delete_infodb_entry
    310309{
     
    320319
    321320
    322 
    323 
     321# jdb also creates .lg log files, that don't get removed on delete or move operations
     322# Make sure to rename them to when performing a rename operation on the main db file.
     323# dbutil::renameTo(src,dest) already took care of renaming the main db file.
     324sub rename_db_file_to {
     325    my $infodb_handle = shift(@_);
     326    my ($srcpath, $destpath) = @_;
     327
     328    my ($srctailname, $srcdirname, $srcsuffix)
     329    = &File::Basename::fileparse($srcpath, "\\.[^\\.]+\$");
     330    my ($desttailname, $destdirname, $destsuffix)
     331    = &File::Basename::fileparse($destpath, "\\.[^\\.]+\$");
     332
     333    # add in the lg extension
     334    my $src_log_file = &FileUtils::filenameConcatenate($srcdirname, $srctailname.".lg");
     335    my $dest_log_file = &FileUtils::filenameConcatenate($destdirname, $desttailname.".lg");
     336
     337    # finally, move/rename any log file belonging to the src db file
     338    if(&FileUtils::fileExists($src_log_file)) {
     339    &FileUtils::moveFiles($src_log_file, $dest_log_file);
     340    }
     341}
     342
     343sub remove_db_file {
     344    my $infodb_handle = shift(@_);
     345    my ($db_filepath) = @_;
     346
     347    # add in the lg extension to get the log file name
     348    my ($tailname, $dirname, $suffix) = &File::Basename::fileparse($db_filepath, "\\.[^\\.]+\$");
     349    my $assoc_log_file = &FileUtils::filenameConcatenate($dirname, $tailname.".lg");
     350
     351    # remove any log file associated with the db file
     352    if(&FileUtils::fileExists($assoc_log_file)) {
     353    &FileUtils::removeFiles($assoc_log_file);
     354    }
     355
     356}
    324357
    3253581;
Note: See TracChangeset for help on using the changeset viewer.