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 (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.
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 55 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 85 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 101 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 111 of file HTTPResponse.h.

## Member Function Documentation

## get_cpp_stream()

virtual std::istream * libdap::Response::get_cpp_stream | ( |  | ) | const

inline virtual inherited

Definition at line 105 of file Response.h.

## get_file()

virtual std::string libdap::HTTPResponse::get_file | ( |  | ) | const

inline virtual

Definition at line 154 of file HTTPResponse.h.

## get_headers()

virtual std::vector< std::string > * libdap::HTTPResponse::get_headers | ( |  | ) | const

inline virtual

Definition at line 153 of file HTTPResponse.h.

## get_protocol()

virtual std::string libdap::Response::get_protocol | ( |  | ) | const

inline virtual inherited

Definition at line 109 of file Response.h.

## get_status()

virtual int libdap::Response::get_status | ( |  | ) | const

inline virtual inherited

Definition at line 103 of file Response.h.

## get_stream()

virtual FILE * libdap::Response::get_stream | ( |  | ) | const

inline virtual inherited

Definition at line 104 of file Response.h.

## get_type()

virtual ObjectType libdap::Response::get_type | ( |  | ) | const

inline virtual inherited

Definition at line 107 of file Response.h.

## get_version()

virtual std::string libdap::Response::get_version | ( |  | ) | const

inline virtual inherited

Definition at line 108 of file Response.h.

## set_cpp_stream()

virtual void libdap::Response::set_cpp_stream | ( | std::istream * | s | ) |

inline virtual inherited

Definition at line 117 of file Response.h.

## set_file()

virtual void libdap::HTTPResponse::set_file | ( | const std::string & | n | ) |

inline virtual

Definition at line 160 of file HTTPResponse.h.

## set_headers()

virtual void libdap::HTTPResponse::set_headers | ( | std::vector< std::string > * | h | ) |

inline virtual

Definition at line 159 of file HTTPResponse.h.

## set_protocol()

virtual void libdap::Response::set_protocol | ( | const std::string & | p | ) |

inline virtual inherited

Definition at line 121 of file Response.h.

## set_status()

virtual void libdap::Response::set_status | ( | int | s | ) |

inline virtual inherited

Definition at line 114 of file Response.h.

## set_stream()

virtual void libdap::Response::set_stream | ( | FILE * | s | ) |

inline virtual inherited

Definition at line 116 of file Response.h.

## set_type()

virtual void libdap::Response::set_type | ( | ObjectType | o | ) |

inline virtual inherited

Definition at line 119 of file Response.h.

## set_version()

virtual void libdap::Response::set_version | ( | const std::string & | v | ) |

inline virtual inherited

Definition at line 120 of file Response.h.

## 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 143 of file HTTPResponse.h.

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

- HTTPResponse.h