(file) Return to Exception.h CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / Common

  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 */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2