InfoSys::FreeDB::Connection::HTTP - FreeDB HTTP connection
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 );
FreeDB HTTP connection
InfoSys::FreeDB::Connection::HTTP is the HTTP implementation of the InfoSys::FreeDB::Connection abstract class.
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().
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.
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.
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.
This method is an implementation from package InfoSys::FreeDB::Connection. This method is not supported over HTTP.
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.
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.
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.
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.
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.
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 the FreeDB cgi. VALUE is the value. Default value at initialization is ~cddb/cddb.cgi. On error an exception Error::Simple is thrown.
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.
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.
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.
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.
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.
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.
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.
This method is an implementation from package InfoSys::FreeDB::Connection. This method is not supported over HTTP.
the InfoSys::FreeDB manpage, the InfoSys::FreeDB::Connection manpage, the InfoSys::FreeDB::Connection::CDDBP manpage, the InfoSys::FreeDB::Entry manpage, the InfoSys::FreeDB::Entry::Track manpage, the InfoSys::FreeDB::Match manpage, the InfoSys::FreeDB::Response manpage, the InfoSys::FreeDB::Response::DiscId manpage, the InfoSys::FreeDB::Response::Hello manpage, the InfoSys::FreeDB::Response::LsCat manpage, the InfoSys::FreeDB::Response::Motd manpage, the InfoSys::FreeDB::Response::Proto manpage, the InfoSys::FreeDB::Response::Query manpage, the InfoSys::FreeDB::Response::Quit manpage, the InfoSys::FreeDB::Response::Read manpage, the InfoSys::FreeDB::Response::SignOn manpage, the InfoSys::FreeDB::Response::Sites manpage, the InfoSys::FreeDB::Response::Stat manpage, the InfoSys::FreeDB::Response::Ver manpage, the InfoSys::FreeDB::Response::Whom manpage, the InfoSys::FreeDB::Response::Write::1 manpage, the InfoSys::FreeDB::Response::Write::2 manpage, the InfoSys::FreeDB::Site manpage
None known (yet.)
First development: September 2003 Last update: October 2003
Vincenzo Zocca
Copyright 2003 by Vincenzo Zocca
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