Changeset 28000

Show
Ignore:
Timestamp:
08.08.2013 12:07:37 (6 years ago)
Author:
jmt12
Message:

Functions for determining if the plugout supports writing Datestamp and RSS information internally (or if Greenstone should handle writing them itself)

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • gs2-extensions/tdb-edit/trunk/src/perllib/dbutil.pm

    r27400 r28000  
    9595 
    9696 
     97## @function test_dynamic_driver_function() 
     98# 
     99# Checks to see if a function in a dynamically loaded driver exists 
     100# 
     101sub test_dynamic_driver_function 
     102{ 
     103  my $function_name = shift(@_); 
     104  my $driver_name = shift(@_); 
     105  my $package_name = 'dbutil::' . $driver_name; 
     106  # - try to load the requested infodb type 
     107  if (!&load_db_driver($package_name)) 
     108  { 
     109    # - try loading the default GDBM driver 
     110    print STDERR 'Warning! Using default database driver (GDBM) as failed to load configured database driver: ' . $driver_name . "\n"; 
     111    $package_name = 'dbutil::gdbm'; 
     112    if (!&load_db_driver($package_name)) 
     113    { 
     114      die("Fatal Error! Failed to load default database driver: dbutil::gdbm\n"); 
     115    } 
     116  } 
     117  # - make call to the newly created package 
     118  no strict; 
     119  # - lets check that the function we are about to call 
     120  my $symbol = qualify($function_name, $package_name); 
     121  return defined &{$symbol}; 
     122} 
     123## test_dynamic_driver_function() ## 
     124 
     125 
     126## @function 
     127# 
    97128sub open_infodb_write_handle 
    98129{ 
     
    170201    return &dbutil::call_dynamic_driver_function('read_infodb_keys', $infodb_type, $infodb_file_path, $infodb_map, @_); 
    171202} 
     203 
     204 
     205## @function supportDatestamp 
     206# 
     207sub supportsDatestamp 
     208{ 
     209  my $infodb_type = shift(@_); 
     210  return &dbutil::test_dynamic_driver_function('supportsDatestamp', $infodb_type); 
     211} 
     212## supportsDatestamp() ## 
     213 
     214 
     215## @function supportRSS 
     216# 
     217sub supportsRSS 
     218{ 
     219  my $infodb_type = shift(@_); 
     220  return &dbutil::test_dynamic_driver_function('supportsRSS', $infodb_type); 
     221} 
     222## supportsRSS() ## 
     223 
    172224 
    173225sub write_infodb_entry