NAME

Alvis::Saa - Perl extension for communicating over the Tana protocol

SYNOPSIS

use Alvis::Saa;

my $saa=Alvis::Saa->new();

# Build a Tana message
my %MSG=('command'=>'call',
         'object'=>'tfidf',
         'function'=>'query',
         'max-results'=>10,
         'snippets'=>'',
         'accuracy'=>0.9,
         'query-string'=>"some query");

 $saa->queue($host, $port, $msg,
             arb_name => undef, arb => undef) || die($saa->{'err'} . "\n");

 my($ok, $sent, $received, $pending);
 $received = []; $sent = [];
 while(scalar(@$sent) < 1)
 {
    ($ok, $sent, $received, $pending) = $saa->process(10);
    $ok || die($saa->{'err'} . "\n");
 }
 if($wait)
 {
    while(scalar(@$received) < 1)
    {
       ($ok, $sent, $received, $pending) = $saa->process(10);
       $ok || die($saa->{'err'} . "\n");
    }

    # do something with the results
 }

DESCRIPTION

Provides a set of methods for sending and receiving Tana messages.

METHODS

new()

Creates a new instance.

err()

Returns the current error message.

listen(port)

Starts listening to 'port'.

connected(host,port)

Are we connected to 'host':'port'?

disconnect_all()

Cut all connections.

disconnect(host,port)

Cut the connection to 'host':'port'.

unlisten(port)

Stop listening to 'port';

connect(host,port)

Connect to 'host':'port'.

queue(host,port,msg,parameters)

Put message 'msg' into the queue for 'host':'port'. 'parameters' is a hash with the following parameters to set:

'tag' => client name for the message
'arb' => scalar data or func(tag) that returs scalar or undef on end-of-data
'arb_name' => scalar

process(timeout)

Process the request with the given timeout in seconds.

SEE ALSO

Alvis::Tana

AUTHOR

Antti Tuominen, <antti.tuominen@hiit.fi> Kimmo Valtonen, <kimmo.valtonen@hiit.fi>

COPYRIGHT AND LICENSE

Copyright (C) 2006 by Antti Tuominen, Kimmo Valtonen

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.4 or, at your option, any later version of Perl 5 you may have available.