libdap Updated for version 3.21.1
libdap4 is an implementation of OPeNDAP's DAP protocol.
libdap::HTTPResponse Class Reference

#include <HTTPResponse.h>

Inheritance diagram for libdap::HTTPResponse:
Inheritance graph
Collaboration diagram for libdap::HTTPResponse:
Collaboration graph

Public Member Functions

 HTTPResponse ()=default
 
 HTTPResponse (const HTTPResponse &rs)=delete
 
 HTTPResponse (FILE *s, int status, const std::vector< std::string > &h, const std::string &temp_file)
 
 HTTPResponse (std::fstream *s, int status, const 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.
 
HTTPResponseoperator= (const HTTPResponse &)=delete
 
void transform_to_cpp ()
 
 ~HTTPResponse () override
 
Accessors
virtual std::vector< std::string > & get_headers ()
 
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)
 

Protected Attributes

bool d_delete_cpp_stream_ptr = false
 

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.

Definition at line 50 of file HTTPResponse.h.

Constructor & Destructor Documentation

◆ HTTPResponse() [1/4]

libdap::HTTPResponse::HTTPResponse ( )
default

◆ HTTPResponse() [2/4]

libdap::HTTPResponse::HTTPResponse ( const HTTPResponse & rs)
delete

◆ HTTPResponse() [3/4]

libdap::HTTPResponse::HTTPResponse ( FILE * s,
int status,
const 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
sFILE * to the response. Read the response body from this stream.
statusThe HTTP response status code.
hResponse headers. This class will delete the pointer when the instance that contains it is destroyed.
temp_fileName a the temporary file that holds the response body; this file is deleted when this instance is deleted.

Definition at line 76 of file HTTPResponse.h.

◆ HTTPResponse() [4/4]

libdap::HTTPResponse::HTTPResponse ( std::fstream * s,
int status,
const 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.

Parameters
s
status
h
temp_file

Definition at line 87 of file HTTPResponse.h.

◆ ~HTTPResponse()

libdap::HTTPResponse::~HTTPResponse ( )
inlineoverride

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

Member Function Documentation

◆ get_cpp_stream()

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

Reimplemented in libdap::StdinResponse.

Definition at line 104 of file Response.h.

◆ get_file()

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

Definition at line 120 of file HTTPResponse.h.

◆ get_headers()

virtual std::vector< std::string > & libdap::HTTPResponse::get_headers ( )
inlinevirtual

Definition at line 119 of file HTTPResponse.h.

◆ get_protocol()

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

Definition at line 108 of file Response.h.

◆ get_status()

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

Definition at line 102 of file Response.h.

◆ get_stream()

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

Reimplemented in libdap::PipeResponse, and libdap::StdinResponse.

Definition at line 103 of file Response.h.

◆ get_type()

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

Definition at line 106 of file Response.h.

◆ get_version()

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

Definition at line 107 of file Response.h.

◆ operator=()

HTTPResponse & libdap::HTTPResponse::operator= ( const HTTPResponse & )
delete

◆ set_cpp_stream()

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

Reimplemented in libdap::StdinResponse.

Definition at line 116 of file Response.h.

◆ set_file()

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

Definition at line 126 of file HTTPResponse.h.

◆ set_headers()

virtual void libdap::HTTPResponse::set_headers ( std::vector< std::string > & h)
inlinevirtual

Definition at line 125 of file HTTPResponse.h.

◆ set_protocol()

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

Definition at line 120 of file Response.h.

◆ set_status()

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

Definition at line 113 of file Response.h.

◆ set_stream()

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

Reimplemented in libdap::PipeResponse, and libdap::StdinResponse.

Definition at line 115 of file Response.h.

◆ set_type()

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

Definition at line 118 of file Response.h.

◆ set_version()

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

Definition at line 119 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 104 of file HTTPResponse.h.

Member Data Documentation

◆ d_delete_cpp_stream_ptr

bool libdap::Response::d_delete_cpp_stream_ptr = false
protectedinherited

Definition at line 67 of file Response.h.


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