--- yoda/event/Exception.h 2004/09/21 20:49:57 2.0 +++ yoda/event/Exception.h 2006/02/04 12:37:43 5.1 @@ -1,20 +1,92 @@ /** @file * $Source: /home/cvsmanager/yoda/event/Exception.h,v $ - * $Id: Exception.h,v 1.1.1.1 2004/07/06 12:20:23 kusanagi Exp $ - * $Author: kusanagi $ + * $Id: Exception.h,v 5.0 2005/08/29 09:45:48 Maurizio Nagni Exp $ + * $Author: Maurizio Nagni $ * * Header file for the exceptions of Pamela. */ +#ifndef EXCEPTION_H +#define EXCEPTION_H #include -#include +#include +#define UINT32 unsigned int +#define UINT16 unsigned short +#define UINT8 unsigned char + +using namespace std; namespace pamela { - class Exception: public std::exception { + + class Exception: public exception { + private: - std::string Name; + + protected: + const char *message; + char buff [100]; public: - Exception(std::string name): Name(name) {} + Exception(const char *msg = "message"): message(msg){ } virtual ~Exception () throw(){ } - virtual const char* what () const throw () { return Name.c_str(); } + virtual const char* print () const throw () { return message; } + }; + + class NotFoundEnvironmentVarException: public Exception { + public: + NotFoundEnvironmentVarException::NotFoundEnvironmentVarException(const char* msg): Exception(msg) {} + NotFoundEnvironmentVarException::~NotFoundEnvironmentVarException () throw(){ } + }; + + class UnidentifiedPacketException: public Exception { + private: + UINT8 pktId; + public: + UnidentifiedPacketException::UnidentifiedPacketException(UINT8 id): + Exception("Unidentified PacketType - Id: ") { + pktId = id; + } + UnidentifiedPacketException::~UnidentifiedPacketException () throw(){ } + const char* UnidentifiedPacketException::print () const throw () { + sprintf((char*)buff," %s 0x%x", message, pktId); + return buff; + } + }; + + class WrongCRCException: public Exception { + public: + WrongCRCException::WrongCRCException(const char* msg): Exception(msg) {} + WrongCRCException::~WrongCRCException () throw(){ } + }; + + class WrongCRCHeaderException: public Exception { + public: + WrongCRCHeaderException::WrongCRCHeaderException(const char* msg): Exception(msg) {} + WrongCRCHeaderException::~WrongCRCHeaderException () throw(){ } + }; + + + class LengthException: public Exception { + public: + LengthException::LengthException(const char* msg): Exception(msg) { } + LengthException::~LengthException () throw(){ } + }; + + + class NotExistingAlgorithmException: public Exception { + public: + NotExistingAlgorithmException::NotExistingAlgorithmException(const char *msg): Exception(msg) { } + NotExistingAlgorithmException::~NotExistingAlgorithmException () throw(){ } + }; + + class NotExistingCounterException: public Exception { + public: + NotExistingCounterException::NotExistingCounterException(const char *msg): Exception(msg) { } + NotExistingCounterException::~NotExistingCounterException () throw(){ } + }; + + class BackwardCounterException: public Exception { + public: + BackwardCounterException::BackwardCounterException(const char *msg): Exception(msg) { } + BackwardCounterException::~BackwardCounterException () throw(){ } }; } +#endif /* EXCEPTION_H */