NAME

CGI::Application::NetNewsIface::Cache::DBI - an internally used class to form a fast cache of the NNTP data.

SYNOPSIS

use CGI::Application::NetNewsIface::Cache::DBI;

my $cache = CGI::Application::NetNewsIface::Cache::DBI->new(
    {
        'nntp' => $nntp,
        'dsn' => "dbi:SQLite:dbname=foo.sqlite",
    },
);

FUNCTIONS

new({ %params })

Constructs a new cache object. Accepts a single argument - a hash ref with named parameters. Required parameters are:

'nntp'

A handle to the Net::NNTP object that will be used for querying the NNTP server.

'dsn'

The DBI 'dsn' for the DBI initialization.

$cache->select( $group )

Selects the newsgroup $group.

$cache->get_index_of_id($id)

Retrieves the index of the message with the id $id.

($thread, $coords) = $cache->get_thread($index);

Gets the thread for the message indexed $index. Thread is:

$thread looks like this:

{
    'idx' => $index,
    'subject' => "Problem with Test::More",
    'date' => $date,
    'from' => "Shlomi Fish <shlomif@cpan.org>",
    'subs' =>
    [
        {
            'idx' => $index,
            .
            'subs' =>
            [
                .
                .
                .
            ],
        }
        .
        .
        .
    ],
}

$coords is the coordinates leading to the current article within the thread. To access the current article from the coords use:

$thread->{'subs'}->[$coords[0]]->{'subs'}->[$coords[1]]->...

AUTHOR

Shlomi Fish, http://www.shlomifish.org/ .

BUGS

Please report any bugs or feature requests to bug-cgi-application-netnewsiface@rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=CGI-Application-NetNewsIface. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

ACKNOWLEDGEMENTS

COPYRIGHT & LICENSE

Copyright 2006 Shlomi Fish, all rights reserved.

This program is released under the following license: MIT X11.