Provided by: libnetsds-perl_1.301-4_all bug

NAME

       NetSDS::Feature - abstract application feature

SYNOPSIS

               package NetSDS::Feature::DBI;

               use DBI;
               use base 'NetSDS::Feature';

               sub init {
                       my ($self) = @_;

                       my $dsn = $self->conf->{dsn};
                       my $user = $self->conf->{user};
                       my $passwd = $self->conf->{passwd};

                       $self->{dbconn} = DBI->connect($dsn, $user, $passwd);

               }

               # Sample method - DBI::do proxy
               sub do {

                       my $self = shift @_;
                       return $self->{dbconn}->do(@_);
               }

               1;

DESCRIPTION

       Application "features" are Perl5 packages with unified API for easy integration of some
       functionality into NetSDS applications infrastructure.

       "NetSDS::Feature" module contains superclass for application features providing the
       following common feature functionality:

               * class construction
               * initialization stub
               * logging

CLASS METHODS

       create($app, $conf) - feature constructor
       init() - feature initialization
           This method should be rewritten with feature functionality implementation.  It's
           possibly to use application and configuration handlers at this time.

           Example:

                   sub init {
                           my ($self) = @_;

                           $self->{answer} = $self->conf->{answer} || '42';

                           my $pid = $self->app->pid();

                           if ($self->app->daemon()) {
                                   $self->log("info", "Seems we are in a daemon mode");
                           }
                   }

OBJECT METHODS

       app() - application object
           This method allows to use application methods and properties.

                   print "Feature included from app: " . $self->app->name;

       conf() - feature configuration
           This method provides access to feature configuration.

       log($level, $message) - implements logging
           Example:

                   # Write log message
                   $self->log("info", "Application does something interesting.");

           See NetSDS::Logger documentation for details.

EXAMPLES

       See "samples/app_features.pl" script.

SEE ALSO

       •   NetSDS::App

AUTHOR

       Michael Bochkaryov <misha@rattler.kiev.ua>

LICENSE

       Copyright (C) 2008-2009 Net Style Ltd.

       This program is free software; you can redistribute it and/or modify it under the terms of
       the GNU General Public License as published by the Free Software Foundation; either
       version 2 of the License, or (at your option) any later version.

       This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
       without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
       See the GNU General Public License for more details.

       You should have received a copy of the GNU General Public License along with this program;
       if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
       MA  02111-1307  USA