[LON-CAPA-cvs] cvs: loncom / LONCAPA.pm

www lon-capa-cvs@mail.lon-capa.org
Mon, 19 Jun 2006 09:35:08 -0000


www		Mon Jun 19 05:35:08 2006 EDT

  Modified files:              
    /loncom	LONCAPA.pm 
  Log:
  Routines to establish locking ties and unties with a complete filename
  
  
Index: loncom/LONCAPA.pm
diff -u loncom/LONCAPA.pm:1.5 loncom/LONCAPA.pm:1.6
--- loncom/LONCAPA.pm:1.5	Tue May 30 15:29:48 2006
+++ loncom/LONCAPA.pm	Mon Jun 19 05:35:08 2006
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Base routines
 #
-# $Id: LONCAPA.pm,v 1.5 2006/05/30 19:29:48 albertel Exp $
+# $Id: LONCAPA.pm,v 1.6 2006/06/19 09:35:08 www Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -167,6 +167,27 @@
     return &_locking_hash_untie(@_);
 }
 
+# routines if you just have a filename
+# return tied hashref or undef
+
+sub locking_hash_tie {
+    my ($filename,$how)=@_;
+    my ($file_prefix,$namespace)=&db_filename_parts($filename);
+    unless ($namespace) { return undef; }
+    return &_locking_hash_tie($file_prefix,$namespace,$how);
+}
+
+sub locking_hash_untie {
+    return &_locking_hash_untie(@_);
+}
+
+sub db_filename_parts {
+    my ($filename)=@_;
+    my ($file_path,$namespace)=($filename=~/^(.*)\/([^\/]+)\.db$/);
+    unless ($namespace) { return undef; }
+    return ($file_path.'/'.$namespace,$namespace);
+}
+
 # internal routines that handle the actual tieing and untieing process
 
 sub _do_hash_tie {