NAME

InfoSys::FreeDB::Connection::HTTP - FreeDB HTTP connection

SYNOPSIS

require InfoSys::FreeDB;
require InfoSys::FreeDB::Entry;

# Read entry from the default CD device
my $entry = InfoSys::FreeDB::Entry->new_from_cdparanoia();

# Create a HTTP connection
my $fact = InfoSys::FreeDB->new();
my $conn = $fact->create_connection( {
    client_name => 'testing-InfoSys::FreeDB',
    client_version => $InfoSys::FreeDB::VERSION,
} );

# Query FreeDB
my $res_q = $conn->query( $entry );
scalar( $res_q->get_match() ) ||
    die 'no matches found for the disck in the default CD-Rom drive';

# Read the first match
my $res_r = $conn->read( ( $res_q->get_match() )[0] );

# Write the entry to STDERR
use IO::Handle;
my $fh = IO::Handle->new_from_fd( fileno(STDERR), 'w' );
$res_r->get_entry()->write_fh( $fh );

ABSTRACT

FreeDB HTTP connection

DESCRIPTION

InfoSys::FreeDB::Connection::HTTP is the HTTP implementation of the InfoSys::FreeDB::Connection abstract class.

CONSTRUCTOR

new(OPT_HASH_REF)

Creates a new InfoSys::FreeDB::Connection::HTTP object. OPT_HASH_REF is a hash reference used to pass initialization options. OPT_HASH_REF is mandatory. On error an exception Error::Simple is thrown.

Options for OPT_HASH_REF may include:

freedb_cgi

Passed to set_freedb_cgi(). Defaults to '~cddb/cddb.cgi'.

Options for OPT_HASH_REF inherited through package InfoSys::FreeDB::Connection may include:

client_host

Passed to set_client_host(). Mandatory option.

client_name

Passed to set_client_name(). Mandatory option.

client_user

Passed to set_client_user(). Mandatory option.

client_version

Passed to set_client_version(). Mandatory option.

freedb_host

Passed to set_freedb_host(). Mandatory option.

freedb_port

Passed to set_freedb_port(). Mandatory option.

proto_level

Passed to set_proto_level(). Defaults to 1.

proxy_host

Passed to set_proxy_host().

proxy_passwd

Passed to set_proxy_passwd().

proxy_port

Passed to set_proxy_port(). Defaults to 8080.

proxy_user

Passed to set_proxy_user().

METHODS

connect()

This method is an implementation from package InfoSys::FreeDB::Connection. Connects the object to the FreeDB information service using the object's attributes. A hello commend is sent out, the protocol level is queried and set to the highest level available. On error an exception Error::Simple is thrown.

SPEED-UP NOTE

If the freedb_host isn't freedb.freedb.org and protocol level 1 is specified, the connect method tries to use the highest available protocol level. To do so, it queries the FreeDB to find out exaclty which level is supported. On HTTP connections this takes long. To speed up HTTP connections specify a higher proto_level -say 5 before connect() is called.

discid(ENTRY)

This method is inherited from package InfoSys::FreeDB::Connection. Issues a discid command on the FreeDB database. ENTRY is a InfoSys::FreeDB::Entry object. On error an exception Error::Simple is thrown.

disconnect()

This method is inherited from package InfoSys::FreeDB::Connection. Disconnects the object from the FreeDB information service.

get_client_host()

This method is inherited from package InfoSys::FreeDB::Connection. Returns the connecting client host.

get_client_name()

This method is inherited from package InfoSys::FreeDB::Connection. Returns the connecting client name.

get_client_user()

This method is inherited from package InfoSys::FreeDB::Connection. Returns the connecting client user.

get_client_version()

This method is inherited from package InfoSys::FreeDB::Connection. Returns the connecting client version.

get_freedb_cgi()

Returns the FreeDB cgi.

get_freedb_host()

This method is inherited from package InfoSys::FreeDB::Connection. Returns the FreeDB host.

get_freedb_port()

This method is inherited from package InfoSys::FreeDB::Connection. Returns the FreeDB port.

get_proto_level()

This method is inherited from package InfoSys::FreeDB::Connection. Returns the current protocol level.

get_proxy_host()

This method is inherited from package InfoSys::FreeDB::Connection. Returns the proxy host to use.

get_proxy_passwd()

This method is inherited from package InfoSys::FreeDB::Connection. Returns the proxy password to use.

get_proxy_port()

This method is inherited from package InfoSys::FreeDB::Connection. Returns the proxy port to use.

get_proxy_user()

This method is inherited from package InfoSys::FreeDB::Connection. Returns the proxy user name to use.

hello()

This method is not supported over HTTP.

log()

This method is inherited from package InfoSys::FreeDB::Connection. Issues a log command on the FreeDB database. TO BE SPECIFIED

lscat()

This method is inherited from package InfoSys::FreeDB::Connection. Issues an lscat command on the FreeDB database. Returns a InfoSys::FreeDB::Response::LsCat object. On error an exception Error::Simple is thrown.

motd()

This method is inherited from package InfoSys::FreeDB::Connection. Issues an motd command on the FreeDB database. Returns InfoSys::FreeDB::Response::Motd object. On error an exception Error::Simple is thrown.

proto([ LEVEL ])

This method is an implementation from package InfoSys::FreeDB::Connection. This method is not supported over HTTP.

query(ENTRY)

This method is inherited from package InfoSys::FreeDB::Connection. Queries the FreeDB database. ENTRY is a InfoSys::FreeDB::Entry object. Returns a InfoSys::FreeDB::Response::Query object. On error an exception Error::Simple is thrown.

