source: trunk/include/Arm4dbExceptions.h @ 704

Revision 689, 2.8 KB checked in by dcarter, 3 years ago (diff)

see #118: catch various exceptions in the daemon

Line 
1/**********************************************************************
2 * Copyright (c) 2005-2009 David Carter <dcarter@arm4.org> and others.
3 * All rights reserved.   This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
7 *
8 * Contributors:
9 * David Carter - Initial API and implementation
10 **********************************************************************/
11
12#ifndef ARM4DBEXCEPTIONS_H      /* Prevent multiple inclusion */
13#define ARM4DBEXCEPTIONS_H 1
14
15#include <string>
16
17class Arm4dbException
18{
19public:
20        Arm4dbException (const std::string &reason);
21    Arm4dbException (const char *format, ...);
22        Arm4dbException (const Arm4dbException &e);
23
24        virtual ~Arm4dbException ();
25
26        Arm4dbException &operator= (const Arm4dbException &e);
27
28        const std::string &getReason (void) const { return m_reason; }
29        const char *getReasonC (void) const { return m_reason.c_str (); }
30
31protected:
32        Arm4dbException ();
33
34        std::string     m_reason;
35};
36
37class Arm4dbSharedMemoryException :
38        public Arm4dbException
39{
40public:
41        Arm4dbSharedMemoryException () :
42                Arm4dbException ("Shared memory")
43        {}
44
45        Arm4dbSharedMemoryException (const char *error) :
46                Arm4dbException (error)
47        {}
48
49        Arm4dbSharedMemoryException (const std::string &error) :
50                Arm4dbException (error)
51        {}
52
53        Arm4dbSharedMemoryException (const Arm4dbException &error) :
54                Arm4dbException (error)
55        {}
56
57        ~Arm4dbSharedMemoryException ()
58        {}
59};
60
61class Arm4dbTestDaemonException :
62        public Arm4dbException
63{
64public:
65        Arm4dbTestDaemonException () :
66                Arm4dbException ("Test Daemon")
67        {}
68
69        Arm4dbTestDaemonException (const char *format, ...);
70
71        Arm4dbTestDaemonException (const std::string &error) :
72                Arm4dbException (error)
73        {}
74
75        Arm4dbTestDaemonException (const Arm4dbException &error) :
76                Arm4dbException (error)
77        {}
78
79        ~Arm4dbTestDaemonException ()
80        {}
81};
82
83class Arm4dbLockException :
84        public Arm4dbException
85{
86public:
87        Arm4dbLockException () :
88                Arm4dbException ("Lock")
89        {}
90
91        Arm4dbLockException (const char *error) :
92                Arm4dbException (error)
93        {}
94
95        Arm4dbLockException (const std::string &error) :
96                Arm4dbException (error)
97        {}
98
99        Arm4dbLockException (const Arm4dbException &error) :
100                Arm4dbException (error)
101        {}
102
103        ~Arm4dbLockException ()
104        {}
105};
106
107class Arm4dbUninitializedLockException :
108        public Arm4dbException
109{
110public:
111        Arm4dbUninitializedLockException () :
112                Arm4dbException ("Uninitialized lock")
113        {}
114
115        Arm4dbUninitializedLockException (const char *error) :
116                Arm4dbException (error)
117        {}
118
119        Arm4dbUninitializedLockException (const std::string &error) :
120                Arm4dbException (error)
121        {}
122
123        Arm4dbUninitializedLockException (const Arm4dbException &error) :
124                Arm4dbException (error)
125        {}
126
127        ~Arm4dbUninitializedLockException ()
128        {}
129};
130
131#endif /* ARM4DBEXCEPTIONS_H */
Note: See TracBrowser for help on using the repository browser.