libdap::InternalErr Class Reference

A class for software fault reporting. More...

`#include <InternalErr.h>`

Inheritance diagram for libdap::InternalErr:

## Public Member Functions

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?
bool | parse (FILE *fp)
| Parse an Error object.
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.
Constructors
Constructors for the Error object These constructors always set the error code to `internal_error`. Note that there is no way to specify an error correction program for an internal error.
| InternalErr (const string &msg)
| InternalErr (const string &file, const int &line, const string &msg)
| InternalErr (const InternalErr &copy_from) noexcept
InternalErr & | operator= (const InternalErr &rhs)
bool | OK ()
| Is the InternalErr object valid?

## Protected Attributes

ErrorCode | _error_code
std::string | _error_message
std::string | d_file
int | d_line = 0

## Detailed Description

A class for software fault reporting.

The InternalErr class is used to signal that somewhere inside libdap a software fault was found. This class wraps the message text in some boiler plate that asks the error be reported to us (tech support).

NB: This class Adds some text to the message and might, in the future, hold information not also held in Error. However, all Error objects thrown on the server-side of libdap that cannot be resolved (and that's all of them for now, 5/3/99 jhrg) will be sent to the client-side using Error objects. That is, the information recorded in an InternalErr object will be sent by calling the `print(...)` mfunc of Error.

Author
  jhrg

Definition at line 64 of file InternalErr.h.

## Constructor & Destructor Documentation

## InternalErr() [1/4]

libdap::InternalErr::InternalErr | ( | const string & | msg | ) |

explicit

Definition at line 53 of file InternalErr.cc.

## InternalErr() [2/4]

libdap::InternalErr::InternalErr | ( | const string & | file,
|  | const int & | line,
|  | const string & | msg
| ) |  |

Definition at line 65 of file InternalErr.cc.

## InternalErr() [3/4]

libdap::InternalErr::InternalErr | ( |  | ) |

Definition at line 48 of file InternalErr.cc.

## InternalErr() [4/4]

libdap::InternalErr::InternalErr | ( | const InternalErr & | copy_from | ) |

noexcept

Definition at line 78 of file InternalErr.cc.

## ~InternalErr()

libdap::InternalErr::~InternalErr | ( |  | ) |

override noexcept

Definition at line 82 of file InternalErr.cc.

## Member Function Documentation

## get_error_code()

ErrorCode libdap::Error::get_error_code | ( |  | ) | const

inherited

Get the ErrorCode for this instance.

Definition at line 214 of file Error.cc.

## get_error_message()

string libdap::Error::get_error_message | ( |  | ) | const

inherited

Return the current error message.

Definition at line 243 of file Error.cc.

## get_file()

std::string libdap::Error::get_file | ( |  | ) | const

inline inherited

Definition at line 150 of file Error.h.

## get_line()

int libdap::Error::get_line | ( |  | ) | const

inline inherited

Definition at line 152 of file Error.h.

## OK() [1/2]

bool libdap::InternalErr::OK | ( |  | ) |

Is the InternalErr object valid?

Returns
  TRUE if the object is valid, FALSE otherwise.

Definition at line 102 of file InternalErr.cc.

## OK() [2/2]

bool libdap::Error::OK | ( |  | ) | const

inherited

Is the Error object valid?

Use this function to determine whether an Error object is valid. To be a valid, an Error object must either be: 1) empty or contain a message and a code.

Returns
  TRUE if the object is valid, FALSE otherwise.

Definition at line 100 of file Error.cc.

## operator=()

InternalErr & libdap::InternalErr::operator= | ( | const InternalErr & | rhs | ) |

Definition at line 86 of file InternalErr.cc.

## parse()

bool libdap::Error::parse | ( | FILE * | fp | ) |

inherited

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.

Parameters

  fp | A valid file pointer to an input stream.

Returns
  TRUE if no error was detected, FALSE otherwise.

Definition at line 123 of file Error.cc.

## print() [1/2]

void libdap::Error::print | ( | FILE * | out | ) | const

inherited

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.

Parameters

  out | A pointer to the output stream on which the Error object is to be rendered.

Definition at line 165 of file Error.cc.

## print() [2/2]

void libdap::Error::print | ( | std::ostream & | out | ) | const

inherited

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.

Parameters

  strm | A reference to the output stream on which the Error object is to be rendered.

Definition at line 194 of file Error.cc.

## set_error_code()

void libdap::Error::set_error_code | ( | ErrorCode | ec = `undefined_error` | ) |

inherited

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.

Parameters

  ec | The new ErrorCode value.

Definition at line 227 of file Error.cc.

## set_error_message()

void libdap::Error::set_error_message | ( | std::string | msg = `""` | ) |

inherited

Set the error message.

Definition at line 252 of file Error.cc.

## set_file()

void libdap::Error::set_file | ( | std::string | f | ) |

inline inherited

Definition at line 151 of file Error.h.

## set_line()

void libdap::Error::set_line | ( | int | l | ) |

inline inherited

Definition at line 153 of file Error.h.

## what()

const char * libdap::Error::what | ( |  | ) | const

inline override noexcept inherited

The pointer is valid only for the lifetime of the Error instance. jhrg 9/22/20.

Definition at line 156 of file Error.h.

## Member Data Documentation

## _error_code

ErrorCode libdap::Error::_error_code

protected inherited

Definition at line 96 of file Error.h.

## _error_message

std::string libdap::Error::_error_message

protected inherited

Definition at line 97 of file Error.h.

## d_file

std::string libdap::Error::d_file

protected inherited

Definition at line 98 of file Error.h.

## d_line

int libdap::Error::d_line = 0

protected inherited

Definition at line 99 of file Error.h.

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

- InternalErr.h
- InternalErr.cc