libdap::HTTPResponse Class Reference

`#include <HTTPResponse.h>`

Inheritance diagram for libdap::HTTPResponse:

## Public Member Functions

Accessors
virtual std::vector< std::string > * | get_headers () const
virtual std::string | get_file () const
Mutators
virtual void | set_headers (std::vector< std::string > *h)
virtual void | set_file (const std::string &n)
getters
virtual int | get_status () const
virtual FILE * | get_stream () const
virtual std::istream * | get_cpp_stream () const
virtual ObjectType | get_type () const
virtual std::string | get_version () const
virtual std::string | get_protocol () const
setters
virtual void | set_status (int s)
virtual void | set_stream (FILE *s)
virtual void | set_cpp_stream (std::istream *s)
virtual void | set_type (ObjectType o)
virtual void | set_version (const std::string &v)
virtual void | set_protocol (const std::string &p)

## Suppressed default methods

| HTTPResponse ()
| HTTPResponse (const HTTPResponse &rs)
HTTPResponse & | operator= (const HTTPResponse &)
| HTTPResponse (FILE *s, int status, std::vector< std::string > *h, const std::string &temp_file)
| HTTPResponse (std::fstream *s, int status, std::vector< std::string > *h, const std::string &temp_file)
| Build a HTTPResponse using a cpp fstream When working with DAP4 responses, use C++ streams for I/0. More...
virtual | ~HTTPResponse ()
void | transform_to_cpp ()

## Detailed Description

Encapsulate an http response. Instead of directly returning the FILE pointer from which a response is read and vector of headers, return an instance of this object.

Todo:
  Maybe refactor so that the header parsing code is here and not in HTTPConnect?

Definition at line 56 of file HTTPResponse.h.

## Constructor & Destructor Documentation

## HTTPResponse() [1/2]

libdap::HTTPResponse::HTTPResponse | ( | FILE * | s,
|  | int | status,
|  | std::vector< std::string > * | h,
|  | const std::string & | temp_file
| ) |  |

inline

Build an HTTPResponse object. An instance of this class is used to return an HTTP response (body and headers). If the response is really from a remote server, the current HTTP code stores the body in a temporary file and the headers in a vector<string> object. This class will delete those resources when its destructor is called. If the response does not have a temporary file that needs to be deleted (say it actually comes from a local cache or was read directly into memory), the temp file should be set to "".

Parameters

  s | FILE * to the response. Read the response body from this stream.
  status | The HTTP response status code.
  h | Response headers. This class will delete the pointer when the instance that contains it is destroyed.
  temp_file | Name a the temporary file that holds the response body; this file is deleted when this instance is deleted.

Definition at line 87 of file HTTPResponse.h.

## HTTPResponse() [2/2]

libdap::HTTPResponse::HTTPResponse | ( | std::fstream * | s,
|  | int | status,
|  | std::vector< std::string > * | h,
|  | const std::string & | temp_file
| ) |  |

inline

Build a HTTPResponse using a cpp fstream When working with DAP4 responses, use C++ streams for I/0.

Todo:
  Decide on how the temp files fit into DAP4

Parameters

  s |
  status |
  h |
  temp_file |

Definition at line 105 of file HTTPResponse.h.

## ~HTTPResponse()

virtual libdap::HTTPResponse::~HTTPResponse | ( |  | ) |

inline virtual

When an instance is destroyed, free the temporary resources: the temp_file and headers are deleted. If the tmp file name is "", it is not deleted.

Definition at line 117 of file HTTPResponse.h.

## Member Function Documentation

## transform_to_cpp()

void libdap::HTTPResponse::transform_to_cpp | ( |  | ) |

inline

Build a new HTTPResponse object that works with C++ streams. Assume that the FILE* references a disk file.

Returns

Definition at line 151 of file HTTPResponse.h.

The documentation for this class was generated from the following file:

- HTTPResponse.h