HTTPConnect Class Reference

#include <HTTPConnect.h>

Collaboration diagram for HTTPConnect:

Collaboration graph
[legend]
List of all members.

Public Member Functions

HTTPResponsefetch_url (const string &url)
 HTTPConnect (RCReader *rcr) throw (Error, InternalErr)
bool is_cache_enabled ()
void set_accept_deflate (bool defalte)
void set_cache_enabled (bool enabled)
void set_credentials (const string &u, const string &p)
virtual ~HTTPConnect ()

Protected Member Functions

Suppress default methods
These methods are not supported and are implemented here as protected methods to suppress the C++-supplied default versions (which will break this object).

 HTTPConnect (const HTTPConnect &)
 HTTPConnect ()
HTTPConnectoperator= (const HTTPConnect &)

Friends

class HTTPConnectTest
class ParseHeader
size_t save_raw_http_header (void *ptr, size_t size, size_t nmemb, void *http_connect)

Detailed Description

Use the CURL library to dereference a HTTP URL. Scan the response for headers used by the DAP 2.0 and extract their values. The body of the response is made available by a FILE pointer.

Todo:
Change the way this class returns information so that the headers and the stream (aka FILE pointer) are returned using an object. Design this object so that its destructor closes the stream (this will prevent resource leaks). It will also obviate the need for the (now broken) is_response_present() predicate.
Author:
jhrg

Definition at line 77 of file HTTPConnect.h.


Constructor & Destructor Documentation

HTTPConnect::HTTPConnect (  )  [inline, protected]

Definition at line 119 of file HTTPConnect.h.

HTTPConnect::HTTPConnect ( const HTTPConnect  )  [inline, protected]

Definition at line 121 of file HTTPConnect.h.

HTTPConnect::HTTPConnect ( RCReader rcr  )  throw (Error, InternalErr)

Build a virtual connection to a remote data source that will be accessed using HTTP.

Parameters:
rcr A pointer to the RCReader object which holds configuration file information to be used by this virtual connection.

Definition at line 487 of file HTTPConnect.cc.

References CNAME, CVER, DBG2, and HTTPCache::instance().

Here is the call graph for this function:

HTTPConnect::~HTTPConnect (  )  [virtual]

Definition at line 526 of file HTTPConnect.cc.

References DBG2.


Member Function Documentation

HTTPResponse * HTTPConnect::fetch_url ( const string &  url  ) 

Dereference a URL. This method dereferences a URL and stores the result (i.e., it formulates an HTTP request and processes the HTTP server's response). After this method is successfully called, the value of is_response_present() will be true and the methods get_response_headers(), type() and server_version() may be called.

Parameters:
url The URL to dereference.
Returns:
A pointer to the stream.
Exceptions:
Error Thrown if the URL could not be dereferenced.
InternalErr Thrown if a temporary file to hold the response could not be opened.

Definition at line 548 of file HTTPConnect.cc.

References HTTPResponse::get_headers(), HTTPCache::is_cache_enabled(), ParseHeader, Response::set_protocol(), Response::set_type(), and Response::set_version().

Referenced by AISMerge::get_ais_resource(), main(), Connect::request_das(), Connect::request_das_url(), Connect::request_data(), Connect::request_data_url(), Connect::request_dds(), Connect::request_dds_url(), Connect::request_ddx(), Connect::request_ddx_url(), Connect::request_protocol(), and Connect::request_version().

Here is the call graph for this function:

bool HTTPConnect::is_cache_enabled (  )  [inline]

Return the current state of the HTTP cache.

Definition at line 149 of file HTTPConnect.h.

References HTTPCache::is_cache_enabled().

Referenced by Connect::is_cache_enabled().

Here is the call graph for this function:

HTTPConnect& HTTPConnect::operator= ( const HTTPConnect  )  [inline, protected]

Definition at line 123 of file HTTPConnect.h.

void HTTPConnect::set_accept_deflate ( bool  deflate  ) 

Set the accept deflate property. If true, the DAP client announces to a server that it can accept responses compressed using the deflate algorithm. This property is automatically set using a value from the .dodsrc configuration file. This method provides a way to override that behavior.

Note:
If the configuration file is not present or does not include a value for this property, it is set to false.
Parameters:
deflate True sets the accept deflate property, False clears it.

Definition at line 790 of file HTTPConnect.cc.

References DBG.

Referenced by main(), and Connect::set_accept_deflate().

void HTTPConnect::set_cache_enabled ( bool  enabled  )  [inline]

Set the state of the HTTP cache. By default, the HTTP cache is enabled of disabled using the value of the USE_CACHE property in the .dodsrc file. Use this method to set the state from within a program.

Parameters:
enabled True to use the cache, False to disable.

Definition at line 142 of file HTTPConnect.h.

References HTTPCache::set_cache_enabled().

Referenced by Connect::set_cache_enabled().

Here is the call graph for this function:

void HTTPConnect::set_credentials ( const string &  u,
const string &  p 
)

Set the credentials for responding to challenges while dereferencing URLs. Alternatively, these can be embedded in the URL. This method provides a way for clients of HTTPConnect to get credentials from users (say using a pop up dialog) and to not hack the URL to pass that information to libcurl. Note that the 'credentials in the URL' scheme is part of the URL standard.

This method does nothing if u, the username, is empty.

Parameters:
u The username.
p The password.
Exceptions:
InternalErr The credentials could not be registered with libcurl.
See also:
extract_auth_info()

Definition at line 826 of file HTTPConnect.cc.

Referenced by Connect::set_credentials().


Friends And Related Function Documentation

friend class HTTPConnectTest [friend]

Definition at line 110 of file HTTPConnect.h.

friend class ParseHeader [friend]

Definition at line 111 of file HTTPConnect.h.

Referenced by fetch_url().

size_t save_raw_http_header ( void *  ptr,
size_t  size,
size_t  nmemb,
void *  http_connect 
) [friend]


The documentation for this class was generated from the following files:
Generated on Wed Jun 27 12:58:02 2007 for libdap++ by  doxygen 1.4.7