From: Ralf Ertzinger Date: Wed, 24 Apr 2013 11:31:15 +0000 (+0200) Subject: Add a register_api() call to Base.pm X-Git-Url: https://git.camperquake.de/gitweb.cgi?p=videosite.git;a=commitdiff_plain;h=ec4c22f6d3475897c4bc22212c25fb8a3d33e3b5 Add a register_api() call to Base.pm --- diff --git a/videosite/Base.pm b/videosite/Base.pm index 606d6f4..a1cacea 100644 --- a/videosite/Base.pm +++ b/videosite/Base.pm @@ -15,6 +15,11 @@ sub new { '_CONNECTORS' => sub { return ({ 'name' => 'direct', 'schemas' => {} }) }, '_CONNECTOR' => undef, + API => { + io => sub { printf(@_) }, + connectors => sub { return ({ 'name' => 'direct', + 'schemas' => {} }) }, + }, @_, }; @@ -271,10 +276,19 @@ sub selectconn { $self->{'_CONNECTOR'} = shift; } -sub setconn { +# +# Register a callbacks into the core API to the plugin. +# Example of those are config getter/setters and IO functions +# The API is a hash reference containing subroutine references. +# +# After the API is registered an attempt is made to load the config +# (or set defaults if config values are not found) +# +sub register_api { my $self = shift; + my $api = shift; - $self->{'_CONNECTORS'} = shift; + $self->{_API} = $api; } 1;