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

Reply via email to