< INN::Config | Russ Allbery > Software > INN > INN CURRENT Documentation | INN::Utils::Shlock > |
(Talk to ovsqlite-server from Perl)
use INN::ovsqlite_client qw(:all); my $client = INN::ovsqlite_client::->new( port => "/usr/local/news/run/ovsqlite.sock"); $client->search_group_all( groupname => "news.software.nntp", low => 1, cols => search_col_overview, errmsg => my $errmsg, callback => sub { my ($articles) = @_; foreach my $article (@{$articles}) { print $article->{overview}; } 1; }, ); defined($errmsg) and die "search_group_all: $errmsg";
INN::ovsqlite_client
implements the binary protocol used to communicate
with the ovsqlite-server daemon. It offers one instance method for each
request type plus convenience methods for those requests that need to be
repeated. See ovsqlite-private.h for details.
Two examples of use within a Perl script are present in the contrib directory (ovsqlite-dump and ovsqlite-undump).
Flags to select what optional information the search_group
method should
return.
Success responses:
Error responses:
Fatal error responses:
All of the above.
$client = INN::ovsqlite_client::->new( path => $path, mode => $mode, # optional, default 0 (read only) );
Croaks on failure.
All request methods return the response code and store any error message in
the optional errmsg
named argument.
Communication or protocol errors (as opposed to server errors) cause croaks.
$code = $client->set_cutofflow( cutofflow => $cutofflow, # optional, default 0 (false) errmsg => $errmsg, # optional output );
$code = $client->add_group( groupname => $groupname, low => $low, high => $high, flag_alias => $flag_alias, errmsg => $errmsg, # optional output );
$code = $client->get_groupinfo( groupname => $groupname, low => $low, # optional output high => $high, # optional output count => $count, # optional output flag_alias => $flag_alias, # optional output errmsg => $errmsg, # optional output );
$code = $client->delete_group( groupname => $groupname, errmsg => $errmsg, # optional output );
$code = $client->list_groups( groupid => $groupid, # optional in/output, default 0 readsize => $readsize, # optional, default 0x20000 groups => $groups, # output errmsg => $errmsg, # optional output );
$groups
is set to a reference to an array of references to hashes with
these keys:
$code = $client->list_groups_all( callback => \&callback, readsize => $readsize, # optional, default 0x20000 errmsg => $errmsg, # optional output );
This convenience method calls list_groups
repeatedly to fetch information
for all groups. The callback function is called with the groups array
reference as the only argument. It should return a true value to keep
iterating or a false value to terminate.
$code = $client->add_artice( groupname => $groupname, artnum => $artnum, token => $token, arrived => $arrived, # optional, default 0 expires => $expires, # optional, default 0 overview => $overview, errmsg => $errmsg, # optional output );
$code = $client->get_artinfo( groupname => $groupname, artnum => $artnum, token => $token, # output errmsg => $errmsg, # optional output );
$code = $client->delete_article( groupname => $groupname, artnum => $artnum, errmsg => $errmsg, # optional output );
$code = $client->search_group( groupname => $groupname, low => $low, high => $high, # optional cols => $cols, # optional, default 0x00 readsize => $readsize, # optional, default 0x20000 articles => $articles, # output errmsg => $errmsg, # optional output );
$articles
is set to a reference to an array of references to hashes with
these keys:
$code = $client->search_group_all( groupname => $groupname, low => $low, high => $high, # optional cols => $cols, # optional, default 0x00 callback => \&callback, readsize => $readsize, # optional, default 0x20000 errmsg => $errmsg, # optional output );
This convenience methods calls search_group
repeatedly to fetch information
for all specified articles. The callback function is called with the
articles array reference as the only argument. It should return a true
value to keep iterating or a false value to terminate.
$code = $client->start_expire_group( groupname => $groupname, errmsg => $errmsg, # optional output );
$code = $client->expire_group( groupname => $groupname, artnums => \@artnums, errmsg => $errmsg, # optional output );
@artnums
must be an array of article numbers.
$code = $client->finish_expire( errmsg => $errmsg, # optional output );
$code = $client->finish_expire_all( callback => \&callback, errmsg => $errmsg, # optional output );
This convenience method calls finish_expire
repeatedly until done.
The callback function is called with no arguments and should return a true
value to keep iterating or a false value to terminate.
Initial implementation and documentation written by Bo Lindbergh for InterNetNews.
perl(1), ovsqlite-server(8).
< INN::Config | Russ Allbery > Software > INN > INN CURRENT Documentation | INN::Utils::Shlock > |