TAO_HTTP_Client Class Reference

HTTP_Client is intended to provide application API to classes that wish to do network i/o at a very high level of abstraction. More...

#include <HTTP_Client.h>

Collaboration diagram for TAO_HTTP_Client:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 TAO_HTTP_Client (void)
 ~TAO_HTTP_Client (void)
int open (const ACE_TCHAR *filename, const ACE_TCHAR *hostname=ACE_DEFAULT_SERVER_HOST, u_short port=80)
int read (ACE_Message_Block *mb)
int close ()
 Frees memory allocated for filename.

Private Attributes

ACE_INET_Addr inet_addr_
 Store the internet address of the server.
ACE_TCHARfilename_
 The filename.
ACE_Connector< TAO_HTTP_Handler,
ACE_SOCK_CONNECTOR
connector_
 The connector endpoint to initiate the client connection.

Detailed Description

HTTP_Client is intended to provide application API to classes that wish to do network i/o at a very high level of abstraction.

This class provides the ability to retrieve data from the network, of specified length and offset, and potentially use any protocol "under the hood" to do so. It currently uses HTTP. See HTTP_Handler also.

Definition at line 52 of file HTTP_Client.h.


Constructor & Destructor Documentation

TAO_BEGIN_VERSIONED_NAMESPACE_DECL TAO_HTTP_Client::TAO_HTTP_Client ( void   ) 

Definition at line 12 of file HTTP_Client.cpp.

00013 {
00014 }

TAO_HTTP_Client::~TAO_HTTP_Client ( void   ) 

Definition at line 16 of file HTTP_Client.cpp.

References close().

00017 {
00018   this->close ();
00019 }


Member Function Documentation

int TAO_HTTP_Client::close (  ) 

Frees memory allocated for filename.

Definition at line 49 of file HTTP_Client.cpp.

References filename_, and ACE_OS::free().

Referenced by TAO_HTTP_Parser::parse_string(), and ~TAO_HTTP_Client().

00050 {
00051   if (this->filename_)
00052     {
00053       ACE_OS::free ((void *) this->filename_);
00054       this->filename_ = 0;
00055     }
00056   return 0;
00057 }

int TAO_HTTP_Client::open ( const ACE_TCHAR filename,
const ACE_TCHAR hostname = ACE_DEFAULT_SERVER_HOST,
u_short  port = 80 
)

Initializes the class with the given filename, hostname and port. it should be called with the filename, before any read/write calls

Definition at line 22 of file HTTP_Client.cpp.

References filename_, inet_addr_, ACE_INET_Addr::set(), and ACE_OS::strdup().

Referenced by TAO_HTTP_Parser::parse_string().

00025 {
00026   this->filename_ = ACE_OS::strdup (filename);
00027   this->inet_addr_.set (port, hostname);
00028   return 0;
00029 }

int TAO_HTTP_Client::read ( ACE_Message_Block mb  ) 

Starts a connection, and reads a file from the server into Message_Block mb

Definition at line 32 of file HTTP_Client.cpp.

References ACE_ERROR_RETURN, TAO_HTTP_Handler::byte_count(), ACE_Connector< SVC_HANDLER, >::connect(), connector_, and LM_ERROR.

Referenced by TAO_HTTP_Parser::parse_string().

00033 {
00034   // Create a HTTP_Client Reader
00035   TAO_HTTP_Reader HTTP_reader (mb, this->filename_);
00036   TAO_HTTP_Handler *brp = &HTTP_reader;
00037 
00038   // Connect to the server
00039   if (connector_.connect (brp, this->inet_addr_) == -1)
00040     {
00041       ACE_ERROR_RETURN ((LM_ERROR, "TAO (%P|%t) - HTTP_Client::read, Connector error\n"), -1);
00042     }
00043 
00044   return HTTP_reader.byte_count ();
00045 
00046 }


Member Data Documentation

ACE_Connector<TAO_HTTP_Handler, ACE_SOCK_CONNECTOR> TAO_HTTP_Client::connector_ [private]

The connector endpoint to initiate the client connection.

Definition at line 79 of file HTTP_Client.h.

Referenced by read().

ACE_TCHAR* TAO_HTTP_Client::filename_ [private]

The filename.

Definition at line 76 of file HTTP_Client.h.

Referenced by close(), and open().

ACE_INET_Addr TAO_HTTP_Client::inet_addr_ [private]

Store the internet address of the server.

Definition at line 73 of file HTTP_Client.h.

Referenced by open().


The documentation for this class was generated from the following files:
Generated on Tue Feb 2 17:39:30 2010 for TAO by  doxygen 1.4.7