Code owners
Assign users and groups as approvers for specific file changes. Learn more.
TIMIQException.cpp 6.63 KiB
//=============================================================================
// TIMIQException.cpp
//=============================================================================
// abstraction.......Tim IQ Application Programming Interface
// class.............TIMIQ Error & Exception implementation
// original author...xxxxx
//=============================================================================
// ============================================================================
// DEPENDENCIES
// ============================================================================
#include "TIMIQException.h"
namespace TIMIQLib_ns {
// ============================================================================
// Error::Error
// ============================================================================
Error::Error ()
: reason ("unknown"),
desc ("unknown exception"),
origin ("unknown"),
code (-1),
severity (TIMIQLib_ns::ERR)
{
}
// ============================================================================
// Error::Error
// ============================================================================
Error::Error (const char *_reason,
const char *_desc,
const char *_origin,
int _code,
TIMIQLib_ns::Severity _severity)
: reason (_reason),
desc (_desc),
origin (_origin),
code (_code),
severity (_severity)
{
}
// ============================================================================
// Error::Error
// ============================================================================
Error::Error (const std::string& _reason,
const std::string& _desc,
const std::string& _origin,
int _code,
TIMIQLib_ns::Severity _severity)
: reason (_reason),
desc (_desc),
origin (_origin),
code (_code),
severity (_severity)
{
}
// ============================================================================
// Error::Error
// ============================================================================
Error::Error (const Error& _src)
: reason (_src.reason),
desc (_src.desc),
origin (_src.origin),
code (_src.code),
severity (_src.severity)
{
}
// ============================================================================
// Error::~Error
// ============================================================================
Error::~Error ()
{
}
// ============================================================================
// Error::operator=
// ============================================================================
Error& Error::operator= (const Error& _src)
{
//- no self assign
if (this == &_src) {
return *this;
}
this->reason = _src.reason;
this->desc = _src.desc;
this->origin = _src.origin;
this->code = _src.code;
this->severity = _src.severity;
return *this;
}
// ============================================================================
// Exception::Exception
// ============================================================================
Exception::Exception ()
: errors(0)
{
this->push_error(Error());
}
// ============================================================================
// Exception::Exception
// ============================================================================
Exception::Exception (const char *_reason,
const char *_desc,
const char *_origin,
int _code,
TIMIQLib_ns::Severity _severity)
: errors(0)
{
this->push_error(Error(_reason, _desc, _origin, _code, _severity));
}
// ============================================================================
// Exception::Exception
// ============================================================================
Exception::Exception (const std::string& _reason,
const std::string& _desc,
const std::string& _origin,
int _code,
TIMIQLib_ns::Severity _severity)
: errors(0)
{
this->push_error(_reason, _desc, _origin, _code, _severity);
}
// ============================================================================
// Exception::Exception
// ============================================================================
Exception::Exception (const Exception& _src)
: errors(0)
{
for (unsigned int idx = 0; idx < _src.errors.size(); idx++)
{
this->push_error(_src.errors[idx]);
}
}
// ============================================================================
// Exception::Exception
// ============================================================================
Exception& Exception::operator= (const Exception& _src)
{
//- no self assign
if (this == &_src) {
return *this;
}
this->errors.clear();
for (unsigned int idx = 0; idx < _src.errors.size(); idx++)
{
this->push_error(_src.errors[idx]);
}
return *this;
}
// ============================================================================
// Exception::~Exception
// ============================================================================
Exception::~Exception ()
{
this->errors.clear();
}
// ============================================================================
// Exception::push_error
// ============================================================================
void Exception::push_error (const char *_reason,
const char *_desc,
const char *_origin,
int _code,
TIMIQLib_ns::Severity _severity)
{
this->errors.push_back(Error(_reason, _desc, _origin, _code, _severity));
}
// ============================================================================
// Exception::push_error
// ============================================================================
void Exception::push_error (const std::string& _reason,
const std::string& _desc,
const std::string& _origin,
int _code,
TIMIQLib_ns::Severity _severity)
{
this->errors.push_back(Error(_reason, _desc, _origin, _code, _severity));
}
// ============================================================================
// Exception::push_error
// ============================================================================
void Exception::push_error (const Error& _error)
{
this->errors.push_back(_error);
}
} // namespace TIMIQLib_ns