bes Updated for version 3.21.1
The Backend Server (BES) is the lower two tiers of the Hyrax data server
FoInstanceJsonTransmitter Class Reference

BESTransmitter class named "json" that transmits an OPeNDAP data object as a JSON file. More...

#include <FoInstanceJsonTransmitter.h>

Inheritance diagram for FoInstanceJsonTransmitter:
Inheritance graph
Collaboration diagram for FoInstanceJsonTransmitter:
Collaboration graph

Public Member Functions

virtual bool add_method (std::string method_name, p_transmitter trans_method)
 
virtual void dump (std::ostream &strm) const
 dumps information about this object
 
virtual p_transmitter find_method (std::string method_name)
 
 FoInstanceJsonTransmitter ()
 Construct the FoJsonTransmitter.
 
virtual bool remove_method (std::string method_name)
 
virtual void send_html (BESInfo &info, BESDataHandlerInterface &dhi)
 
virtual void send_response (const std::string &method, BESResponseObject *obj, BESDataHandlerInterface &dhi)
 
virtual void send_text (BESInfo &info, BESDataHandlerInterface &dhi)
 

Static Public Member Functions

static void send_data (BESResponseObject *obj, BESDataHandlerInterface &dhi)
 The static method registered to transmit OPeNDAP data objects as a JSON file.
 
static void send_metadata (BESResponseObject *obj, BESDataHandlerInterface &dhi)
 The static method registered to transmit OPeNDAP data objects as a JSON file.
 

Detailed Description

BESTransmitter class named "json" that transmits an OPeNDAP data object as a JSON file.

The FoJsonTransmitter transforms an OPeNDAP DataDDS object into a JSON file and streams the new (temporary) JSON file back to the client.

See also
BESTransmitter

Definition at line 46 of file FoInstanceJsonTransmitter.h.

Constructor & Destructor Documentation

◆ FoInstanceJsonTransmitter()

FoInstanceJsonTransmitter::FoInstanceJsonTransmitter ( )

Construct the FoJsonTransmitter.

The transmitter is created to add the ability to return OPeNDAP data objects (DataDDS) as instance object representation JSON documents.

The OPeNDAP data object is written to a JSON file locally in a temporary directory specified by the BES configuration parameter FoJson.Tempdir. If this variable is not found or is not set then it defaults to the macro definition FO_JSON_TEMP_DIR.

Definition at line 79 of file FoInstanceJsonTransmitter.cc.

◆ ~FoInstanceJsonTransmitter()

virtual FoInstanceJsonTransmitter::~FoInstanceJsonTransmitter ( )
inlinevirtual

Definition at line 52 of file FoInstanceJsonTransmitter.h.

Member Function Documentation

◆ add_method()

bool BESTransmitter::add_method ( std::string method_name,
p_transmitter trans_method )
virtualinherited

Definition at line 56 of file BESTransmitter.cc.

◆ dump()

void BESTransmitter::dump ( std::ostream & strm) const
virtualinherited

dumps information about this object

Displays the pointer value of this instance along with the names of register transmit methods

Parameters
strmC++ i/o stream to dump the information to

Implements BESObj.

Definition at line 134 of file BESTransmitter.cc.

◆ find_method()

p_transmitter BESTransmitter::find_method ( std::string method_name)
virtualinherited

Definition at line 78 of file BESTransmitter.cc.

◆ remove_method()

bool BESTransmitter::remove_method ( std::string method_name)
virtualinherited

Definition at line 67 of file BESTransmitter.cc.

◆ send_data()

void FoInstanceJsonTransmitter::send_data ( BESResponseObject * obj,
BESDataHandlerInterface & dhi )
static

The static method registered to transmit OPeNDAP data objects as a JSON file.

This function takes the OPeNDAP DataDDS object, reads in the data (can be used with any data handler), transforms the data into a JSON file, and streams back that JSON file back to the requester using the stream specified in the BESDataHandlerInterface.

Parameters
objThe BESResponseObject containing the OPeNDAP DataDDS object
dhiBESDataHandlerInterface containing information about the request and response
Exceptions
BESInternalErrorif the response is not an OPeNDAP DataDDS or if there are any problems reading the data, writing to a JSON file, or streaming the JSON file

Definition at line 165 of file FoInstanceJsonTransmitter.cc.

◆ send_html()

void BESTransmitter::send_html ( BESInfo & info,
BESDataHandlerInterface & dhi )
virtualinherited

Definition at line 114 of file BESTransmitter.cc.

◆ send_metadata()

void FoInstanceJsonTransmitter::send_metadata ( BESResponseObject * obj,
BESDataHandlerInterface & dhi )
static

The static method registered to transmit OPeNDAP data objects as a JSON file.

This function takes the OPeNDAP DDS object, reads in the metadata (can be used with any data handler), transforms the metadata into a JSON file, and streams back that JSON file back to the requester using the stream specified in the BESDataHandlerInterface.

Note
This static method differs from the send_data() method in that it expects the BESResponseObject to be a DDS and not a DataDDS. This distinction is somewhat bogus as of libdap 3.13, but the two different classes do exist.
Parameters
objThe BESResponseObject containing the OPeNDAP DataDDS object
dhiBESDataHandlerInterface containing information about the request and response
Exceptions
BESInternalErrorif the response is not an OPeNDAP DataDDS or if there are any problems reading the data, writing to a JSON file, or streaming the JSON file

Definition at line 118 of file FoInstanceJsonTransmitter.cc.

◆ send_response()

void BESTransmitter::send_response ( const std::string & method,
BESResponseObject * obj,
BESDataHandlerInterface & dhi )
virtualinherited

Definition at line 89 of file BESTransmitter.cc.

◆ send_text()

void BESTransmitter::send_text ( BESInfo & info,
BESDataHandlerInterface & dhi )
virtualinherited

Definition at line 101 of file BESTransmitter.cc.


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