Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

aspect::library::singleton(3pm) [debian man page]

Aspect::Library::Singleton(3pm) 			User Contributed Perl Documentation			   Aspect::Library::Singleton(3pm)

NAME
Aspect::Library::Singleton - A singleton aspect SYNOPSIS
use Aspect; use Aspect::Singleton; aspect Singleton => 'Foo::new'; my $f1 = Foo->new; my $f2 = Foo->new; # Both $f1 and $f2 refer to the same object DESCRIPTION
A reusable aspect that forces singleton behavior on a constructor. The constructor is defined by a pointcut spec: a string. regexp, or code ref. It is slightly different from "Class::Singleton" (http://search.cpan.org/~abw/Class-Singleton/Singleton.pm <http://search.cpan.org/~abw/Class-Singleton/Singleton.pm>): o No specific name requirement on the constructor for the external interface, or for the implementation ("Class::Singleton" requires clients use "instance()", and that subclasses override "_new_instance()"). With aspects, you can change the cardinality of your objects without changing the clients, or the objects themselves. o No need to inherit from anything- use pointcuts to specify the constructors you want to memoize. Instead of pulling singleton behavior from a base class, you are pushing it in, using the aspect. o No package variable or method is added to the callers namespace Note that this is just a special case of memoizing. AUTHORS
Adam Kennedy <adamk@cpan.org> Marcel Gruenauer <marcel@cpan.org> Ran Eilam <eilara@cpan.org> COPYRIGHT
Copyright 2001 by Marcel Gruenauer Some parts copyright 2009 - 2012 Adam Kennedy. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.14.2 2012-02-01 Aspect::Library::Singleton(3pm)

Check Out this Related Man Page

Apache::Singleton(3pm)					User Contributed Perl Documentation				    Apache::Singleton(3pm)

NAME
Apache::Singleton - Singleton class for mod_perl VERSION
version 0.15 SYNOPSIS
package Printer; # default: # Request for mod_perl env # Process for non-mod_perl env use base qw(Apache::Singleton); package Printer::PerRequest; use base qw(Apache::Singleton::Request); package Printer::PerProcess; use base qw(Apache::Singleton::Process); DESCRIPTION
Apache::Singleton works the same as Class::Singleton, but with various object lifetime (scope). See Class::Singleton 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 instance on each request. Implemented using mod_perl "pnotes" API. In mod_perl environment (where $ENV{MOD_PERL} is defined), this is the default scope, so inheriting from Apache::Singleton would do the same effect. NOTE: You need "PerlOptions +GlobalRequest" in your apache configuration in order to use the Request lifetime method. Process use base qw(Apache::Singleton::Process); One instance for one httpd process. Implemented using package global. In non-mod_perl environment, this is the default scope, and you may notice this is the same beaviour with Class::Singleton ;) So you can use this module safely under non-mod_perl environment. CREDITS
Original idea by Matt Sergeant <matt@sergeant.org> and Perrin Harkins <perrin@elem.com>. Initial implementation and versions 0.01 to 0.07 by Tatsuhiko Miyagawa <miyagawa@bulknews.net>. SEE ALSO
Apache::Singleton::Request, Apache::Singleton::Process, Class::Singleton SOURCE
The development version is on github at http://github.com/mschout/apache-singleton <http://github.com/mschout/apache-singleton> and may be cloned from git://github.com/mschout/apache-singleton.git <git://github.com/mschout/apache-singleton.git> BUGS
Please report any bugs or feature requests to bug-apache-singleton@rt.cpan.org or through the web interface at: http://rt.cpan.org/Public/Dist/Display.html?Name=Apache-Singleton AUTHOR
Michael Schout <mschout@cpan.org> COPYRIGHT AND LICENSE
This software is copyright (c) 2009 by Michael Schout. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. perl v5.14.2 2012-04-02 Apache::Singleton(3pm)
Man Page