quit()

This method is an implementation from package InfoSys::FreeDB::Connection. Issues a quit command on the FreeDB database and disconnects. Returns InfoSys::FreeDB::Response::Quit object. On error an exception Error::Simple is thrown.

read(MATCH)

This method is inherited from package InfoSys::FreeDB::Connection. Reads an entry from the FreeDB database. MATCH is a InfoSys::FreeDB::Match object. Returns a InfoSys::FreeDB::Response::Match object. On error an exception Error::Simple is thrown.

set_client_host(VALUE)

This method is inherited from package InfoSys::FreeDB::Connection. Set the connecting client host. VALUE is the value. VALUE may not be undef. On error an exception Error::Simple is thrown.

set_client_name(VALUE)

This method is inherited from package InfoSys::FreeDB::Connection. Set the connecting client name. VALUE is the value. VALUE may not be undef. On error an exception Error::Simple is thrown.

set_client_user(VALUE)

This method is inherited from package InfoSys::FreeDB::Connection. Set the connecting client user. VALUE is the value. VALUE may not be undef. On error an exception Error::Simple is thrown.

set_client_version(VALUE)

This method is inherited from package InfoSys::FreeDB::Connection. Set the connecting client version. VALUE is the value. VALUE may not be undef. On error an exception Error::Simple is thrown.

set_freedb_cgi(VALUE)

Set the FreeDB cgi. VALUE is the value. Default value at initialization is ~cddb/cddb.cgi. On error an exception Error::Simple is thrown.

set_freedb_host(VALUE)

This method is inherited from package InfoSys::FreeDB::Connection. Set the FreeDB host. VALUE is the value. VALUE may not be undef. On error an exception Error::Simple is thrown.

set_freedb_port(VALUE)

This method is inherited from package InfoSys::FreeDB::Connection. Set the FreeDB port. VALUE is the value. VALUE may not be undef. On error an exception Error::Simple is thrown.

set_proto_level(VALUE)

This method is inherited from package InfoSys::FreeDB::Connection. Set the current protocol level. VALUE is the value. Default value at initialization is 1. On error an exception Error::Simple is thrown.

set_proxy_host(VALUE)

This method is inherited from package InfoSys::FreeDB::Connection. Set the proxy host to use. VALUE is the value. On error an exception Error::Simple is thrown.

set_proxy_passwd(VALUE)

This method is inherited from package InfoSys::FreeDB::Connection. Set the proxy password to use. VALUE is the value. On error an exception Error::Simple is thrown.

set_proxy_port(VALUE)

This method is inherited from package InfoSys::FreeDB::Connection. Set the proxy port to use. VALUE is the value. Default value at initialization is 8080. On error an exception Error::Simple is thrown.

set_proxy_user(VALUE)

This method is inherited from package InfoSys::FreeDB::Connection. Set the proxy user name to use. VALUE is the value. On error an exception Error::Simple is thrown.

sites()

This method is inherited from package InfoSys::FreeDB::Connection. Issues a sites command on the FreeDB database. Returns a InfoSys::FreeDB::Response::Sites object. On error an exception Error::Simple is thrown.

stat()

This method is inherited from package InfoSys::FreeDB::Connection. Issues a stat command on the FreeDB database. Returns a InfoSys::FreeDB::Response::Stat object. On error an exception Error::Simple is thrown.

update()

This method is an implementation from package InfoSys::FreeDB::Connection. THIS METHOD IS NOT YET IMPLEMENTED Issues a update command on the FreeDB database. TO BE SPECIFIED_

ver()

This method is inherited from package InfoSys::FreeDB::Connection. Issues a ver command on the FreeDB database. Returns a InfoSys::FreeDB::Response::Ver object. On error an exception Error::Simple is thrown.

whom()

This method is inherited from package InfoSys::FreeDB::Connection. Issues a whom command on the FreeDB database. Returns a InfoSys::FreeDB::Response::Whom object. On error an exception Error::Simple is thrown.

write(ENTRY, CATEGORY)

This method is an implementation from package InfoSys::FreeDB::Connection. This method is not supported over HTTP.

SEE ALSO

InfoSys::FreeDB, InfoSys::FreeDB::Connection, InfoSys::FreeDB::Connection::CDDBP, InfoSys::FreeDB::Entry, InfoSys::FreeDB::Entry::Track, InfoSys::FreeDB::Match, InfoSys::FreeDB::Response, InfoSys::FreeDB::Response::DiscId, InfoSys::FreeDB::Response::Hello, InfoSys::FreeDB::Response::LsCat, InfoSys::FreeDB::Response::Motd, InfoSys::FreeDB::Response::Proto, InfoSys::FreeDB::Response::Query, InfoSys::FreeDB::Response::Quit, InfoSys::FreeDB::Response::Read, InfoSys::FreeDB::Response::SignOn, InfoSys::FreeDB::Response::Sites, InfoSys::FreeDB::Response::Stat, InfoSys::FreeDB::Response::Ver, InfoSys::FreeDB::Response::Whom, InfoSys::FreeDB::Response::Write::1, InfoSys::FreeDB::Response::Write::2, InfoSys::FreeDB::Site

BUGS

None known (yet.)

HISTORY

First development: September 2003 Last update: October 2003

AUTHOR

Vincenzo Zocca

COPYRIGHT

Copyright 2003 by Vincenzo Zocca

LICENSE

This file is part of the InfoSys::FreeDB module hierarchy for Perl by Vincenzo Zocca.

The InfoSys::FreeDB 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 InfoSys::FreeDB 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 InfoSys::FreeDB module hierarchy; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA