/* * Exception.h * * Copyright (C) 2008 Matthias Schiffer * * This program is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . */ #ifndef MAD_COMMON_EXCEPTION_H_ #define MAD_COMMON_EXCEPTION_H_ namespace Mad { namespace Common { class Exception { public: enum ErrorCode { SUCCESS = 0x0000, UNEXPECTED_PACKET = 0x0001, INVALID_ACTION = 0x0002, ALREADY_IDENTIFIED = 0x0010, UNKNOWN_DAEMON = 0x0011, DAEMON_INACTIVE = 0x0012 }; private: ErrorCode errorCode; unsigned long subCode; unsigned long subSubCode; public: Exception(ErrorCode errorCode0, unsigned long subCode0 = 0, unsigned long subSubCode0 = 0) : errorCode(errorCode0), subCode(subCode0), subSubCode(subSubCode0) {} virtual ~Exception() {} ErrorCode getErrorCode() const {return errorCode;} unsigned long getSubCode() const {return subCode;} unsigned long getSubSubCode() const {return subSubCode;} const char* strerror() const; }; } } #endif /* MAD_COMMON_EXCEPTION_H_ */