Astro-Catalog

 view release on metacpan or  search on metacpan

lib/Astro/Catalog/Transport/WebService.pm  view on Meta::CPAN


=item B<querydb>

Unlike C<Astro::Transport::REST> a default C<querydb()> method is not
provided by this base class, each sub-class must provide its own
implemetation.

=cut

sub querydb {
    croak "querydb() must be provided by the subclass\n";
}

=item B<proxy>

Return (or set) the current proxy for the catalog request.

    $usno->proxy('http://wwwcache.ex.ac.uk:8080/');
    $proxy_url = $usno->proxy();

=cut

sub proxy {
    my $self = shift;

    # SOAP::Lite respects the HTTP_proxy environment variable

    if (@_) {
        my $proxy_url = shift;
        $ENV{HTTP_proxy} = $proxy_url;
        $ENV{HTTP_PROXY} = $proxy_url;
    }

    # return the current proxy
    return $ENV{HTTP_proxy};
}

=item B<urn>

Return the current remote urn for the query

    $host = $q->urn();

Can also be used to set the urn.

=cut

sub urn {
    my $self = shift;

    # SETTING URL
    if (@_) {
        # set the url option
        my $urn = shift;
        $self->{URN} = $urn;
    }

    return $self->{URN};
}

=item B<endpoint>

Return the current endpoint for the query

    $host = $q->endpoint();
    $q->endpoint('http://www.blah.org:8080');

Can also be used to set the endpoint. If the endpoint is a wsdl file
the SOAP::Lite object will automagically be configured to use the
correct URN, e.g.

   $q->endpoint('http://cdsws.u-strasbg.fr/axis/Sesame.jws?wsdl');

=cut

sub endpoint {
    my $self = shift;

    # SETTING ENDPOINT
    if (@_) {
        # set the url option
        my $endpoint = shift;

        if ($endpoint =~ /wsdl$/) {
            $self->{SERVICE} = 1;
        }
        $self->{ENDPOINT} = $endpoint;

    }

    if (defined $self->{ENDPOINT}) {
        return $self->{ENDPOINT};
    }
    else {
        return $self->_default_endpoint();
    }
}

=back

=head2 General Methods

=over 4

=item B<configure>

Configures the object, takes an options hash as an argument

    $q->configure(%options);

Does nothing if the array is not supplied.

=cut

sub configure {
    my $self = shift;
    $self->SUPER::configure(@_);
}

=back

=begin __PRIVATE_METHODS__

=head2 Private methods

These methods are for internal use only.

=over 4

=item B<_default_urn>

The default URN for the hostname. Must be specified in a sub-class.

    $host = $q->_default_urn();

=cut

sub _default_urn {
    croak "default URN must be specified in subclass\n";
}

=item B<_default_endpoint>

The default endpoint. Must be specified in a sub-class.

    $host = $q->_default_endpoint();

=cut

sub _default_endpoint {
    croak "default endpoint must be specified in subclass\n";
}

=item B<_is_service>

Whether the webservice uses a URN and $endpoint, or is
a service specified by a WSDL file

    $bool = $q->_is_service();

=back

=cut

sub _is_service {
    croak "decision must be made by subclass\n";
}

1;

__END__

=head1 COPYRIGHT

Copyright (C) 2001 University of Exeter. All Rights Reserved.
Some modifications copyright (C) 2003 Particle Physics and Astronomy
Research Council. All Rights Reserved.

This program was written as part of the eSTAR project and is free software;
you can redistribute it and/or modify it under the terms of the GNU Public
License.

=head1 AUTHORS

Alasdair Allan E<lt>aa@astro.ex.ac.ukE<gt>,
Tim Jenness E<lt>tjenness@cpan.orgE<gt>

=cut



( run in 0.624 second using v1.01-cache-2.11-cpan-5a3173703d6 )