The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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.