diff options
author | redpony <redpony@ec762483-ff6d-05da-a07a-a48fb63a330f> | 2010-10-18 23:24:01 +0000 |
---|---|---|
committer | redpony <redpony@ec762483-ff6d-05da-a07a-a48fb63a330f> | 2010-10-18 23:24:01 +0000 |
commit | e0ef743090038ee02d656cee11debd2246624ba0 (patch) | |
tree | e5e1d32402c8dcb490c574e24c087c56d4cc172e /klm/util/exception.cc | |
parent | 0c2514868f58bbfe422aa275e2905182cf2f57eb (diff) |
kenneth's LM preliminary integration
git-svn-id: https://ws10smt.googlecode.com/svn/trunk@681 ec762483-ff6d-05da-a07a-a48fb63a330f
Diffstat (limited to 'klm/util/exception.cc')
-rw-r--r-- | klm/util/exception.cc | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/klm/util/exception.cc b/klm/util/exception.cc new file mode 100644 index 00000000..dd337a76 --- /dev/null +++ b/klm/util/exception.cc @@ -0,0 +1,35 @@ +#include "util/exception.hh" + +#include <errno.h> +#include <string.h> + +namespace util { + +Exception::Exception() throw() {} +Exception::~Exception() throw() {} + +namespace { +// The XOPEN version. +const char *HandleStrerror(int ret, const char *buf) { + if (!ret) return buf; + return NULL; +} + +// The GNU version. +const char *HandleStrerror(const char *ret, const char *buf) { + return ret; +} +} // namespace + +ErrnoException::ErrnoException() throw() : errno_(errno) { + char buf[200]; + buf[0] = 0; + const char *add = HandleStrerror(strerror_r(errno, buf, 200), buf); + if (add) { + *this << add << ' '; + } +} + +ErrnoException::~ErrnoException() throw() {} + +} // namespace util |