NAME

Net::FreeDB2::Connection::HTTP - FreeDB/CDDB concrete connection class using the HTTP protocol

SYNOPSIS

See Net::FreeDB2::Connection.

DESCRIPTION

Net::FreeDB2::Connection::HTTP is a concrete FreeDB/CDDB connection class that uses the HTTP protocol to connect to FreeDB/CDDB servers.

CONSTRUCTOR

new (OPT_HASH_REF)

Creates a new Net::FreeDB2::Connection::HTTP object. Throws a Error::Simple exception if a mandatory option is missing.

See Net::FreeDB2::Connection for allowed/mandatory options for OPT_HASH_REF. Additionally the follwoing option is allowed:

freedb_cgi

The FreeDB/CDDB cgi path. Defaults to ~cddb/cddb.cgi.

METHODS

hello ()

hello is not supported under HTTP. This method does not do anything.

lscat ()

Issues an lscat command on the FreeDB/CDDB database. Returns an ARRAY with available categories. Throws an Error::Simple exception if no connection is made, if the instanciation of an HTTP::Request object fails or if the HTTP request fails. Also, exceptions from mkHello () or mkUrlBase () may be thrown if an exceptional situation occurs.

query (ENTRY)

Queries the FreeDB/CDDB database using ENTRY which is a Net::FreeDB2::Entry object. Returns a Net::FreeDB2::Response::Query object. Throws an Error::Simple exception if no connection is made, if the instanciation of an HTTP::Request object fails or if the HTTP request fails. Also, exceptions from mkHello () or mkUrlBase () may be thrown if an exceptional situation occurs.

read (MATCH)

Reads an entry from the FreeDB/CDDB database using MATCH which is a Net::FreeDB2::Match object. Returns a Net::FreeDB2::Response::Read object. Throws an Error::Simple exception if no connection is made, if the instanciation of an HTTP::Request object fails or if the HTTP request fails. Also, exceptions from mkHello () or mkUrlBase () may be thrown if an exceptional situation occurs.

write (ENTITY)

Quote from CDDBPROTO: 'All CDDBP commands are supported under HTTP, except for "cddb hello", "cddb write", "proto" and "quit".' Therefor this method only throws an Error::Simple exception.

log ()

Issues an log command on the FreeDB/CDDB database. TO BE IMPLEMENTED

motd ()

Issues an motd command on the FreeDB/CDDB database. Returns an ARRAY containing the motd lines. Throws an Error::Simple exception if no connection is made, if the instanciation of an HTTP::Request object fails or if the HTTP request fails. Also, exceptions from mkHello () or mkUrlBase () may be thrown if an exceptional situation occurs.

discid (ENTRY)

Issues an discid command on the FreeDB/CDDB database using the Net::FreeDB2::Entry object ENTRY. Returns the discid as calculated by FreeDB/CDDB. Throws an Error::Simple exception if no connection is made, if the instanciation of an HTTP::Request object fails or if the HTTP request fails. Also, exceptions from mkHello () or mkUrlBase () may be thrown if an exceptional situation occurs.

proto ()

Issues an proto command on the FreeDB/CDDB database. TO BE IMPLEMENTED

sites ()

Issues an sites command on the FreeDB/CDDB database. Returns an ARRAY with sites. Throws an Error::Simple exception if no connection is made, if the instanciation of an HTTP::Request object fails or if the HTTP request fails. Also, exceptions from mkHello () or mkUrlBase () may be thrown if an exceptional situation occurs.

stat ()

Issues an stat command on the FreeDB/CDDB database. TO BE IMPLEMENTED

ver ()

Issues an ver command on the FreeDB/CDDB database. TO BE IMPLEMENTED

update ()

Issues an update command on the FreeDB/CDDB database. TO BE IMPLEMENTED

whom ()

Issues an whom command on the FreeDB/CDDB database. TO BE IMPLEMENTED

connect ()

Connects to the FreeDB/CDDB database. Throws an Error::Simple exception if the instanciation of the LWP::UserAgent (which BTW forms the actiual connection) object fails.

mkHello ()

Makes a FreeDB/CDDB HTTP hello string for uasage by other FreeDB/CDDB command methods and returns it. Throws an Error::Simple exception if client name, client version, client host or client user not set.

mkUrlBase ()

Makes a HTTP mase URL string for uasage by other FreeDB/CDDB command methods and returns it. Throws an Error::Simple exception if FreeDB/CDDB host or FreeDB/CDDB cgi not set.

setFreeDBCgi (VALUE)

Set the FreeDB/CDDB cgi (e.g. ~cddb/cddb.cgi) attribute. VALUE is the value.

getFreeDBCgi ()

Returns the FreeDB/CDDB cgi attribute.

SEE ALSO

Net::FreeDB2::Entry, Net::FreeDB2::Match, Net::FreeDB2::Response, Net::FreeDB2::Response::Query and Net::FreeDB2::Response::Read

BUGS

Not all FreeDB/CDDB commands are implemented (yet).

HISTORY

First development: September 2002

AUTHOR

Vincenzo Zocca <Vincenzo@Zocca.com>

COPYRIGHT

Copyright 2002, Vincenzo Zocca.

LICENSE

This file is part of the Net::FreeDB2 module hierarchy for Perl by Vincenzo Zocca.

The Net::FreeDB2 module hierarchy is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

The Net::FreeDB2 module hierarchy is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with the Net::FreeDB2 module hierarchy; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA