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]>