NAME
DDC::Filter - DDC Query utilities: server filters (wrapper sockets)
SYNOPSIS
##========================================================================
## PRELIMINARIES
use DDC::Client;
use DDC::Filter;
##========================================================================
## Constructors etc
$filter = $CLASS_OR_OBJ->new(%args); ##-- new filter object
##========================================================================
## Logging
$fh = $filter->logfh(); ##-- get log filehandle
$filter = $filter->logclose(); ##-- close log filehandle
undef = logmsg($level,@message); ##-- log a message
##========================================================================
## Server Methods: run
undef = $filter->run(); ##-- run the wrapper daemon
##========================================================================
## Server Methods: callback
\&callback_sub = $filter->_callback($netserver_generic); ##-- top-level callback
##========================================================================
## Server Methods: filters
$filtered_data = $filter->filterInput($data_from_client); ##-- input filtering callback
$filtered_data = $filter->filterOutput($data_from_server); ##-- output filtering callback
##========================================================================
## Inherited Methods
# ... any DDC::Client method ...
DESCRIPTION
Globals
- Variable: @ISA
-
DDC::Filter inherits from DDC::Client.
- Variable: %LOGLEVELS
-
Hash mapping symbolic log levels to numeric values, exportable.
Constructors etc
- new
-
$filter = $CLASS_OR_OBJ->new(%args);
- %args:
-
( connect=>\%connectArgs, ##-- passed to IO::Socket::INET->new(), ##-- client args bind =>\%bindArgs, ##-- args to NetServer::Generic->new() logfile => $filename, ##-- for logging (defualt=&STDERR) loglevel => $level, ##-- log level )
- additional object structure:
-
( server=>$server, ##-- a NetServer::Generic object for listening )
- default %connectArgs:
-
PeerAddr=>'localhost', PeerPort=>50000, Proto=>'tcp', Type=>SOCK_STREAM, Blocking=>1,
(for connecting to the underlying DDC server).
- default %bindArgs:
-
#hostname=>'localhost', port=>$60000, mode=>"forking", allowed=>['127.0.0.1'], listen=>128, timeout=>60,
(for accepting incoming client connections).
Logging
- logfh
-
$fh = $filter->logfh();
Get logging filehandle.
- logclose
-
$filter = $filter->logclose();
Close log filehandle.
- logmsg
-
undef = logmsg($level,@message);
Potentially log a message at $level.
Server Methods: run
- run
-
undef = $filter->run();
Run the server, accepting incoming connections and calling callback(s) for each incoming query.
Server Methods: callback
- _callback
-
\&callback_sub = $filter->_callback($netserver_generic);
Generic NetServer::Generic callback, called for each client. The default implmentation calls the filterInput() and filterOutput() methods, which should be sufficient for many applications.
Server Methods: filters
- filterInput
-
$filtered_data = $filter->filterInput($data_from_client);
This method may be overridden in derived classes to perform filtering of data to be passed to the real DDC server.
The default implementation just returns $data_from_client unchanged.
- filterOutput
-
$filtered_data = $filter->filterOutput($data_from_server);
This method may be overridden in derived classes to perform filtering of data to be passed back to the querying client.
The default implementation just returns $data_from_server unchanged.
AUTHOR
Bryan Jurish <moocow@cpan.org>
COPYRIGHT AND LICENSE
Copyright (C) 2006-2016 by Bryan Jurish
This package is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.14.2 or, at your option, any later version of Perl 5 you may have available.