libdap Updated for version 3.20.11
libdap4 is an implementation of OPeNDAP's DAP protocol.
|
A class for error processing. More...
#include <Error.h>
Public Member Functions | |
Error () | |
Error (const Error ©_from) noexcept | |
Error (ErrorCode ec, std::string msg, std::string file="", int line=0) | |
Error (std::string msg, std::string file="", int line=0) | |
ErrorCode | get_error_code () const |
std::string | get_error_message () const |
std::string | get_file () const |
int | get_line () const |
bool | OK () const |
Is the Error object valid? More... | |
Error & | operator= (const Error &rhs) |
bool | parse (FILE *fp) |
Parse an Error object. More... | |
void | print (FILE *out) const |
void | print (std::ostream &out) const |
void | set_error_code (ErrorCode ec=undefined_error) |
void | set_error_message (std::string msg="") |
void | set_file (std::string f) |
void | set_line (int l) |
const char * | what () const noexcept override |
The pointer is valid only for the lifetime of the Error instance. jhrg 9/22/20. More... | |
Protected Attributes | |
ErrorCode | _error_code |
std::string | _error_message |
std::string | d_file |
int | d_line {} |
A class for error processing.
The Error class is used to transport error information from the server to the client within libdap. This class is also the base class for all the errors thrown by methods in the DAP, so catching Error will catch all DAP throws. Errors consist of an error code and a string. The code can be used to quickly distinguish between certain common errors while the string is used to convey information about the error to the user. The error code should never be displayed to the user.
This class is used on both clients and servers. The print() and parse() methods are used to send the object back and forth.
|
inline |
|
inline |
Create an instance with a specific code and message string. This ctor provides a way to to use any code and string you'd like. The code can be one of the standard codes or it may be specific to your server. Thus a client which can tell it's dealing with a specific type of server can use the code accordingly. In general, clients simply show the error message to users or write it to a log file.
ec | The error code |
msg | The error message string. |
file | Name of the source file (optional) |
line | Line in the source file (optional) |
|
inlineexplicit |
|
inlinenoexcept |
ErrorCode libdap::Error::get_error_code | ( | ) | const |
string libdap::Error::get_error_message | ( | ) | const |
bool libdap::Error::OK | ( | ) | const |
bool libdap::Error::parse | ( | FILE * | fp | ) |
Parse an Error object.
Given an input stream (FILE *) fp
, parse an Error object from stream. Values for fields of the Error object are parsed and this
is set accordingly. This is how a client program receives an error object from a server.
fp | A valid file pointer to an input stream. |
void libdap::Error::print | ( | FILE * | out | ) | const |
Creates a printable representation of the Error object. It is suitable for framing, and also for printing and sending over a network.
The printed representation produced by this function can be parsed by the parse() member function. Thus parse and print form a symmetrical pair that can be used to send and receive an Error object over the network in a MIME document.
out | A pointer to the output stream on which the Error object is to be rendered. |
void libdap::Error::print | ( | std::ostream & | out | ) | const |
Creates a printable representation of the Error object. It is suitable for framing, and also for printing and sending over a network.
The printed representation produced by this function can be parsed by the parse() member function. Thus parse and print form a symmetrical pair that can be used to send and receive an Error object over the network in a MIME document.
strm | A reference to the output stream on which the Error object is to be rendered. |
void libdap::Error::set_error_code | ( | ErrorCode | ec = undefined_error | ) |
Set the ErrorCode. If the current error message has not been set, use ec to set the error message. The resulting error message string is the same as the ErrorCode name. If ec is not within the range of values for an OPeNDAP ErrorCode, the error message is left unchanged.
ec | The new ErrorCode value. |
void libdap::Error::set_error_message | ( | std::string | msg = "" | ) |
|
inlineoverridenoexcept |