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

  1 karl  1.23 //%2006////////////////////////////////////////////////////////////////////////
  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 karl  1.17 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
 10            // EMC Corporation; VERITAS Software Corporation; The Open Group.
 11 karl  1.23 // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
 12            // EMC Corporation; Symantec Corporation; The Open Group.
 13 kumpf 1.1  //
 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 kamal.locahana 1.26.14.2 //
 21 kumpf          1.1       // 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                          // Author: Jair Santos, Hewlett-Packard Company (jair.santos@hp.com)
 33                          //
 34 david.dillard  1.19      // Modified By: Dan Gorey (djgorey@us.ibm.com)
 35                          //              Marek Szermutzky (MSzermutzky@de.ibm.com) for PEP#139 Stage1
 36                          //              Robert Kieninger, IBM (kieningr@de.ibm.com) for Bug#667
 37                          //              Amit K Arora, IBM (amita@in.ibm.com) for Bug#2040
 38                          //              Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com)
 39                          //              Willis White, IBM (whiwill@us.ibm.com)
 40                          //              David Dillard, VERITAS Software Corp.
 41                          //                  (david.dillard@veritas.com)
 42 kumpf          1.1       //
 43                          //%/////////////////////////////////////////////////////////////////////////////
 44                          
 45                          #ifndef Pegasus_ClientRep_h
 46                          #define Pegasus_ClientRep_h
 47                          
 48                          #include <Pegasus/Common/Config.h>
 49                          #include <Pegasus/Common/String.h>
 50                          #include <Pegasus/Common/CIMName.h>
 51                          #include <Pegasus/Common/SSLContext.h>
 52                          #include <Pegasus/Common/CIMObject.h>
 53                          #include <Pegasus/Common/CIMClass.h>
 54                          #include <Pegasus/Common/CIMInstance.h>
 55                          #include <Pegasus/Common/CIMObjectPath.h>
 56                          #include <Pegasus/Common/CIMValue.h>
 57                          #include <Pegasus/Common/CIMParamValue.h>
 58                          #include <Pegasus/Common/CIMPropertyList.h>
 59                          #include <Pegasus/Common/CIMQualifierDecl.h>
 60                          #include <Pegasus/Common/Exception.h>
 61                          #include <Pegasus/Common/Constants.h>
 62                          #include <Pegasus/Common/FileSystem.h>
 63 kumpf          1.1       #include <Pegasus/Common/Monitor.h>
 64                          #include <Pegasus/Common/HTTPConnector.h>
 65                          #include <Pegasus/Common/CIMMessage.h>
 66                          #include <Pegasus/Common/HTTPConnection.h>
 67                          #include <Pegasus/Common/XmlWriter.h>
 68                          #include <Pegasus/Common/TimeValue.h>
 69 kumpf          1.10      #include <Pegasus/Common/AutoPtr.h>
 70 kumpf          1.1       #include <Pegasus/Client/CIMClientException.h>
 71                          #include <Pegasus/Client/Linkage.h>
 72                          #include <Pegasus/Client/CIMClientInterface.h>
 73 a.dunfey       1.22      #include <Pegasus/Client/ClientPerfDataStore.h>
 74 kumpf          1.1       
 75                          #include "CIMOperationResponseDecoder.h"
 76                          #include "CIMOperationRequestEncoder.h"
 77 w.white        1.16      
 78 kumpf          1.1       
 79                          PEGASUS_NAMESPACE_BEGIN
 80                          
 81                          ///////////////////////////////////////////////////////////////////////////////
 82                          //
 83                          // CIMClientRep
 84                          //
 85                          ///////////////////////////////////////////////////////////////////////////////
 86 mike           1.24      class PEGASUS_CLIENT_LINKAGE CIMClientRep : public CIMClientInterface
 87 kumpf          1.1       {
 88                          public:
 89                          
 90                              // Timeout value defines the time the CIMClient will wait for a response
 91                              // to an outstanding request.  If a request times out, the connection
 92                              // gets reset (disconnected and reconnected).
 93                              CIMClientRep(Uint32 timeoutMilliseconds = DEFAULT_TIMEOUT_MILLISECONDS);
 94                          
 95                              ~CIMClientRep();
 96                          
 97                              virtual void handleEnqueue();
 98                          
 99                              virtual Uint32 getTimeout() const
100                              {
101                                  return _timeoutMilliseconds;
102                              }
103                          
104                              virtual void setTimeout(Uint32 timeoutMilliseconds)
105                              {
106                                  _timeoutMilliseconds = timeoutMilliseconds;
107 kamal.locahana 1.26.14.2 
108                                  if ((_connected) && (_httpConnection != 0)
109                          #if defined (PEGASUS_OS_TYPE_WINDOWS) &&\
110                              !defined(PEGASUS_DISABLE_LOCAL_DOMAIN_SOCKET)
111                                      && (_connectHost.size() != 0)
112                          #endif
113                                      )
114                                  {
115 marek          1.25                  _httpConnection->setSocketWriteTimeout(_timeoutMilliseconds/1000+1);
116 kamal.locahana 1.26.14.1 		}
117 kamal.locahana 1.26.14.2 
118 kumpf          1.1           }
119                          
120                              // l10n start
121 kumpf          1.21          AcceptLanguageList getRequestAcceptLanguages() const;
122                              ContentLanguageList getRequestContentLanguages() const;
123                              ContentLanguageList getResponseContentLanguages() const;
124                              void setRequestAcceptLanguages(const AcceptLanguageList& langs);
125                              void setRequestContentLanguages(const ContentLanguageList& langs);
126 kumpf          1.1           void setRequestDefaultLanguages();
127                              // l10n end
128                          
129                              void connect(
130                                  const String& host,
131                                  const Uint32 portNumber,
132                                  const String& userName,
133                                  const String& password
134                              );
135                          
136                              void connect(
137                                  const String& host,
138                                  const Uint32 portNumber,
139                                  const SSLContext& sslContext,
140                                  const String& userName,
141                                  const String& password
142                              );
143                          
144                              void connectLocal();
145                          
146                              void disconnect();
147 kumpf          1.1       
148 david.dillard  1.19          Boolean isConnected() const throw();
149 marek          1.9       
150 kumpf          1.1           virtual CIMClass getClass(
151                                  const CIMNamespaceName& nameSpace,
152                                  const CIMName& className,
153                                  Boolean localOnly = true,
154                                  Boolean includeQualifiers = true,
155                                  Boolean includeClassOrigin = false,
156                                  const CIMPropertyList& propertyList = CIMPropertyList()
157                              );
158                          
159                              virtual CIMInstance getInstance(
160                                  const CIMNamespaceName& nameSpace,
161                                  const CIMObjectPath& instanceName,
162                                  Boolean localOnly = true,
163                                  Boolean includeQualifiers = false,
164                                  Boolean includeClassOrigin = false,
165                                  const CIMPropertyList& propertyList = CIMPropertyList()
166                              );
167                          
168                              virtual void deleteClass(
169                                  const CIMNamespaceName& nameSpace,
170                                  const CIMName& className
171 kumpf          1.1           );
172                          
173                              virtual void deleteInstance(
174                                  const CIMNamespaceName& nameSpace,
175                                  const CIMObjectPath& instanceName
176                              );
177                          
178                              virtual void createClass(
179                                  const CIMNamespaceName& nameSpace,
180                                  const CIMClass& newClass
181                              );
182                          
183                              virtual CIMObjectPath createInstance(
184                                  const CIMNamespaceName& nameSpace,
185                                  const CIMInstance& newInstance
186                              );
187                          
188                              virtual void modifyClass(
189                                  const CIMNamespaceName& nameSpace,
190                                  const CIMClass& modifiedClass
191                              );
192 kumpf          1.1       
193                              virtual void modifyInstance(
194                                  const CIMNamespaceName& nameSpace,
195                                  const CIMInstance& modifiedInstance,
196                                  Boolean includeQualifiers = true,
197                                  const CIMPropertyList& propertyList = CIMPropertyList()
198                              );
199                          
200                              virtual Array<CIMClass> enumerateClasses(
201                                  const CIMNamespaceName& nameSpace,
202                                  const CIMName& className = CIMName(),
203                                  Boolean deepInheritance = false,
204                                  Boolean localOnly = true,
205                                  Boolean includeQualifiers = true,
206                                  Boolean includeClassOrigin = false
207                              );
208                          
209                              virtual Array<CIMName> enumerateClassNames(
210                                  const CIMNamespaceName& nameSpace,
211                                  const CIMName& className = CIMName(),
212                                  Boolean deepInheritance = false
213 kumpf          1.1           );
214                          
215                              virtual Array<CIMInstance> enumerateInstances(
216                                  const CIMNamespaceName& nameSpace,
217                                  const CIMName& className,
218                                  Boolean deepInheritance = true,
219                                  Boolean localOnly = true,
220                                  Boolean includeQualifiers = false,
221                                  Boolean includeClassOrigin = false,
222                                  const CIMPropertyList& propertyList = CIMPropertyList()
223                              );
224                          
225                              virtual Array<CIMObjectPath> enumerateInstanceNames(
226                                  const CIMNamespaceName& nameSpace,
227                                  const CIMName& className
228                              );
229                          
230                              virtual Array<CIMObject> execQuery(
231                                  const CIMNamespaceName& nameSpace,
232                                  const String& queryLanguage,
233                                  const String& query
234 kumpf          1.1           );
235                          
236                              virtual Array<CIMObject> associators(
237                                  const CIMNamespaceName& nameSpace,
238                                  const CIMObjectPath& objectName,
239                                  const CIMName& assocClass = CIMName(),
240                                  const CIMName& resultClass = CIMName(),
241                                  const String& role = String::EMPTY,
242                                  const String& resultRole = String::EMPTY,
243                                  Boolean includeQualifiers = false,
244                                  Boolean includeClassOrigin = false,
245                                  const CIMPropertyList& propertyList = CIMPropertyList()
246                              );
247                          
248                              virtual Array<CIMObjectPath> associatorNames(
249                                  const CIMNamespaceName& nameSpace,
250                                  const CIMObjectPath& objectName,
251                                  const CIMName& assocClass = CIMName(),
252                                  const CIMName& resultClass = CIMName(),
253                                  const String& role = String::EMPTY,
254                                  const String& resultRole = String::EMPTY
255 kumpf          1.1           );
256                          
257                              virtual Array<CIMObject> references(
258                                  const CIMNamespaceName& nameSpace,
259                                  const CIMObjectPath& objectName,
260                                  const CIMName& resultClass = CIMName(),
261                                  const String& role = String::EMPTY,
262                                  Boolean includeQualifiers = false,
263                                  Boolean includeClassOrigin = false,
264                                  const CIMPropertyList& propertyList = CIMPropertyList()
265                              );
266                          
267                              virtual Array<CIMObjectPath> referenceNames(
268                                  const CIMNamespaceName& nameSpace,
269                                  const CIMObjectPath& objectName,
270                                  const CIMName& resultClass = CIMName(),
271                                  const String& role = String::EMPTY
272                              );
273                          
274                              virtual CIMValue getProperty(
275                                  const CIMNamespaceName& nameSpace,
276 kumpf          1.1               const CIMObjectPath& instanceName,
277                                  const CIMName& propertyName
278                              );
279                          
280                              virtual void setProperty(
281                                  const CIMNamespaceName& nameSpace,
282                                  const CIMObjectPath& instanceName,
283                                  const CIMName& propertyName,
284                                  const CIMValue& newValue = CIMValue()
285                              );
286                          
287                              virtual CIMQualifierDecl getQualifier(
288                                  const CIMNamespaceName& nameSpace,
289                                  const CIMName& qualifierName
290                              );
291                          
292                              virtual void setQualifier(
293                                  const CIMNamespaceName& nameSpace,
294                                  const CIMQualifierDecl& qualifierDeclaration
295                              );
296                          
297 kumpf          1.1           virtual void deleteQualifier(
298                                  const CIMNamespaceName& nameSpace,
299                                  const CIMName& qualifierName
300                              );
301                          
302                              virtual Array<CIMQualifierDecl> enumerateQualifiers(
303                                  const CIMNamespaceName& nameSpace
304                              );
305                          
306                              virtual CIMValue invokeMethod(
307                                  const CIMNamespaceName& nameSpace,
308                                  const CIMObjectPath& instanceName,
309                                  const CIMName& methodName,
310                                  const Array<CIMParamValue>& inParameters,
311                                  Array<CIMParamValue>& outParameters
312                              );
313                          
314 w.white        1.18          void registerClientOpPerformanceDataHandler(
315                                  ClientOpPerformanceDataHandler & handler);
316 david.dillard  1.19      
317 w.white        1.18          void deregisterClientOpPerformanceDataHandler();
318                          
319 kumpf          1.1       private:
320                          
321 a.arora        1.13          void _connect();
322 kumpf          1.1       
323 kumpf          1.4           void _disconnect();
324                          
325 kumpf          1.1           void _reconnect();
326                          
327                              Message* _doRequest(
328 a.arora        1.12              AutoPtr<CIMRequestMessage>& request,
329 kumpf          1.1               const Uint32 expectedResponseMessageType);
330                          
331                              String _getLocalHostName();
332 a.arora        1.12          AutoPtr<Monitor> _monitor;
333                              AutoPtr<HTTPConnector> _httpConnector;
334 denise.eckstein 1.20          HTTPConnection* _httpConnection;
335 r.kieninger     1.11      
336 dj.gorey        1.5       
337 kumpf           1.1           Uint32 _timeoutMilliseconds;
338                               Boolean _connected;
339 a.arora         1.12          AutoPtr<CIMOperationResponseDecoder> _responseDecoder;
340                               AutoPtr<CIMOperationRequestEncoder> _requestEncoder;
341 kumpf           1.1           ClientAuthenticator _authenticator;
342                               String _connectHost;
343                               Uint32 _connectPortNumber;
344 kumpf           1.10          AutoPtr<SSLContext> _connectSSLContext;
345 a.dunfey        1.22          ClientPerfDataStore perfDataStore;
346 kumpf           1.1       
347                               // l10n
348 kumpf           1.21          AcceptLanguageList requestAcceptLanguages;
349                               ContentLanguageList requestContentLanguages;
350                               ContentLanguageList responseContentLanguages;
351 kumpf           1.1       };
352                           
353                           PEGASUS_NAMESPACE_END
354                           
355                           #endif /* Pegasus_ClientRep_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2