/[PAMELA software]/yoda/event/Exception.h
ViewVC logotype

Annotation of /yoda/event/Exception.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2.1 - (hide annotations) (download)
Fri Dec 3 22:04:04 2004 UTC (20 years ago) by kusanagi
Branch: MAIN
Changes since 2.0: +79 -6 lines
File MIME type: text/plain
Minor changes in several packets structure

1 kusanagi 1.1 /** @file
2 kusanagi 2.0 * $Source: /home/cvsmanager/yoda/event/Exception.h,v $
3 kusanagi 2.1 * $Id: Exception.h,v 2.0 2004/09/21 20:49:57 kusanagi Exp $
4 kusanagi 2.0 * $Author: kusanagi $
5 kusanagi 1.1 *
6     * Header file for the exceptions of Pamela.
7     */
8 kusanagi 2.1 #ifndef EXCEPTION_H
9     #define EXCEPTION_H
10 kusanagi 1.1 #include <exception>
11 kusanagi 2.1 #include <stdio.h>
12     #include "SubPacket.h"
13 kusanagi 1.1
14 kusanagi 2.1 using namespace std;
15 kusanagi 1.1 namespace pamela {
16 kusanagi 2.1
17     class Exception: public exception {
18    
19 kusanagi 1.1 private:
20 kusanagi 2.1
21     protected:
22     const char *message;
23     char buff [100];
24 kusanagi 1.1 public:
25 kusanagi 2.1 Exception(const char *msg = "message"): message(msg){ }
26 kusanagi 1.1 virtual ~Exception () throw(){ }
27 kusanagi 2.1 virtual const char* print () const throw () { return message; }
28     };
29    
30     class UnidentifiedPacketException: public Exception {
31     private:
32     UINT8 pktId;
33     public:
34     UnidentifiedPacketException::UnidentifiedPacketException(UINT8 id):
35     Exception("Unidentified PacketType - Id: ") {
36     pktId = id;
37     }
38     UnidentifiedPacketException::~UnidentifiedPacketException () throw(){ }
39     const char* UnidentifiedPacketException::print () const throw () {
40     sprintf((char*)buff," %s 0x%x", message, pktId);
41     return buff;
42     }
43     };
44    
45     class WrongCRCException: public Exception {
46     public:
47     WrongCRCException::WrongCRCException(char* msg): Exception(msg) {}
48     WrongCRCException::~WrongCRCException () throw(){ }
49     const char* WrongCRCException::print () const throw () {
50     return message;
51     }
52     };
53    
54     class WrongCRCHeaderException: public Exception {
55     public:
56     WrongCRCHeaderException::WrongCRCHeaderException(): Exception() {}
57     WrongCRCHeaderException::~WrongCRCHeaderException () throw(){ }
58     const char* WrongCRCHeaderException::print () const throw () {
59     return "CRC Header Exception";
60     }
61 kusanagi 1.1 };
62 kusanagi 2.1
63    
64     class LengthException: public Exception {
65     public:
66     LengthException::LengthException(char* msg): Exception(msg) { }
67     LengthException::~LengthException () throw(){ }
68     const char* LengthException::print () const throw () {
69     return message;
70     }
71     };
72    
73    
74     class NotExistingAlgorithmException: public Exception {
75     public:
76     NotExistingAlgorithmException::NotExistingAlgorithmException(const char *msg): Exception(msg) { }
77     NotExistingAlgorithmException::~NotExistingAlgorithmException () throw(){ }
78     const char* NotExistingAlgorithmException::print () const throw () {
79     return strcat("\n No way to read events of type ", message);
80     }
81     };
82    
83     class NotExistingCounterException: public Exception {
84     public:
85     NotExistingCounterException::NotExistingCounterException(const char *msg): Exception(msg) { }
86     NotExistingCounterException::~NotExistingCounterException () throw(){ }
87     const char* NotExistingCounterException::print () const throw () {
88     return strcat("\n No counter of type ", message);
89     }
90     };
91    
92 kusanagi 1.1 }
93 kusanagi 2.1 #endif /* EXCEPTION_H */

  ViewVC Help
Powered by ViewVC 1.1.23