X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=include%2Flibmemcached-1%2Fexception.hpp;fp=include%2Flibmemcached-1%2Fexception.hpp;h=d7d74812c3dda99da37e86000f21f36808ee63d2;hb=3ffc968aaf182bf1ff1e18157c7bde2bdb41668d;hp=0000000000000000000000000000000000000000;hpb=a20205ad8b1a30fbc419e016a633b40b739073c7;p=awesomized%2Flibmemcached diff --git a/include/libmemcached-1/exception.hpp b/include/libmemcached-1/exception.hpp new file mode 100644 index 00000000..d7d74812 --- /dev/null +++ b/include/libmemcached-1/exception.hpp @@ -0,0 +1,57 @@ +/* + +--------------------------------------------------------------------+ + | libmemcached - C/C++ Client Library for memcached | + +--------------------------------------------------------------------+ + | Redistribution and use in source and binary forms, with or without | + | modification, are permitted under the terms of the BSD license. | + | You should have received a copy of the license in a bundled file | + | named LICENSE; in case you did not receive a copy you can review | + | the terms online at: https://opensource.org/licenses/BSD-3-Clause | + +--------------------------------------------------------------------+ + | Copyright (c) 2006-2014 Brian Aker https://datadifferential.com/ | + | Copyright (c) 2020 Michael Wallner | + +--------------------------------------------------------------------+ +*/ + +#pragma once + +#include +#include + +namespace memcache { +class Exception : public std::runtime_error { +public: + Exception(const std::string &msg, int in_errno) + : std::runtime_error(msg) + , _errno(in_errno) {} + + Exception(const char *msg, int in_errno) + : std::runtime_error(std::string(msg)) + , _errno(in_errno) {} + + virtual ~Exception() throw() {} + + int getErrno() const { return _errno; } + +private: + int _errno; +}; + +class Warning : public Exception { +public: + Warning(const std::string &msg, int in_errno) + : Exception(msg, in_errno) {} + Warning(const char *msg, int in_errno) + : Exception(msg, in_errno) {} +}; + +class Error : public Exception { +public: + Error(const std::string &msg, int in_errno) + : Exception(msg, in_errno) {} + Error(const char *msg, int in_errno) + : Exception(msg, in_errno) {} + virtual ~Error() throw() {} +}; + +} // namespace memcache