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

  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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2