Mercurial > pub > Impl
changeset 404:9ef75f2029be default
sync
author | cin |
---|---|
date | Fri, 28 Aug 2015 19:54:53 +0300 |
parents | 7171a8e2e2ba |
children | cd6c6e61d442 |
files | Lib/IMPL/Config/ActivationContext.pm Lib/IMPL/Config/Container.pm Lib/IMPL/Config/Descriptor.pm Lib/IMPL/Config/ReferenceDescriptor.pm Lib/IMPL/Config/ServiceDescriptor.pm Lib/IMPL/Config/ValueDescriptor.pm |
diffstat | 3 files changed, 107 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Lib/IMPL/Config/ActivationContext.pm Fri Aug 28 19:54:53 2015 +0300 @@ -0,0 +1,22 @@ +package IMPL::Config::ActivationContext; + +1; +__END__ + +=pod + +=head1 NAME + +C<IMPL::Config::ActivationContext> - an activation context for the service + +=head1 SYNOPSIS + +For the internal use only + +=head1 MEMBERS + +=head2 METHODS + +=head3 GetService($serviceId) + +=cut \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Lib/IMPL/Config/Container.pm Fri Aug 28 19:54:53 2015 +0300 @@ -0,0 +1,34 @@ +package IMPL::Config::Container; + +1; + +__END__ + +=pod + +=head1 NAME + +C<IMPL::Config::Container> - dependency injection container + +=head1 SYNOPSIS + +=head2 METHODS + +=head3 GetService($serviceId) + +=over + +=item * $serviceId + +A string indetifier of the service, it can be in two forms: class name or service name, +for the class name it should be prefixed with C<@>, for example: C<@Foo::Bar>. + +=back + +The activation container maintains two maps, one for classes and the other for names. +The first one is useful when we searching for an implementation the second one when +we need a particular service. + +=head3 RegisterService($descriptor) + +=cut \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Lib/IMPL/Config/Descriptor.pm Fri Aug 28 19:54:53 2015 +0300 @@ -0,0 +1,51 @@ +package IMPL::Config::Descriptor; + + + +1; + +__END__ + +=pod + +=head1 NAME + +C<IMPL::Config::Descriptor> - the abstract base types for the service descriptors + +=head1 SYNOPSIS + +=begin code + +package MyDescriptor; + +use IMPL::declare { + base => { + 'IMPL::Config::Descriptor' => '@_' + } +}; + +sub Activate { + my ($this,$context) = @_; + + my $service = $context->GetService('service'); + my + +} + +=end code + +=head1 MEMBERS + +=head1 SEE ALSO + +=over + +=item * L<ReferenceDescriptor> - describes a reference to the service + +=item * L<ServiceDescriptor> - descibes a service factory + +=item * L<ValueDescriptor> - describes a value + +=back + +=cut \ No newline at end of file