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

  1 kumpf 1.1 //%/////////////////////////////////////////////////////////////////////////////
  2           //
  3           // Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Company, IBM,
  4           // The Open Group, Tivoli Systems
  5           //
  6           // Permission is hereby granted, free of charge, to any person obtaining a copy
  7           // 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           // 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           // 
 13           // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
 14           // 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           // 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           // 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 kumpf 1.1 //==============================================================================
 23           //
 24           // Author: Jair Santos, Hewlett-Packard Company (jair.santos@hp.com)
 25           //
 26           // Modified By: 
 27           //
 28           //%/////////////////////////////////////////////////////////////////////////////
 29           
 30           #ifndef Pegasus_ClientRep_h
 31           #define Pegasus_ClientRep_h
 32           
 33           #include <Pegasus/Common/Config.h>
 34           #include <Pegasus/Common/String.h>
 35           #include <Pegasus/Common/CIMName.h>
 36           #include <Pegasus/Common/SSLContext.h>
 37           #include <Pegasus/Common/CIMObject.h>
 38           #include <Pegasus/Common/CIMClass.h>
 39           #include <Pegasus/Common/CIMInstance.h>
 40           #include <Pegasus/Common/CIMObjectPath.h>
 41           #include <Pegasus/Common/CIMValue.h>
 42           #include <Pegasus/Common/CIMParamValue.h>
 43 kumpf 1.1 #include <Pegasus/Common/CIMPropertyList.h>
 44           #include <Pegasus/Common/CIMQualifierDecl.h>
 45           #include <Pegasus/Common/Exception.h>
 46           #include <Pegasus/Common/Constants.h>
 47           #include <Pegasus/Common/FileSystem.h>
 48           #include <Pegasus/Common/Monitor.h>
 49           #include <Pegasus/Common/HTTPConnector.h>
 50           #include <Pegasus/Common/CIMMessage.h>
 51           #include <Pegasus/Common/HTTPConnection.h>
 52           #include <Pegasus/Common/Destroyer.h>
 53           #include <Pegasus/Common/XmlWriter.h>
 54           #include <Pegasus/Common/TimeValue.h>
 55           #include <Pegasus/Common/PegasusVersion.h>
 56           #include <Pegasus/Client/CIMClientException.h>
 57           #include <Pegasus/Client/Linkage.h>
 58           #include <Pegasus/Client/CIMClientInterface.h>
 59           
 60           #include "CIMOperationResponseDecoder.h"
 61           #include "CIMOperationRequestEncoder.h"
 62           #include "ClientAuthenticator.h"
 63           
 64 kumpf 1.1 PEGASUS_NAMESPACE_BEGIN
 65           
 66           ///////////////////////////////////////////////////////////////////////////////
 67           //
 68           // CIMClientRep
 69           //
 70           ///////////////////////////////////////////////////////////////////////////////
 71           class CIMClientRep : public CIMClientInterface
 72           {
 73           public:
 74           
 75               // Timeout value defines the time the CIMClient will wait for a response
 76               // to an outstanding request.  If a request times out, the connection
 77               // gets reset (disconnected and reconnected).
 78               CIMClientRep(Uint32 timeoutMilliseconds = DEFAULT_TIMEOUT_MILLISECONDS);
 79           
 80               ~CIMClientRep();
 81           
 82               virtual void handleEnqueue();
 83           
 84               virtual Uint32 getTimeout() const
 85 kumpf 1.1     {
 86                   return _timeoutMilliseconds;
 87               }
 88           
 89               virtual void setTimeout(Uint32 timeoutMilliseconds)
 90               {
 91                   _timeoutMilliseconds = timeoutMilliseconds;
 92               }
 93           
 94               // l10n start
 95               AcceptLanguages getRequestAcceptLanguages() const;
 96               ContentLanguages getRequestContentLanguages() const;
 97               ContentLanguages getResponseContentLanguages() const;
 98               void setRequestAcceptLanguages(AcceptLanguages& langs);
 99               void setRequestContentLanguages(ContentLanguages& langs);
100               void setRequestDefaultLanguages();
101               // l10n end
102           
103               void connect(
104                   const String& host,
105                   const Uint32 portNumber,
106 kumpf 1.1         const String& userName,
107                   const String& password
108               );
109           
110               void connect(
111                   const String& host,
112                   const Uint32 portNumber,
113                   const SSLContext& sslContext,
114                   const String& userName,
115                   const String& password
116               );
117           
118               void connectLocal();
119           
120               void disconnect();
121           
122               virtual CIMClass getClass(
123                   const CIMNamespaceName& nameSpace,
124                   const CIMName& className,
125                   Boolean localOnly = true,
126                   Boolean includeQualifiers = true,
127 kumpf 1.1         Boolean includeClassOrigin = false,
128                   const CIMPropertyList& propertyList = CIMPropertyList()
129               );
130           
131               virtual CIMInstance getInstance(
132                   const CIMNamespaceName& nameSpace,
133                   const CIMObjectPath& instanceName,
134                   Boolean localOnly = true,
135                   Boolean includeQualifiers = false,
136                   Boolean includeClassOrigin = false,
137                   const CIMPropertyList& propertyList = CIMPropertyList()
138               );
139           
140               virtual void deleteClass(
141                   const CIMNamespaceName& nameSpace,
142                   const CIMName& className
143               );
144           
145               virtual void deleteInstance(
146                   const CIMNamespaceName& nameSpace,
147                   const CIMObjectPath& instanceName
148 kumpf 1.1     );
149           
150               virtual void createClass(
151                   const CIMNamespaceName& nameSpace,
152                   const CIMClass& newClass
153               );
154           
155               virtual CIMObjectPath createInstance(
156                   const CIMNamespaceName& nameSpace,
157                   const CIMInstance& newInstance
158               );
159           
160               virtual void modifyClass(
161                   const CIMNamespaceName& nameSpace,
162                   const CIMClass& modifiedClass
163               );
164           
165               virtual void modifyInstance(
166                   const CIMNamespaceName& nameSpace,
167                   const CIMInstance& modifiedInstance,
168                   Boolean includeQualifiers = true,
169 kumpf 1.1         const CIMPropertyList& propertyList = CIMPropertyList()
170               );
171           
172               virtual Array<CIMClass> enumerateClasses(
173                   const CIMNamespaceName& nameSpace,
174                   const CIMName& className = CIMName(),
175                   Boolean deepInheritance = false,
176                   Boolean localOnly = true,
177                   Boolean includeQualifiers = true,
178                   Boolean includeClassOrigin = false
179               );
180           
181               virtual Array<CIMName> enumerateClassNames(
182                   const CIMNamespaceName& nameSpace,
183                   const CIMName& className = CIMName(),
184                   Boolean deepInheritance = false
185               );
186           
187               virtual Array<CIMInstance> enumerateInstances(
188                   const CIMNamespaceName& nameSpace,
189                   const CIMName& className,
190 kumpf 1.1         Boolean deepInheritance = true,
191                   Boolean localOnly = true,
192                   Boolean includeQualifiers = false,
193                   Boolean includeClassOrigin = false,
194                   const CIMPropertyList& propertyList = CIMPropertyList()
195               );
196           
197               virtual Array<CIMObjectPath> enumerateInstanceNames(
198                   const CIMNamespaceName& nameSpace,
199                   const CIMName& className
200               );
201           
202               virtual Array<CIMObject> execQuery(
203                   const CIMNamespaceName& nameSpace,
204                   const String& queryLanguage,
205                   const String& query
206               );
207           
208               virtual Array<CIMObject> associators(
209                   const CIMNamespaceName& nameSpace,
210                   const CIMObjectPath& objectName,
211 kumpf 1.1         const CIMName& assocClass = CIMName(),
212                   const CIMName& resultClass = CIMName(),
213                   const String& role = String::EMPTY,
214                   const String& resultRole = String::EMPTY,
215                   Boolean includeQualifiers = false,
216                   Boolean includeClassOrigin = false,
217                   const CIMPropertyList& propertyList = CIMPropertyList()
218               );
219           
220               virtual Array<CIMObjectPath> associatorNames(
221                   const CIMNamespaceName& nameSpace,
222                   const CIMObjectPath& objectName,
223                   const CIMName& assocClass = CIMName(),
224                   const CIMName& resultClass = CIMName(),
225                   const String& role = String::EMPTY,
226                   const String& resultRole = String::EMPTY
227               );
228           
229               virtual Array<CIMObject> references(
230                   const CIMNamespaceName& nameSpace,
231                   const CIMObjectPath& objectName,
232 kumpf 1.1         const CIMName& resultClass = CIMName(),
233                   const String& role = String::EMPTY,
234                   Boolean includeQualifiers = false,
235                   Boolean includeClassOrigin = false,
236                   const CIMPropertyList& propertyList = CIMPropertyList()
237               );
238           
239               virtual Array<CIMObjectPath> referenceNames(
240                   const CIMNamespaceName& nameSpace,
241                   const CIMObjectPath& objectName,
242                   const CIMName& resultClass = CIMName(),
243                   const String& role = String::EMPTY
244               );
245           
246               virtual CIMValue getProperty(
247                   const CIMNamespaceName& nameSpace,
248                   const CIMObjectPath& instanceName,
249                   const CIMName& propertyName
250               );
251           
252               virtual void setProperty(
253 kumpf 1.1         const CIMNamespaceName& nameSpace,
254                   const CIMObjectPath& instanceName,
255                   const CIMName& propertyName,
256                   const CIMValue& newValue = CIMValue()
257               );
258           
259               virtual CIMQualifierDecl getQualifier(
260                   const CIMNamespaceName& nameSpace,
261                   const CIMName& qualifierName
262               );
263           
264               virtual void setQualifier(
265                   const CIMNamespaceName& nameSpace,
266                   const CIMQualifierDecl& qualifierDeclaration
267               );
268           
269               virtual void deleteQualifier(
270                   const CIMNamespaceName& nameSpace,
271                   const CIMName& qualifierName
272               );
273           
274 kumpf 1.1     virtual Array<CIMQualifierDecl> enumerateQualifiers(
275                   const CIMNamespaceName& nameSpace
276               );
277           
278               virtual CIMValue invokeMethod(
279                   const CIMNamespaceName& nameSpace,
280                   const CIMObjectPath& instanceName,
281                   const CIMName& methodName,
282                   const Array<CIMParamValue>& inParameters,
283                   Array<CIMParamValue>& outParameters
284               );
285           
286           private:
287           
288               void _connect();
289           
290               void _reconnect();
291           
292               Message* _doRequest(
293                   CIMRequestMessage * request,
294                   const Uint32 expectedResponseMessageType);
295 kumpf 1.1 
296               String _getLocalHostName();
297           
298               Monitor* _monitor;
299               HTTPConnector* _httpConnector;
300               HTTPConnection* _httpConnection;
301               Uint32 _timeoutMilliseconds;
302               Boolean _connected;
303               CIMOperationResponseDecoder* _responseDecoder;
304               CIMOperationRequestEncoder* _requestEncoder;
305               ClientAuthenticator _authenticator;
306               String _connectHost;
307               Uint32 _connectPortNumber;
308               SSLContext* _connectSSLContext;
309           
310               // l10n
311               AcceptLanguages requestAcceptLanguages;
312               ContentLanguages requestContentLanguages;
313               ContentLanguages responseContentLanguages;
314           };
315           
316 kumpf 1.1 PEGASUS_NAMESPACE_END
317           
318           #endif /* Pegasus_ClientRep_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2