(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 karl  1.23 // 
 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 marek         1.25         if ((_connected) && (_httpConnection != 0)) 
108                                _httpConnection->setSocketWriteTimeout(_timeoutMilliseconds/1000+1);
109 kumpf         1.1      }
110                    
111                        // l10n start
112 kumpf         1.21     AcceptLanguageList getRequestAcceptLanguages() const;
113                        ContentLanguageList getRequestContentLanguages() const;
114                        ContentLanguageList getResponseContentLanguages() const;
115                        void setRequestAcceptLanguages(const AcceptLanguageList& langs);
116                        void setRequestContentLanguages(const ContentLanguageList& langs);
117 kumpf         1.1      void setRequestDefaultLanguages();
118                        // l10n end
119                    
120                        void connect(
121                            const String& host,
122                            const Uint32 portNumber,
123                            const String& userName,
124                            const String& password
125                        );
126                    
127                        void connect(
128                            const String& host,
129                            const Uint32 portNumber,
130                            const SSLContext& sslContext,
131                            const String& userName,
132                            const String& password
133                        );
134                    
135                        void connectLocal();
136                    
137                        void disconnect();
138 kumpf         1.1  
139 david.dillard 1.19     Boolean isConnected() const throw();
140 marek         1.9  
141 kumpf         1.1      virtual CIMClass getClass(
142                            const CIMNamespaceName& nameSpace,
143                            const CIMName& className,
144                            Boolean localOnly = true,
145                            Boolean includeQualifiers = true,
146                            Boolean includeClassOrigin = false,
147                            const CIMPropertyList& propertyList = CIMPropertyList()
148                        );
149                    
150                        virtual CIMInstance getInstance(
151                            const CIMNamespaceName& nameSpace,
152                            const CIMObjectPath& instanceName,
153                            Boolean localOnly = true,
154                            Boolean includeQualifiers = false,
155                            Boolean includeClassOrigin = false,
156                            const CIMPropertyList& propertyList = CIMPropertyList()
157                        );
158                    
159                        virtual void deleteClass(
160                            const CIMNamespaceName& nameSpace,
161                            const CIMName& className
162 kumpf         1.1      );
163                    
164                        virtual void deleteInstance(
165                            const CIMNamespaceName& nameSpace,
166                            const CIMObjectPath& instanceName
167                        );
168                    
169                        virtual void createClass(
170                            const CIMNamespaceName& nameSpace,
171                            const CIMClass& newClass
172                        );
173                    
174                        virtual CIMObjectPath createInstance(
175                            const CIMNamespaceName& nameSpace,
176                            const CIMInstance& newInstance
177                        );
178                    
179                        virtual void modifyClass(
180                            const CIMNamespaceName& nameSpace,
181                            const CIMClass& modifiedClass
182                        );
183 kumpf         1.1  
184                        virtual void modifyInstance(
185                            const CIMNamespaceName& nameSpace,
186                            const CIMInstance& modifiedInstance,
187                            Boolean includeQualifiers = true,
188                            const CIMPropertyList& propertyList = CIMPropertyList()
189                        );
190                    
191                        virtual Array<CIMClass> enumerateClasses(
192                            const CIMNamespaceName& nameSpace,
193                            const CIMName& className = CIMName(),
194                            Boolean deepInheritance = false,
195                            Boolean localOnly = true,
196                            Boolean includeQualifiers = true,
197                            Boolean includeClassOrigin = false
198                        );
199                    
200                        virtual Array<CIMName> enumerateClassNames(
201                            const CIMNamespaceName& nameSpace,
202                            const CIMName& className = CIMName(),
203                            Boolean deepInheritance = false
204 kumpf         1.1      );
205                    
206                        virtual Array<CIMInstance> enumerateInstances(
207                            const CIMNamespaceName& nameSpace,
208                            const CIMName& className,
209                            Boolean deepInheritance = true,
210                            Boolean localOnly = true,
211                            Boolean includeQualifiers = false,
212                            Boolean includeClassOrigin = false,
213                            const CIMPropertyList& propertyList = CIMPropertyList()
214                        );
215                    
216                        virtual Array<CIMObjectPath> enumerateInstanceNames(
217                            const CIMNamespaceName& nameSpace,
218                            const CIMName& className
219                        );
220                    
221                        virtual Array<CIMObject> execQuery(
222                            const CIMNamespaceName& nameSpace,
223                            const String& queryLanguage,
224                            const String& query
225 kumpf         1.1      );
226                    
227                        virtual Array<CIMObject> associators(
228                            const CIMNamespaceName& nameSpace,
229                            const CIMObjectPath& objectName,
230                            const CIMName& assocClass = CIMName(),
231                            const CIMName& resultClass = CIMName(),
232                            const String& role = String::EMPTY,
233                            const String& resultRole = String::EMPTY,
234                            Boolean includeQualifiers = false,
235                            Boolean includeClassOrigin = false,
236                            const CIMPropertyList& propertyList = CIMPropertyList()
237                        );
238                    
239                        virtual Array<CIMObjectPath> associatorNames(
240                            const CIMNamespaceName& nameSpace,
241                            const CIMObjectPath& objectName,
242                            const CIMName& assocClass = CIMName(),
243                            const CIMName& resultClass = CIMName(),
244                            const String& role = String::EMPTY,
245                            const String& resultRole = String::EMPTY
246 kumpf         1.1      );
247                    
248                        virtual Array<CIMObject> references(
249                            const CIMNamespaceName& nameSpace,
250                            const CIMObjectPath& objectName,
251                            const CIMName& resultClass = CIMName(),
252                            const String& role = String::EMPTY,
253                            Boolean includeQualifiers = false,
254                            Boolean includeClassOrigin = false,
255                            const CIMPropertyList& propertyList = CIMPropertyList()
256                        );
257                    
258                        virtual Array<CIMObjectPath> referenceNames(
259                            const CIMNamespaceName& nameSpace,
260                            const CIMObjectPath& objectName,
261                            const CIMName& resultClass = CIMName(),
262                            const String& role = String::EMPTY
263                        );
264                    
265                        virtual CIMValue getProperty(
266                            const CIMNamespaceName& nameSpace,
267 kumpf         1.1          const CIMObjectPath& instanceName,
268                            const CIMName& propertyName
269                        );
270                    
271                        virtual void setProperty(
272                            const CIMNamespaceName& nameSpace,
273                            const CIMObjectPath& instanceName,
274                            const CIMName& propertyName,
275                            const CIMValue& newValue = CIMValue()
276                        );
277                    
278                        virtual CIMQualifierDecl getQualifier(
279                            const CIMNamespaceName& nameSpace,
280                            const CIMName& qualifierName
281                        );
282                    
283                        virtual void setQualifier(
284                            const CIMNamespaceName& nameSpace,
285                            const CIMQualifierDecl& qualifierDeclaration
286                        );
287                    
288 kumpf         1.1      virtual void deleteQualifier(
289                            const CIMNamespaceName& nameSpace,
290                            const CIMName& qualifierName
291                        );
292                    
293                        virtual Array<CIMQualifierDecl> enumerateQualifiers(
294                            const CIMNamespaceName& nameSpace
295                        );
296                    
297                        virtual CIMValue invokeMethod(
298                            const CIMNamespaceName& nameSpace,
299                            const CIMObjectPath& instanceName,
300                            const CIMName& methodName,
301                            const Array<CIMParamValue>& inParameters,
302                            Array<CIMParamValue>& outParameters
303                        );
304                    
305 w.white       1.18     void registerClientOpPerformanceDataHandler(
306                            ClientOpPerformanceDataHandler & handler);
307 david.dillard 1.19 
308 w.white       1.18     void deregisterClientOpPerformanceDataHandler();
309                    
310 kumpf         1.1  private:
311                    
312 a.arora       1.13     void _connect();
313 kumpf         1.1  
314 kumpf         1.4      void _disconnect();
315                    
316 kumpf         1.1      void _reconnect();
317                    
318                        Message* _doRequest(
319 a.arora       1.12         AutoPtr<CIMRequestMessage>& request,
320 kumpf         1.1          const Uint32 expectedResponseMessageType);
321                    
322                        String _getLocalHostName();
323 a.arora       1.12     AutoPtr<Monitor> _monitor;
324                        AutoPtr<HTTPConnector> _httpConnector;
325 denise.eckstein 1.20     HTTPConnection* _httpConnection;
326 r.kieninger     1.11 
327 dj.gorey        1.5  
328 kumpf           1.1      Uint32 _timeoutMilliseconds;
329                          Boolean _connected;
330 a.arora         1.12     AutoPtr<CIMOperationResponseDecoder> _responseDecoder;
331                          AutoPtr<CIMOperationRequestEncoder> _requestEncoder;
332 kumpf           1.1      ClientAuthenticator _authenticator;
333                          String _connectHost;
334                          Uint32 _connectPortNumber;
335 kumpf           1.10     AutoPtr<SSLContext> _connectSSLContext;
336 a.dunfey        1.22     ClientPerfDataStore perfDataStore;
337 kumpf           1.1  
338                          // l10n
339 kumpf           1.21     AcceptLanguageList requestAcceptLanguages;
340                          ContentLanguageList requestContentLanguages;
341                          ContentLanguageList responseContentLanguages;
342 kumpf           1.1  };
343                      
344                      PEGASUS_NAMESPACE_END
345                      
346                      #endif /* Pegasus_ClientRep_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2