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

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2