mirror of
https://github.com/qpdf/qpdf.git
synced 2024-11-16 01:27:07 +00:00
1e74c03acd
git-svn-id: svn+q:///qpdf/trunk@688 71b93d88-0707-0410-a8cf-f5a4172ac649
78 lines
1.3 KiB
C++
78 lines
1.3 KiB
C++
|
|
#include <qpdf/QEXC.hh>
|
|
#include <string.h>
|
|
#include <errno.h>
|
|
|
|
DLL_EXPORT
|
|
QEXC::Base::Base()
|
|
{
|
|
// nothing needed
|
|
}
|
|
|
|
DLL_EXPORT
|
|
QEXC::Base::Base(std::string const& message) :
|
|
message(message)
|
|
{
|
|
// nothing needed
|
|
}
|
|
|
|
DLL_EXPORT
|
|
std::string const&
|
|
QEXC::Base::unparse() const
|
|
{
|
|
return this->message;
|
|
}
|
|
|
|
DLL_EXPORT
|
|
void
|
|
QEXC::Base::setMessage(std::string const& message)
|
|
{
|
|
this->message = message;
|
|
}
|
|
|
|
DLL_EXPORT
|
|
const char*
|
|
QEXC::Base::what() const throw()
|
|
{
|
|
// Since unparse() returns a const string reference, its
|
|
// implementors must arrange to have it return a reference to a
|
|
// string that is not going to disappear. It is therefore safe
|
|
// for us to return it's c_str() pointer.
|
|
return this->unparse().c_str();
|
|
}
|
|
|
|
DLL_EXPORT
|
|
QEXC::General::General()
|
|
{
|
|
// nothing needed
|
|
}
|
|
|
|
DLL_EXPORT
|
|
QEXC::General::General(std::string const& message) :
|
|
Base(message)
|
|
{
|
|
// nothing needed
|
|
}
|
|
|
|
DLL_EXPORT
|
|
QEXC::System::System(std::string const& prefix, int sys_errno)
|
|
{
|
|
// Note: using sys_errno in case errno is a macro.
|
|
this->sys_errno = sys_errno;
|
|
this->setMessage(prefix + ": " + strerror(sys_errno));
|
|
}
|
|
|
|
DLL_EXPORT
|
|
int
|
|
QEXC::System::getErrno() const
|
|
{
|
|
return this->sys_errno;
|
|
}
|
|
|
|
DLL_EXPORT
|
|
QEXC::Internal::Internal(std::string const& message) :
|
|
Base("INTERNAL ERROR: " + message)
|
|
{
|
|
// nothing needed
|
|
}
|