
=head1 NAME

Mail::Box::Locker::POSIX - lock a folder using kernel file-locking

=head1 CLASS INHERITANCE

 Mail::Box::Locker::POSIX
   is a Mail::Box::Locker
   is a Mail::Reporter

=head1 SYNOPSIS

 See Mail::Box::Locker

=head1 DESCRIPTION

This locker object is created by the folder to get an exclusive lock on
the file which contains the data using the kernel's POSIX facilities.  This
lock is created on a separate file-handle to the folder file, so not the
handle which is reading.  Not all platforms support POSIX locking.

=head1 METHODS

=head2 Initiation

=over 4

=item B<new> OPTIONS

(Class method)

 OPTION               DEFAULT
 expires              1 hour
 file                 undef
 folder               <obligatory>
 log                  'WARNINGS'
 method               'DOTLOCK'
 timeout              10 seconds
 trace                'WARNINGS'

=over 4

=item B<expires> =E<gt> SECONDS

See Mail::Box::Locker::new(expires)

=item B<file> =E<gt> FILENAME

See Mail::Box::Locker::new(file)

=item B<folder> =E<gt> FOLDER

See Mail::Box::Locker::new(folder)

=item B<log> =E<gt> LEVEL

See Mail::Reporter::new(log)

=item B<method> =E<gt> METHOD | CLASS

See Mail::Box::Locker::new(method)

=item B<timeout> =E<gt> SECONDS|'NOTIMEOUT'

See Mail::Box::Locker::new(timeout)

=item B<trace> =E<gt> LEVEL

See Mail::Reporter::new(trace)

=back

=back

=head2 The Locker

=over 4

=item B<DESTROY> 

See Mail::Box::Locker::DESTROY()

=item B<name> 

See Mail::Box::Locker::name()

=back

=head2 Locking

=over 4

=item B<filename> [FILENAME]

See Mail::Box::Locker::filename()

=item B<folder> 

See Mail::Box::Locker::folder()

=item B<hasLock> 

See Mail::Box::Locker::hasLock()

=item B<isLocked> 

=item B<lock> 

=item B<unlock> 

See Mail::Box::Locker::unlock()

=back

=head2 Logging and Tracing

=over 4

=item B<defaultTrace> [LEVEL, [LEVEL]

See Mail::Reporter::defaultTrace()

=item B<errors> 

See Mail::Reporter::errors()

=item B<log> [LEVEL [,STRINGS]]

See Mail::Reporter::log()

=item B<report> [LEVEL]

See Mail::Reporter::report()

=item B<reportAll> [LEVEL]

See Mail::Reporter::reportAll()

=item B<trace> [LEVEL]

See Mail::Reporter::trace()

=item B<warnings> 

See Mail::Reporter::warnings()

=back

=head2 Other Methods

=over 4

=item B<AUTOLOAD> 

See Mail::Reporter::AUTOLOAD()

=item B<inGlobalDestruction> 

See Mail::Reporter::inGlobalDestruction()

=item B<logPriority> LEVEL

See Mail::Reporter::logPriority()

=item B<logSettings> 

See Mail::Reporter::logSettings()

=item B<notImplemented> 

See Mail::Reporter::notImplemented()

=back

=head1 SEE ALSO

A good start to read is Mail::Box-Overview.
More documentation and a mailinglist are available from the project's
website at L<http://perl.overmeer.net/mailbox/>.

=head1 AUTHOR

Written by Mark Overmeer (L<mark@overmeer.net|mailto:mark@overmeer.net>)
with the help of many.  See the ChangeLog for details.

=head1 VERSION

This code is beta, version 2.037.

Copyright (c) 2001-2003 by the authors. All rights reserved.
This program is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
