# #
# File: shared/Lock/Unlink.pm #
# #
-# Authors: Andre Malo <nd@o3media.de>, 2001-05-25 #
+# Authors: André Malo <nd@o3media.de> #
# #
# Description: Locking and Filehandle class #
# using the atomic behavior of unlinkig files #
################################################################################
use strict;
-use vars qw(
- $VERSION
-);
-
use Fcntl;
################################################################################
#
# Version check
#
-$VERSION = do { my @r =(q$Revision$ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
+# last modified:
+# $Date$ (GMT)
+# by $Author$
+#
+sub VERSION {(q$Revision$ =~ /([\d.]+)\s*$/)[0] or '0.0'}
-### sub _simple_lock ###########################################################
+### _simple_lock () ############################################################
#
# simple file lock
# (unlink lock file)
return;
}
-### sub _simple_unlock #########################################################
+### _simple_unlock () ##########################################################
#
# simple file unlock
# (create lock file)
return;
}
-### sub _reftime ###############################################################
+### _reftime () ################################################################
#
# determine reference time for violent unlock
#
$time;
}
-### sub masterlocked ###########################################################
+### masterlocked () ############################################################
#
# check on master lock status of the file
#
#
sub masterlocked {not -f shift -> masterlock}
-### sub excl_announced #########################################################
+### excl_announced () ##########################################################
#
# check on exclusive lock announced status of the file
#
#
sub excl_announced {not -f shift -> lockfile}
-### sub exsh_announced #########################################################
+### exsh_announced () ##########################################################
#
# check on exclusive shared lock status of the file
#
#
sub exsh_announced {not -f shift -> exshlock}
+### purge () ###################################################################
+#
+# cover our traces after a file was removed
+#
+# Params: ~none~
+#
+# Return: ~none~
+#
+sub purge {
+ my $self = shift;
+
+ $self -> set_ref (0); # reference counter = 0
+ unlink ($self -> reflock); # remove reference counter lock
+ unlink ($self -> lockfile); # remove any write lock announce
+ unlink ($self -> exshlock); # remove any excl shared lock
+ unlink ($self -> masterlock); # remove master lock
+
+ return;
+}
+
# keep 'require' happy
1;
#
#
-### end of Lock::Unlink ########################################################
+### end of Lock::Unlink ########################################################
\ No newline at end of file