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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2