]> git.p6c8.net - selfforum.git/blob - selfforum-cgi/shared/Lock/Handle.pm
Admin.pm: hide_posting()/recover_posting(): thread and forum XML files are now locked...
[selfforum.git] / selfforum-cgi / shared / Lock / Handle.pm
1 package Lock::Handle;
2
3 ################################################################################
4 # #
5 # File: shared/Lock/Handle.pm #
6 # #
7 # Authors: André Malo <nd@o3media.de> #
8 # #
9 # Description: belongs to Locking and Filehandle class #
10 # NOT FOR PUBLIC USE #
11 # #
12 ################################################################################
13
14 use strict;
15 use Symbol qw(gensym);
16
17 use base qw(Lock::_static);
18
19 ################################################################################
20 #
21 # Version check
22 #
23 # last modified:
24 # $Date$ (GMT)
25 # by $Author$
26 #
27 sub VERSION {(q$Revision$ =~ /([\d.]+)\s*$/)[0] or '0.0'}
28
29 ### sub new ####################################################################
30 #
31 # constructor
32 #
33 # Params: $file - filename
34 #
35 # Return: Lock object
36 #
37 sub new {
38 my ($instance, $file) = @_;
39 my $class = ref($instance) || $instance;
40 my $self = bless $class -> _create_handle => $class;
41
42 $self -> set_static (filename => $file);
43
44 $self;
45 }
46
47 ### open () ####################################################################
48 #
49 # open a file
50 #
51 # Params: $mode - open mode
52 #
53 # Return: success code (boolean)
54 #
55 sub open {
56 my ($self, $mode) = @_;
57
58 return unless defined ($mode);
59
60 sysopen ($self, $self->filename, $mode);
61 }
62
63 ### close () ###################################################################
64 #
65 # close a file
66 #
67 # Params: ~none~
68 #
69 # Return: success code (boolean)
70 #
71 sub close {
72 my $self = shift;
73
74 CORE::close $self;
75 }
76
77 ### sub _create_handle #########################################################
78 #
79 # create a globref
80 #
81 # Params: ~none~
82 #
83 # Return: globref
84 #
85 sub _create_handle {gensym}
86
87 # keep 'require' happy
88 1;
89
90 #
91 #
92 ### end of Lock::Handle ########################################################

patrick-canterino.de