NetSDS::Class::Abstract(3pm) | User Contributed Perl Documentation | NetSDS::Class::Abstract(3pm) |
NetSDS::Class::Abstract - superclass for all NetSDS APIs
package MyClass; use base 'NetSDS::Class::Abstract'; __PACKAGE__->mk_accessors(qw/my_field/); sub error_sub { my ($self) = @_; if (!$self->my_field) { return $self->error("No my_field defined"); } } 1;
"NetSDS::Class::Abstract" is a superclass for all other NetSDS classes, containing the following functionality:
All other class/object APIs should inherit this class to use it's functionality in standard way.
Constructor requres parameters as hash that are set as object properties.
my $object = NetSDS::SomeClass->new( foo => 'abc', bar => 'def', );
__PACKAGE__->mk_class_accessors('foo', 'bar');
$self->mk_accessors('foo', 'bar');
Other "Class::Accessor::Class" methods available as well.
Return 1 in case of success or "undef" if faied. Error messages in case of failure are available using "errstr()" call.
Example:
# Load modules for daemonization if ($daemon_mode) { $self->use_modules("Proc::Daemon", "Proc::PID::File"); }
Example:
my $var = $obj->unbless();
Example:
# Set logger and send log message $obj->logger(NetSDS::Logger->new()); $obj->log("info", "Logger connected");
$obj->log("info", "We still alive");
Example 1: set class error
NetSDS::Foo->error("Mistake found");
Example 2: set object error with code
$obj->error("Can't launch rocket", BUG_STUPID);
Example:
warn "We have an error: " . $obj->errstr;
Example:
if ($obj->errcode == 42) { print "Epic fail! We've found an answer!"; }
See "samples" directory and other "NetSDS" moduleis for examples of code.
Class::Accessor::Class
Michael Bochkaryov <misha@rattler.kiev.ua>
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
2021-12-26 | perl v5.32.1 |