On Sat, 22 Dec 2001 17:04:11 +0900
Tatsuhiko Miyagawa <[EMAIL PROTECTED]> wrote:
> Now it uses pnotes(). Todo is to add scope configuration for each
> classes.
Added subclasses with own object lifetime configuration.
I myself am just a little dubious about its implementation,
especially for "Server" scope. Any suggestions welcome.
The URL
http://bulknews.net/lib/archives/Apache-Singleton-0.03.tar.gz
has entered CPAN as
file: $CPAN/authors/id/M/MI/MIYAGAWA/Apache-Singleton-0.03.tar.gz
size: 3415 bytes
md5: ba59d1e0acfd6364b045ba869c6b799c
0.03 Sat Dec 22 22:29:50 JST 2001
- Added test for multiple classes
* Added Request, Process, Server subclasses
NAME
Apache::Singleton - Singleton class for mod_perl
SYNOPSIS
package Printer;
use base qw(Apache::Singleton);
# same: default is per Request
package Printer::PerRequest;
use base qw(Apache::Singleton::Request);
package Printer::PerProcess;
use base qw(Apache::Singleton::Process);
package Printer::PerServer;
use base qw(Apache::Singleton::Server);
DESCRIPTION
Apache::Singleton works the same as Class::Singleton, but with various
object lifetime (scope). See the Class::Singleton manpage first.
OBJECT LIFETIME
By inheriting one of the following sublasses of Apache::Singleton, you
can change the scope of your object.
Request
use base qw(Apache::Singleton::Request);
One instance for one request. Apache::Singleton will remove
intstance on each request. Implemented using mod_perl "pnotes" API.
This is the default scope, so inheriting from Apache::Singleton
would do the same effect.
Process
use base qw(Apache::Singleton::Process);
One instance for one httpd process. Implemented using package
global. Notice this is the same beaviour with Class::Singleton ;)
Server
use base qw(Apache::Singleton::Server);
One instance for one server (across all httpd processes).
Implemented using Cache::SharedMemoryCache (IPC).
Note that multiple process cannot share blessed reference without
serialization, so *One instance for one server* is just an idea.
What it means is, one instance for one process, and multiple
instances with shared data across one server. See t/05_server.t in
this module distribution for what it exactly means.
AUTHOR
Original idea by Matt Sergeant <[EMAIL PROTECTED]> and Perrin Harkins
<[EMAIL PROTECTED]>.
Code by Tatsuhiko Miyagawa <[EMAIL PROTECTED]>
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
SEE ALSO
the Apache::Singleton::Request manpage, the Apache::Singleton::Process
manpage, the Apache::Singleton::Server manpage, the Class::Singleton
manpage, the Cache::SharedMemoryCache manpage
--
Tatsuhiko Miyagawa <[EMAIL PROTECTED]>