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

  1 karl  1.3 //%2003////////////////////////////////////////////////////////////////////////
  2 kumpf 1.1 //
  3 karl  1.3 // 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           // IBM Corp.; EMC Corporation, The Open Group.
  7 kumpf 1.1 //
  8           // Permission is hereby granted, free of charge, to any person obtaining a copy
  9           // of this software and associated documentation files (the "Software"), to
 10           // deal in the Software without restriction, including without limitation the
 11           // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 12           // sell copies of the Software, and to permit persons to whom the Software is
 13           // furnished to do so, subject to the following conditions:
 14 r.kieninger 1.11 //
 15 kumpf       1.1  // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
 16                  // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
 17                  // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
 18                  // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
 19                  // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 20                  // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 21                  // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 22                  // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 23                  //
 24                  //==============================================================================
 25                  //
 26                  // Author: Jair Santos, Hewlett-Packard Company (jair.santos@hp.com)
 27                  //
 28 r.kieninger 1.11 // Modified By:  Dan Gorey (djgorey@us.ibm.com)
 29 marek       1.7  //				 Marek Szermutzky (MSzermutzky@de.ibm.com) for PEP#139 Stage1
 30 r.kieninger 1.11 //               Robert Kieninger, IBM (kieningr@de.ibm.com) for Bug#667
 31 kumpf       1.1  //
 32                  //%/////////////////////////////////////////////////////////////////////////////
 33                  
 34                  #ifndef Pegasus_ClientRep_h
 35                  #define Pegasus_ClientRep_h
 36                  
 37                  #include <Pegasus/Common/Config.h>
 38                  #include <Pegasus/Common/String.h>
 39                  #include <Pegasus/Common/CIMName.h>
 40                  #include <Pegasus/Common/SSLContext.h>
 41                  #include <Pegasus/Common/CIMObject.h>
 42                  #include <Pegasus/Common/CIMClass.h>
 43                  #include <Pegasus/Common/CIMInstance.h>
 44                  #include <Pegasus/Common/CIMObjectPath.h>
 45                  #include <Pegasus/Common/CIMValue.h>
 46                  #include <Pegasus/Common/CIMParamValue.h>
 47                  #include <Pegasus/Common/CIMPropertyList.h>
 48                  #include <Pegasus/Common/CIMQualifierDecl.h>
 49                  #include <Pegasus/Common/Exception.h>
 50                  #include <Pegasus/Common/Constants.h>
 51                  #include <Pegasus/Common/FileSystem.h>
 52 kumpf       1.1  #include <Pegasus/Common/Monitor.h>
 53                  #include <Pegasus/Common/HTTPConnector.h>
 54                  #include <Pegasus/Common/CIMMessage.h>
 55                  #include <Pegasus/Common/HTTPConnection.h>
 56                  #include <Pegasus/Common/Destroyer.h>
 57                  #include <Pegasus/Common/XmlWriter.h>
 58                  #include <Pegasus/Common/TimeValue.h>
 59 kumpf       1.10 #include <Pegasus/Common/AutoPtr.h>
 60 kumpf       1.1  #include <Pegasus/Client/CIMClientException.h>
 61                  #include <Pegasus/Client/Linkage.h>
 62                  #include <Pegasus/Client/CIMClientInterface.h>
 63                  
 64                  #include "CIMOperationResponseDecoder.h"
 65                  #include "CIMOperationRequestEncoder.h"
 66                  #include "ClientAuthenticator.h"
 67                  
 68                  PEGASUS_NAMESPACE_BEGIN
 69                  
 70                  ///////////////////////////////////////////////////////////////////////////////
 71                  //
 72                  // CIMClientRep
 73                  //
 74                  ///////////////////////////////////////////////////////////////////////////////
 75                  class CIMClientRep : public CIMClientInterface
 76                  {
 77                  public:
 78                  
 79                      // Timeout value defines the time the CIMClient will wait for a response
 80                      // to an outstanding request.  If a request times out, the connection
 81 kumpf       1.1      // gets reset (disconnected and reconnected).
 82                      CIMClientRep(Uint32 timeoutMilliseconds = DEFAULT_TIMEOUT_MILLISECONDS);
 83                  
 84                      ~CIMClientRep();
 85                  
 86                      virtual void handleEnqueue();
 87                  
 88                      virtual Uint32 getTimeout() const
 89                      {
 90                          return _timeoutMilliseconds;
 91                      }
 92                  
 93                      virtual void setTimeout(Uint32 timeoutMilliseconds)
 94                      {
 95                          _timeoutMilliseconds = timeoutMilliseconds;
 96                      }
 97                  
 98                      // l10n start
 99                      AcceptLanguages getRequestAcceptLanguages() const;
100                      ContentLanguages getRequestContentLanguages() const;
101                      ContentLanguages getResponseContentLanguages() const;
102 chuck       1.8      void setRequestAcceptLanguages(const AcceptLanguages& langs);
103                      void setRequestContentLanguages(const ContentLanguages& langs);
104 kumpf       1.1      void setRequestDefaultLanguages();
105                      // l10n end
106                  
107                      void connect(
108                          const String& host,
109                          const Uint32 portNumber,
110                          const String& userName,
111                          const String& password
112                      );
113                  
114                      void connect(
115                          const String& host,
116                          const Uint32 portNumber,
117                          const SSLContext& sslContext,
118                          const String& userName,
119                          const String& password
120                      );
121                  
122                      void connectLocal();
123                  
124                      void disconnect();
125 kumpf       1.1  
126 marek       1.9  	Boolean isConnected();
127                  
128 kumpf       1.1      virtual CIMClass getClass(
129                          const CIMNamespaceName& nameSpace,
130                          const CIMName& className,
131                          Boolean localOnly = true,
132                          Boolean includeQualifiers = true,
133                          Boolean includeClassOrigin = false,
134                          const CIMPropertyList& propertyList = CIMPropertyList()
135                      );
136                  
137                      virtual CIMInstance getInstance(
138                          const CIMNamespaceName& nameSpace,
139                          const CIMObjectPath& instanceName,
140                          Boolean localOnly = true,
141                          Boolean includeQualifiers = false,
142                          Boolean includeClassOrigin = false,
143                          const CIMPropertyList& propertyList = CIMPropertyList()
144                      );
145                  
146                      virtual void deleteClass(
147                          const CIMNamespaceName& nameSpace,
148                          const CIMName& className
149 kumpf       1.1      );
150                  
151                      virtual void deleteInstance(
152                          const CIMNamespaceName& nameSpace,
153                          const CIMObjectPath& instanceName
154                      );
155                  
156                      virtual void createClass(
157                          const CIMNamespaceName& nameSpace,
158                          const CIMClass& newClass
159                      );
160                  
161                      virtual CIMObjectPath createInstance(
162                          const CIMNamespaceName& nameSpace,
163                          const CIMInstance& newInstance
164                      );
165                  
166                      virtual void modifyClass(
167                          const CIMNamespaceName& nameSpace,
168                          const CIMClass& modifiedClass
169                      );
170 kumpf       1.1  
171                      virtual void modifyInstance(
172                          const CIMNamespaceName& nameSpace,
173                          const CIMInstance& modifiedInstance,
174                          Boolean includeQualifiers = true,
175                          const CIMPropertyList& propertyList = CIMPropertyList()
176                      );
177                  
178                      virtual Array<CIMClass> enumerateClasses(
179                          const CIMNamespaceName& nameSpace,
180                          const CIMName& className = CIMName(),
181                          Boolean deepInheritance = false,
182                          Boolean localOnly = true,
183                          Boolean includeQualifiers = true,
184                          Boolean includeClassOrigin = false
185                      );
186                  
187                      virtual Array<CIMName> enumerateClassNames(
188                          const CIMNamespaceName& nameSpace,
189                          const CIMName& className = CIMName(),
190                          Boolean deepInheritance = false
191 kumpf       1.1      );
192                  
193                      virtual Array<CIMInstance> enumerateInstances(
194                          const CIMNamespaceName& nameSpace,
195                          const CIMName& className,
196                          Boolean deepInheritance = true,
197                          Boolean localOnly = true,
198                          Boolean includeQualifiers = false,
199                          Boolean includeClassOrigin = false,
200                          const CIMPropertyList& propertyList = CIMPropertyList()
201                      );
202                  
203                      virtual Array<CIMObjectPath> enumerateInstanceNames(
204                          const CIMNamespaceName& nameSpace,
205                          const CIMName& className
206                      );
207                  
208                      virtual Array<CIMObject> execQuery(
209                          const CIMNamespaceName& nameSpace,
210                          const String& queryLanguage,
211                          const String& query
212 kumpf       1.1      );
213                  
214                      virtual Array<CIMObject> associators(
215                          const CIMNamespaceName& nameSpace,
216                          const CIMObjectPath& objectName,
217                          const CIMName& assocClass = CIMName(),
218                          const CIMName& resultClass = CIMName(),
219                          const String& role = String::EMPTY,
220                          const String& resultRole = String::EMPTY,
221                          Boolean includeQualifiers = false,
222                          Boolean includeClassOrigin = false,
223                          const CIMPropertyList& propertyList = CIMPropertyList()
224                      );
225                  
226                      virtual Array<CIMObjectPath> associatorNames(
227                          const CIMNamespaceName& nameSpace,
228                          const CIMObjectPath& objectName,
229                          const CIMName& assocClass = CIMName(),
230                          const CIMName& resultClass = CIMName(),
231                          const String& role = String::EMPTY,
232                          const String& resultRole = String::EMPTY
233 kumpf       1.1      );
234                  
235                      virtual Array<CIMObject> references(
236                          const CIMNamespaceName& nameSpace,
237                          const CIMObjectPath& objectName,
238                          const CIMName& resultClass = CIMName(),
239                          const String& role = String::EMPTY,
240                          Boolean includeQualifiers = false,
241                          Boolean includeClassOrigin = false,
242                          const CIMPropertyList& propertyList = CIMPropertyList()
243                      );
244                  
245                      virtual Array<CIMObjectPath> referenceNames(
246                          const CIMNamespaceName& nameSpace,
247                          const CIMObjectPath& objectName,
248                          const CIMName& resultClass = CIMName(),
249                          const String& role = String::EMPTY
250                      );
251                  
252                      virtual CIMValue getProperty(
253                          const CIMNamespaceName& nameSpace,
254 kumpf       1.1          const CIMObjectPath& instanceName,
255                          const CIMName& propertyName
256                      );
257                  
258                      virtual void setProperty(
259                          const CIMNamespaceName& nameSpace,
260                          const CIMObjectPath& instanceName,
261                          const CIMName& propertyName,
262                          const CIMValue& newValue = CIMValue()
263                      );
264                  
265                      virtual CIMQualifierDecl getQualifier(
266                          const CIMNamespaceName& nameSpace,
267                          const CIMName& qualifierName
268                      );
269                  
270                      virtual void setQualifier(
271                          const CIMNamespaceName& nameSpace,
272                          const CIMQualifierDecl& qualifierDeclaration
273                      );
274                  
275 kumpf       1.1      virtual void deleteQualifier(
276                          const CIMNamespaceName& nameSpace,
277                          const CIMName& qualifierName
278                      );
279                  
280                      virtual Array<CIMQualifierDecl> enumerateQualifiers(
281                          const CIMNamespaceName& nameSpace
282                      );
283                  
284                      virtual CIMValue invokeMethod(
285                          const CIMNamespaceName& nameSpace,
286                          const CIMObjectPath& instanceName,
287                          const CIMName& methodName,
288                          const Array<CIMParamValue>& inParameters,
289                          Array<CIMParamValue>& outParameters
290                      );
291                  
292                  private:
293                  
294                      void _connect();
295                  
296 kumpf       1.4      void _disconnect();
297                  
298 kumpf       1.1      void _reconnect();
299                  
300                      Message* _doRequest(
301                          CIMRequestMessage * request,
302                          const Uint32 expectedResponseMessageType);
303                  
304                      String _getLocalHostName();
305 dj.gorey    1.6      #ifdef PEGASUS_USE_23HTTPMONITOR_CLIENT
306 kumpf       1.1      Monitor* _monitor;
307                      HTTPConnector* _httpConnector;
308                      HTTPConnection* _httpConnection;
309 dj.gorey    1.5      #else
310                      monitor_2* _monitor;
311                      HTTPConnector2* _httpConnector;
312                      HTTPConnection2* _httpConnection;
313                      #endif
314 r.kieninger 1.11 
315 dj.gorey    1.5  
316 kumpf       1.1      Uint32 _timeoutMilliseconds;
317                      Boolean _connected;
318                      CIMOperationResponseDecoder* _responseDecoder;
319                      CIMOperationRequestEncoder* _requestEncoder;
320                      ClientAuthenticator _authenticator;
321                      String _connectHost;
322                      Uint32 _connectPortNumber;
323 kumpf       1.10     AutoPtr<SSLContext> _connectSSLContext;
324 kumpf       1.1  
325                      // l10n
326                      AcceptLanguages requestAcceptLanguages;
327                      ContentLanguages requestContentLanguages;
328                      ContentLanguages responseContentLanguages;
329 marek       1.7  
330                  	// mszer : Additions Stage1 PEP#139
331                  
332                  	void compareObjectPathtoCurrentConnection(CIMObjectPath obj) throw(TypeMismatchException);
333 kumpf       1.1  };
334                  
335                  PEGASUS_NAMESPACE_END
336                  
337                  #endif /* Pegasus_ClientRep_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2