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

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2