# Connector::Proxy # # Proxy class for attaching other CPAN modules # # Written by Scott Hardin and Martin Bartosch for the OpenXPKI project 2012 # package Connector::Proxy; use strict; use warnings; use English; use Moose; use Connector::Wrapper; extends 'Connector'; has LOOPBACK => ( is => 'ro', isa => 'Connector|Connector::Wrapper', reader => 'conn', required => 0, ); around BUILDARGS => sub { my $orig = shift; my $class = shift; my $args = $_[0]; if ( ref($args) eq 'HASH' && defined($args->{CONNECTOR}) && defined($args->{TARGET}) ) { my %arg = %{$args}; $arg{'BASECONNECTOR'} = $arg{CONNECTOR}; delete $arg{CONNECTOR}; $args->{LOOPBACK} = Connector::Wrapper->new( %arg ); } return $class->$orig(@_); }; no Moose; __PACKAGE__->meta->make_immutable; 1; __END__ =head1 Name Connector =head1 Description This is the base class for all Connector::Proxy implementations. =head1 Developer Info When creating the connector, all class attributes that have a corresponding config item are initialised with the given values. All configuration options, that are denoted on the same level as the connector definition are accessible inside the class using C<$self->conn()->get()>.