1 karl 1.26 //%2006////////////////////////////////////////////////////////////////////////
|
2 mike 1.2 //
|
3 karl 1.24 // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
4 // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
5 // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
|
6 karl 1.22 // IBM Corp.; EMC Corporation, The Open Group.
|
7 karl 1.24 // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
8 // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
|
9 karl 1.25 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
10 // EMC Corporation; VERITAS Software Corporation; The Open Group.
|
11 karl 1.26 // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
12 // EMC Corporation; Symantec Corporation; The Open Group.
|
13 mike 1.2 //
14 // Permission is hereby granted, free of charge, to any person obtaining a copy
15 // of this software and associated documentation files (the "Software"), to
16 // deal in the Software without restriction, including without limitation the
17 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
18 // sell copies of the Software, and to permit persons to whom the Software is
19 // furnished to do so, subject to the following conditions:
|
20 kumpf 1.12 //
|
21 mike 1.2 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
22 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
23 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
25 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
26 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
27 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 //
30 //==============================================================================
31 //
32 //%/////////////////////////////////////////////////////////////////////////////
33
34 #ifndef Pegasus_ProviderException_h
35 #define Pegasus_ProviderException_h
36
37 #include <Pegasus/Common/Config.h>
38 #include <Pegasus/Common/Exception.h>
|
39 kumpf 1.18 #include <Pegasus/Provider/Linkage.h>
|
40 mike 1.2
41 PEGASUS_NAMESPACE_BEGIN
42
|
43 kumpf 1.13 /**
44 Parent class for exceptions thrown by providers.
45
|
46 kumpf 1.16 <p>The <tt>CIMOperationFailedException</tt> class is an exception class,
|
47 kumpf 1.13 and the parent class from which exceptions that can be thrown
48 by providers are derived. It may also be thrown directly by
49 providers to signal a generic operation failure.</p>
50
51 <p>Providers do not throw every possible exception that clients
|
52 kumpf 1.19 may receive from the CIM Server. The exceptions which may be thrown
|
53 kumpf 1.13 by providers are a subset of the possible exceptions, and are
54 described in their respective sections.</p>
55
56 <p>All of the provider exceptions accept a <tt>message</tt>
57 argument that allows the provider to send additional text
58 in the string that will be returned to the client. While
59 localization of text is not currently supported, it is
60 recommended that text strings be structured in message
61 catalogs to facilitate future localization.</p>
62 */
|
63 chuck 1.20
64 // l10n - added constructors with MessageLoaderParms
65
|
66 kumpf 1.17 class PEGASUS_PROVIDER_LINKAGE CIMOperationFailedException
67 : public CIMException
|
68 mike 1.2 {
69 public:
|
70 kumpf 1.13 /**
71 Generic operation failure.
72
73 <p>This exception will cause a <tt>CIM_ERR_FAILED</tt>
74 status code to be returned to the client.</p>
75 */
|
76 kumpf 1.16 CIMOperationFailedException(const String & message);
|
77 chuck 1.20
78 /*
79 <p>This exception will cause a <tt>CIM_ERR_FAILED</tt>
80 status code to be returned to the client.</p>
81 */
|
82 chuck 1.21 #ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES
|
83 denise.eckstein 1.23 /** <I><B>Experimental Interface</B></I><BR>
84 */
|
85 chuck 1.20 CIMOperationFailedException(const MessageLoaderParms & parms);
|
86 chuck 1.21 #endif
|
87 kumpf 1.11
88 protected:
|
89 kumpf 1.16 CIMOperationFailedException(const CIMStatusCode code, const String & message);
|
90 chuck 1.20
|
91 chuck 1.21 #ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES
|
92 denise.eckstein 1.23 /** <I><B>Experimental Interface</B></I><BR>
93 */
|
94 chuck 1.20 CIMOperationFailedException(const CIMStatusCode code, const MessageLoaderParms & parms);
|
95 chuck 1.21 #endif
|
96 mike 1.2 };
97
|
98 kumpf 1.13 /**
|
99 kumpf 1.16 Cause a <tt>CIM_ERR_ACCESS_DENIED</tt> status code to be
|
100 kumpf 1.13 returned to the client.
101 */
|
102 kumpf 1.17 class PEGASUS_PROVIDER_LINKAGE CIMAccessDeniedException
103 : public CIMOperationFailedException
|
104 mike 1.2 {
105 public:
|
106 kumpf 1.19 ///
|
107 kumpf 1.16 CIMAccessDeniedException(const String & message);
|
108 chuck 1.20
|
109 chuck 1.21 #ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES
|
110 denise.eckstein 1.23 /** <I><B>Experimental Interface</B></I><BR>
111 */
|
112 chuck 1.20 CIMAccessDeniedException(const MessageLoaderParms & parms);
|
113 chuck 1.21 #endif
|
114 mike 1.2 };
115
|
116 kumpf 1.13 /**
|
117 kumpf 1.16 Cause a <tt>CIM_ERR_INVALID_PARAMETER</tt> status code to be
|
118 kumpf 1.13 returned to the client.
119 */
|
120 kumpf 1.17 class PEGASUS_PROVIDER_LINKAGE CIMInvalidParameterException
121 : public CIMOperationFailedException
|
122 mike 1.2 {
123 public:
|
124 kumpf 1.19 ///
|
125 kumpf 1.16 CIMInvalidParameterException(const String & message);
|
126 chuck 1.20
|
127 chuck 1.21 #ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES
|
128 denise.eckstein 1.23 /** <I><B>Experimental Interface</B></I><BR>
129 */
|
130 chuck 1.20 CIMInvalidParameterException(const MessageLoaderParms & parms);
|
131 chuck 1.21 #endif
|
132 mike 1.2 };
133
|
134 kumpf 1.16 #if 0
|
135 kumpf 1.13 /**
|
136 kumpf 1.16 Cause a <tt>CIM_ERR_INVALID_CLASS</tt> status code to be
|
137 kumpf 1.13 returned to the client.
138 */
|
139 kumpf 1.17 class PEGASUS_PROVIDER_LINKAGE CIMInvalidClassException
140 : public CIMOperationFailedException
|
141 mike 1.2 {
142 public:
|
143 kumpf 1.16 CIMInvalidClassException(const String & message);
|
144 chuck 1.20
|
145 chuck 1.21 #ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES
|
146 denise.eckstein 1.23 /** <I><B>Experimental Interface</B></I><BR>
147 */
|
148 chuck 1.20 CIMInvalidClassException(const MessageLoaderParms & parms);
|
149 chuck 1.21 #endif
|
150 mike 1.2 };
|
151 kumpf 1.16 #endif
|
152 mike 1.2
|
153 kumpf 1.13 /**
|
154 kumpf 1.16 Cause a <tt>CIM_ERR_NOT_FOUND</tt> status code to be
|
155 kumpf 1.13 returned to the client.
156 */
|
157 kumpf 1.17 class PEGASUS_PROVIDER_LINKAGE CIMObjectNotFoundException
158 : public CIMOperationFailedException
|
159 mike 1.2 {
160 public:
|
161 kumpf 1.19 ///
|
162 kumpf 1.16 CIMObjectNotFoundException(const String & message);
|
163 chuck 1.20
|
164 chuck 1.21 #ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES
|
165 denise.eckstein 1.23 /** <I><B>Experimental Interface</B></I><BR>
166 */
|
167 chuck 1.21 CIMObjectNotFoundException(const MessageLoaderParms & parms);
168 #endif
|
169 mike 1.2 };
170
|
171 kumpf 1.13 /**
|
172 kumpf 1.16 Cause a <tt>CIM_ERR_NOT_SUPPORTED</tt> status code to be
|
173 kumpf 1.13 returned to the client.
174 */
|
175 kumpf 1.17 class PEGASUS_PROVIDER_LINKAGE CIMNotSupportedException
176 : public CIMOperationFailedException
|
177 mike 1.2 {
178 public:
|
179 kumpf 1.19 ///
|
180 kumpf 1.16 CIMNotSupportedException(const String & message);
|
181 chuck 1.20
|
182 chuck 1.21 #ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES
|
183 denise.eckstein 1.23 /** <I><B>Experimental Interface</B></I><BR>
184 */
|
185 chuck 1.21 CIMNotSupportedException(const MessageLoaderParms & parms);
186 #endif
|
187 mike 1.2 };
188
|
189 kumpf 1.13 /**
190 Cause a <tt>CIM_ERR_ALREADY_EXISTS</tt> status code to be
191 returned to the client.
192 */
|
193 kumpf 1.17 class PEGASUS_PROVIDER_LINKAGE CIMObjectAlreadyExistsException
194 : public CIMOperationFailedException
|
195 mike 1.2 {
196 public:
|
197 kumpf 1.19 ///
|
198 kumpf 1.16 CIMObjectAlreadyExistsException(const String & message);
|
199 chuck 1.20
|
200 chuck 1.21 #ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES
|
201 denise.eckstein 1.23 /** <I><B>Experimental Interface</B></I><BR>
202 */
|
203 chuck 1.21 CIMObjectAlreadyExistsException(const MessageLoaderParms & parms);
204 #endif
|
205 mike 1.2 };
206
|
207 kumpf 1.13 /**
|
208 kumpf 1.16 Cause a <tt>CIM_ERR_NO_SUCH_PROPERTY</tt> status code to be
|
209 kumpf 1.13 returned to the client.
210 */
|
211 kumpf 1.17 class PEGASUS_PROVIDER_LINKAGE CIMPropertyNotFoundException
212 : public CIMOperationFailedException
|
213 mike 1.2 {
214 public:
|
215 kumpf 1.19 ///
|
216 kumpf 1.16 CIMPropertyNotFoundException(const String & message);
|
217 chuck 1.20
|
218 chuck 1.21 #ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES
|
219 denise.eckstein 1.23 /** <I><B>Experimental Interface</B></I><BR>
220 */
|
221 chuck 1.21 CIMPropertyNotFoundException(const MessageLoaderParms & parms);
222 #endif
|
223 mike 1.2 };
224
|
225 kumpf 1.16 #if 0
226 // Query operations are not yet supported in Pegasus
|
227 kumpf 1.13 /**
|
228 kumpf 1.16 Cause a <tt>CIM_ERR_INVALID_QUERY</tt> status code to be
|
229 kumpf 1.13 returned to the client.
230 */
|
231 kumpf 1.17 class PEGASUS_PROVIDER_LINKAGE CIMInvalidQueryException
232 : public CIMOperationFailedException
|
233 mike 1.2 {
234 public:
|
235 kumpf 1.16 CIMInvalidQueryException(const String & message);
|
236 chuck 1.20
|
237 chuck 1.21 #ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES
|
238 denise.eckstein 1.23 /** <I><B>Experimental Interface</B></I><BR>
239 */
|
240 chuck 1.20 CIMInvalidQueryException(const MessageLoaderParms & parms);
|
241 chuck 1.21 #endif
|
242 mike 1.2 };
|
243 kumpf 1.16 #endif
|
244 mike 1.2
|
245 kumpf 1.13 /**
|
246 kumpf 1.16 Cause a <tt>CIM_ERR_METHOD_NOT_FOUND</tt> status code to be
|
247 kumpf 1.13 returned to the client.
248 */
|
249 kumpf 1.17 class PEGASUS_PROVIDER_LINKAGE CIMMethodNotFoundException
250 : public CIMOperationFailedException
|
251 mike 1.2 {
252 public:
|
253 kumpf 1.19 ///
|
254 kumpf 1.16 CIMMethodNotFoundException(const String & message);
|
255 chuck 1.20
|
256 chuck 1.21 #ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES
|
257 denise.eckstein 1.23 /** <I><B>Experimental Interface</B></I><BR>
258 */
|
259 chuck 1.20 CIMMethodNotFoundException(const MessageLoaderParms & parms);
|
260 chuck 1.21 #endif
|
261 mike 1.2 };
262
263 PEGASUS_NAMESPACE_END
264
265 #endif
|