1 kumpf 1.43 //%/////////////////////////////////////////////////////////////////////////////
|
2 mike 1.22 //
|
3 kumpf 1.43 // Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Company, IBM,
4 // The Open Group, Tivoli Systems
|
5 mike 1.22 //
6 // Permission is hereby granted, free of charge, to any person obtaining a copy
|
7 chip 1.40 // of this software and associated documentation files (the "Software"), to
8 // deal in the Software without restriction, including without limitation the
9 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
10 mike 1.22 // sell copies of the Software, and to permit persons to whom the Software is
11 // furnished to do so, subject to the following conditions:
|
12 kumpf 1.43 //
|
13 chip 1.40 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
|
14 mike 1.22 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
15 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
16 chip 1.40 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
17 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
18 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
19 mike 1.22 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 //
22 //==============================================================================
23 //
24 // Author: Mike Brasher (mbrasher@bmc.com)
25 //
|
26 kumpf 1.54 // Modified By: Nag Boranna, Hewlett-Packard Company (nagaraja_boranna@hp.com)
27 // Karl Schopmeyer (k.schopmeyer@opengroup.org)
28 // Jenny Yu, Hewlett-Packard Company (jenny_yu@hp.com)
|
29 kumpf 1.48 // Carol Ann Krug Graves, Hewlett-Packard Company
30 // (carolann_graves@hp.com)
|
31 kumpf 1.54 // Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com)
|
32 kumpf 1.30 //
|
33 mike 1.22 //%/////////////////////////////////////////////////////////////////////////////
34
35 #ifndef Pegasus_Exception_h
36 #define Pegasus_Exception_h
37
38 #include <Pegasus/Common/Config.h>
39 #include <Pegasus/Common/String.h>
40 #include <Pegasus/Common/CIMStatusCode.h>
|
41 kumpf 1.46 #include <Pegasus/Common/Linkage.h>
|
42 mike 1.22
43 PEGASUS_NAMESPACE_BEGIN
44
|
45 mike 1.25 // REVIEW: these classes need a major restructuring. This has become the
46 // REVIEW: dumping ground for exception classes.
47
|
48 kumpf 1.44 // ATTN this documentation is incomplete
49
50 /** Class Exception
51
52 <p>The <tt>Exception</tt> class is the parent class for all
53 exceptions that can be generated by any component of the
54 Pegasus infrastructure. It includes not only the CIM exceptions
55 that are defined by the DMTF, but also various exceptions that
56 may occur during the processing of functions called by clients
57 and providers.</p>
|
58 mike 1.22 */
59 class PEGASUS_COMMON_LINKAGE Exception
60 {
61 public:
62
63 Exception(const String& message);
64
|
65 kumpf 1.58 virtual ~Exception();
|
66 mike 1.22
|
67 kumpf 1.58 const String& getMessage() const;
|
68 mike 1.22
69 protected:
70
71 String _message;
72 };
73
74
|
75 kumpf 1.44 // ATTN: P3 KS documentation Required
|
76 mike 1.22 class PEGASUS_COMMON_LINKAGE OutOfBounds : public Exception
77 {
78 public:
|
79 kumpf 1.58 OutOfBounds();
|
80 mike 1.22 };
81
|
82 kumpf 1.44 // ATTN: P3 KS documentation Required
|
83 mike 1.22 class PEGASUS_COMMON_LINKAGE AlreadyExists : public Exception
84 {
85 public:
|
86 kumpf 1.58 AlreadyExists(const String& message);
|
87 mike 1.22 };
88
|
89 kumpf 1.44 // ATTN: P3 KS documentation Required
|
90 kumpf 1.58 class PEGASUS_COMMON_LINKAGE InvalidNameException : public Exception
|
91 mike 1.22 {
92 public:
|
93 kumpf 1.58 InvalidNameException(const String& name);
|
94 kumpf 1.47 };
95
96 // ATTN: P3 KS documentation Required
|
97 kumpf 1.58 class PEGASUS_COMMON_LINKAGE InvalidNamespaceNameException : public Exception
|
98 kumpf 1.47 {
99 public:
|
100 kumpf 1.58 InvalidNamespaceNameException(const String& name);
|
101 mike 1.22 };
102
|
103 kumpf 1.44 // ATTN: P3 KS documentation Required
|
104 kumpf 1.39 class PEGASUS_COMMON_LINKAGE UninitializedHandle : public Exception
|
105 mike 1.22 {
106 public:
|
107 kumpf 1.58 UninitializedHandle();
|
108 mike 1.22 };
109
|
110 kumpf 1.48 class PEGASUS_COMMON_LINKAGE UninitializedObject : public Exception
111 {
112 public:
|
113 kumpf 1.58 UninitializedObject();
|
114 kumpf 1.48 };
115
|
116 kumpf 1.44 // ATTN: P3 KS documentation Required
|
117 mike 1.22 class PEGASUS_COMMON_LINKAGE AddedReferenceToClass : public Exception
118 {
119 public:
|
120 kumpf 1.58 AddedReferenceToClass(const String& className);
|
121 mike 1.22 };
122
|
123 kumpf 1.44 // ATTN: P3 KS documentation Required
|
124 mike 1.22 class PEGASUS_COMMON_LINKAGE TruncatedCharacter : public Exception
125 {
126 public:
|
127 kumpf 1.58 TruncatedCharacter();
|
128 mike 1.22 };
129
|
130 kumpf 1.44 // ATTN: P3 KS documentation Required
|
131 mike 1.22 class PEGASUS_COMMON_LINKAGE ExpectedReferenceValue : public Exception
132 {
133 public:
|
134 kumpf 1.58 ExpectedReferenceValue();
|
135 mike 1.22 };
136
|
137 kumpf 1.44 // ATTN: P3 KS documentation Required
|
138 mike 1.22 class PEGASUS_COMMON_LINKAGE MissingReferenceClassName : public Exception
139 {
140 public:
|
141 kumpf 1.58 MissingReferenceClassName();
|
142 mike 1.22 };
143
|
144 kumpf 1.44 // ATTN: P3 KS documentation Required
|
145 mike 1.22 class PEGASUS_COMMON_LINKAGE TypeMismatch : public Exception
146 {
147 public:
|
148 kumpf 1.58 TypeMismatch();
|
149 mike 1.22 };
|
150 karl 1.26
|
151 kumpf 1.44 // ATTN: P3 KS documentation Required
|
152 karl 1.26 class PEGASUS_COMMON_LINKAGE CIMValueInvalidType : public Exception
153 {
154 public:
|
155 kumpf 1.58 CIMValueInvalidType();
|
156 karl 1.26 };
157
|
158 kumpf 1.44 // ATTN: P3 KS documentation Required
|
159 mike 1.24 class PEGASUS_COMMON_LINKAGE DynamicCastFailed : public Exception
160 {
161 public:
|
162 kumpf 1.58 DynamicCastFailed();
|
163 mike 1.24 };
164
|
165 kumpf 1.54 class PEGASUS_COMMON_LINKAGE BadDateTimeFormat : public Exception
|
166 mike 1.22 {
167 public:
|
168 kumpf 1.58 BadDateTimeFormat();
|
169 mike 1.22 };
|
170 mike 1.23
|
171 kumpf 1.54 class PEGASUS_COMMON_LINKAGE IncompatibleTypes : public Exception
|
172 mike 1.23 {
173 public:
|
174 kumpf 1.58 IncompatibleTypes();
|
175 mike 1.23 };
176
|
177 kumpf 1.58 class PEGASUS_COMMON_LINKAGE MalformedObjectNameException : public Exception
|
178 mike 1.22 {
179 public:
|
180 kumpf 1.58 MalformedObjectNameException(const String& objectName);
|
181 mike 1.22 };
182
|
183 kumpf 1.54 class PEGASUS_COMMON_LINKAGE BindFailedException : public Exception
|
184 mike 1.22 {
185 public:
|
186 kumpf 1.58 BindFailedException(const String& message);
|
187 mike 1.22 };
188
|
189 kumpf 1.54 class PEGASUS_COMMON_LINKAGE InvalidLocatorException : public Exception
|
190 mike 1.22 {
191 public:
|
192 kumpf 1.58 InvalidLocatorException(const String& locator);
|
193 mike 1.22 };
194
|
195 kumpf 1.54 class PEGASUS_COMMON_LINKAGE CannotCreateSocketException : public Exception
|
196 mike 1.22 {
197 public:
|
198 kumpf 1.58 CannotCreateSocketException();
|
199 mike 1.22 };
200
|
201 kumpf 1.54 class PEGASUS_COMMON_LINKAGE CannotConnectException : public Exception
|
202 mike 1.22 {
203 public:
|
204 kumpf 1.58 CannotConnectException(const String& locator);
|
205 mike 1.22 };
206
|
207 kumpf 1.54 class PEGASUS_COMMON_LINKAGE UnexpectedFailureException : public Exception
|
208 mike 1.22 {
209 public:
|
210 kumpf 1.58 UnexpectedFailureException();
|
211 mike 1.22 };
212
|
213 kumpf 1.54 class PEGASUS_COMMON_LINKAGE AlreadyConnectedException: public Exception
|
214 mike 1.22 {
215 public:
|
216 kumpf 1.58 AlreadyConnectedException();
|
217 mike 1.22 };
218
|
219 kumpf 1.54 class PEGASUS_COMMON_LINKAGE NotConnectedException: public Exception
|
220 mike 1.22 {
221 public:
|
222 kumpf 1.58 NotConnectedException();
|
223 mike 1.22 };
224
|
225 kumpf 1.54 class PEGASUS_COMMON_LINKAGE ConnectionTimeoutException: public Exception
|
226 mike 1.22 {
227 public:
|
228 kumpf 1.58 ConnectionTimeoutException();
|
229 mike 1.22 };
230
|
231 kumpf 1.54 class PEGASUS_COMMON_LINKAGE SSLException: public Exception
|
232 mike 1.22 {
233 public:
|
234 kumpf 1.58 SSLException(const String& message);
|
235 mike 1.22 };
236
|
237 kumpf 1.54
|
238 kumpf 1.56 class CIMExceptionRep;
|
239 mike 1.22
|
240 chip 1.40 /** The CIMException defines the CIM exceptions that are formally defined in
|
241 mike 1.22 the CIM Operations over HTTP specification.
242 */
243 class PEGASUS_COMMON_LINKAGE CIMException : public Exception
244 {
245 public:
246
247 CIMException(
|
248 kumpf 1.32 CIMStatusCode code = CIM_ERR_SUCCESS,
|
249 kumpf 1.56 const String& message = String::EMPTY);
250
251 CIMException(const CIMException & cimException);
252
253 virtual ~CIMException();
254
255 CIMException& operator=(const CIMException & cimException);
256
257 CIMStatusCode getCode() const;
258
259 protected:
260
261 CIMExceptionRep * _rep;
|
262 mike 1.22 };
263
264
|
265 kumpf 1.55 PEGASUS_NAMESPACE_END
266
|
267 mike 1.22 #endif /* Pegasus_Exception_h */
|