CIMClient.h
1 //%LICENSE////////////////////////////////////////////////////////////////
2 //
3 // Licensed to The Open Group (TOG) under one or more contributor license
4 // agreements. Refer to the OpenPegasusNOTICE.txt file distributed with
5 // this work for additional information regarding copyright ownership.
6 // Each contributor licenses this file to you under the OpenPegasus Open
7 // Source License; you may not use this file except in compliance with the
8 // License.
9 //
10 // Permission is hereby granted, free of charge, to any person obtaining a
11 // copy of this software and associated documentation files (the "Software"),
12 // to deal in the Software without restriction, including without limitation
13 // the rights to use, copy, modify, merge, publish, distribute, sublicense,
14 // and/or sell copies of the Software, and to permit persons to whom the
15 // Software is furnished to do so, subject to the following conditions:
16 //
17 // The above copyright notice and this permission notice shall be included
18 // in all copies or substantial portions of the Software.
19 //
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
21 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
23 // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
24 // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
25 // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
26 // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 //
29 //
30 //%/////////////////////////////////////////////////////////////////////////////
31 
32 #ifndef Pegasus_Client_h
33 #define Pegasus_Client_h
34 
35 #include <Pegasus/Common/Config.h>
36 #include <Pegasus/Common/String.h>
37 #include <Pegasus/Common/CIMName.h>
38 #include <Pegasus/Common/SSLContext.h>
39 #include <Pegasus/Common/CIMObject.h>
40 #include <Pegasus/Common/CIMClass.h>
41 #include <Pegasus/Common/CIMInstance.h>
42 #include <Pegasus/Common/CIMObjectPath.h>
43 #include <Pegasus/Common/CIMValue.h>
44 #include <Pegasus/Common/CIMParamValue.h>
45 #include <Pegasus/Common/CIMPropertyList.h>
46 #include <Pegasus/Common/CIMQualifierDecl.h>
47 #include <Pegasus/Common/Exception.h>
48 #include <Pegasus/Common/UintArgs.h>
49 #include <Pegasus/Client/CIMClientException.h>
50 #include <Pegasus/Client/Linkage.h>
51 #include <Pegasus/Common/AcceptLanguageList.h>
52 #include <Pegasus/Common/ContentLanguageList.h>
53 #include <Pegasus/Client/CIMEnumerationContext.h>
54 #include <Pegasus/Client/ClientOpPerformanceDataHandler.h>
55 
56 
57 PEGASUS_NAMESPACE_BEGIN
58 
59 class CIMClientInterface;
60 
71 class PEGASUS_CLIENT_LINKAGE CIMClient
72 {
73 public:
74 
78  CIMClient();
79 
83  ~CIMClient();
84 
90  Uint32 getTimeout() const;
91 
100  void setTimeout(Uint32 timeoutMilliseconds);
101 
134  void connect(
135  const String& host,
136  const Uint32 portNumber,
137  const String& userName,
138  const String& password);
139 
158  void connect(
159  const String& host,
160  const Uint32 portNumber,
161  const SSLContext& sslContext,
162  const String& userName,
163  const String& password);
164 
177  void connectLocal();
178 
184  void disconnect();
185 
193  void setRequestAcceptLanguages(const AcceptLanguageList& langs);
194 
201  AcceptLanguageList getRequestAcceptLanguages() const;
202 
210  void setRequestContentLanguages(const ContentLanguageList& langs);
211 
219  ContentLanguageList getRequestContentLanguages() const;
220 
228  ContentLanguageList getResponseContentLanguages() const;
229 
230 #ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES
231 
233  void setRequestDefaultLanguages();
234 #endif // PEGASUS_USE_EXPERIMENTAL_INTERFACES
235 
273  CIMClass getClass(
274  const CIMNamespaceName& nameSpace,
275  const CIMName& className,
276  Boolean localOnly = true,
277  Boolean includeQualifiers = true,
278  Boolean includeClassOrigin = false,
279  const CIMPropertyList& propertyList = CIMPropertyList());
280 
318  CIMInstance getInstance(
319  const CIMNamespaceName& nameSpace,
320  const CIMObjectPath& instanceName,
321  Boolean localOnly = true,
322  Boolean includeQualifiers = false,
323  Boolean includeClassOrigin = false,
324  const CIMPropertyList& propertyList = CIMPropertyList());
325 
338  void deleteClass(
339  const CIMNamespaceName& nameSpace,
340  const CIMName& className);
341 
355  void deleteInstance(
356  const CIMNamespaceName& nameSpace,
357  const CIMObjectPath& instanceName);
358 
372  void createClass(
373  const CIMNamespaceName& nameSpace,
374  const CIMClass& newClass);
375 
392  CIMObjectPath createInstance(
393  const CIMNamespaceName& nameSpace,
394  const CIMInstance& newInstance);
395 
409  void modifyClass(
410  const CIMNamespaceName& nameSpace,
411  const CIMClass& modifiedClass);
412 
437  void modifyInstance(
438  const CIMNamespaceName& nameSpace,
439  const CIMInstance& modifiedInstance,
440  Boolean includeQualifiers = true,
441  const CIMPropertyList& propertyList = CIMPropertyList());
442 
479  Array<CIMClass> enumerateClasses(
480  const CIMNamespaceName& nameSpace,
481  const CIMName& className = CIMName(),
482  Boolean deepInheritance = false,
483  Boolean localOnly = true,
484  Boolean includeQualifiers = true,
485  Boolean includeClassOrigin = false);
486 
509  Array<CIMName> enumerateClassNames(
510  const CIMNamespaceName& nameSpace,
511  const CIMName& className = CIMName(),
512  Boolean deepInheritance = false);
513 
558  Array<CIMInstance> enumerateInstances(
559  const CIMNamespaceName& nameSpace,
560  const CIMName& className,
561  Boolean deepInheritance = true,
562  Boolean localOnly = true,
563  Boolean includeQualifiers = false,
564  Boolean includeClassOrigin = false,
565  const CIMPropertyList& propertyList = CIMPropertyList());
566 
585  Array<CIMObjectPath> enumerateInstanceNames(
586  const CIMNamespaceName& nameSpace,
587  const CIMName& className);
588 
606  Array<CIMObject> execQuery(
607  const CIMNamespaceName& nameSpace,
608  const String& queryLanguage,
609  const String& query);
610 
664  Array<CIMObject> associators(
665  const CIMNamespaceName& nameSpace,
666  const CIMObjectPath& objectName,
667  const CIMName& assocClass = CIMName(),
668  const CIMName& resultClass = CIMName(),
669  const String& role = String::EMPTY,
670  const String& resultRole = String::EMPTY,
671  Boolean includeQualifiers = false,
672  Boolean includeClassOrigin = false,
673  const CIMPropertyList& propertyList = CIMPropertyList());
674 
713  Array<CIMObjectPath> associatorNames(
714  const CIMNamespaceName& nameSpace,
715  const CIMObjectPath& objectName,
716  const CIMName& assocClass = CIMName(),
717  const CIMName& resultClass = CIMName(),
718  const String& role = String::EMPTY,
719  const String& resultRole = String::EMPTY);
720 
763  Array<CIMObject> references(
764  const CIMNamespaceName& nameSpace,
765  const CIMObjectPath& objectName,
766  const CIMName& resultClass = CIMName(),
767  const String& role = String::EMPTY,
768  Boolean includeQualifiers = false,
769  Boolean includeClassOrigin = false,
770  const CIMPropertyList& propertyList = CIMPropertyList());
771 
798  Array<CIMObjectPath> referenceNames(
799  const CIMNamespaceName& nameSpace,
800  const CIMObjectPath& objectName,
801  const CIMName& resultClass = CIMName(),
802  const String& role = String::EMPTY);
803 
821  CIMValue getProperty(
822  const CIMNamespaceName& nameSpace,
823  const CIMObjectPath& instanceName,
824  const CIMName& propertyName);
825 
843  void setProperty(
844  const CIMNamespaceName& nameSpace,
845  const CIMObjectPath& instanceName,
846  const CIMName& propertyName,
847  const CIMValue& newValue = CIMValue());
848 
865  CIMQualifierDecl getQualifier(
866  const CIMNamespaceName& nameSpace,
867  const CIMName& qualifierName);
868 
883  void setQualifier(
884  const CIMNamespaceName& nameSpace,
885  const CIMQualifierDecl& qualifierDeclaration);
886 
900  void deleteQualifier(
901  const CIMNamespaceName& nameSpace,
902  const CIMName& qualifierName);
903 
917  Array<CIMQualifierDecl> enumerateQualifiers(
918  const CIMNamespaceName& nameSpace);
919 
941  CIMValue invokeMethod(
942  const CIMNamespaceName& nameSpace,
943  const CIMObjectPath& instanceName,
944  const CIMName& methodName,
945  const Array<CIMParamValue>& inParameters,
946  Array<CIMParamValue>& outParameters);
947 
956  void registerClientOpPerformanceDataHandler(
958 
962  void deregisterClientOpPerformanceDataHandler();
963 
964 //KS-PULL_BEGIN
965 
1100  Array<CIMInstance> openEnumerateInstances(
1101  CIMEnumerationContext& enumerationContext,
1102  Boolean& endOfSequence,
1103  const CIMNamespaceName& nameSpace,
1104  const CIMName& className,
1105  Boolean deepInheritance = true,
1106  Boolean includeClassOrigin = false,
1107  const CIMPropertyList& propertyList = CIMPropertyList(),
1108  const String& filterQueryLanguage = String::EMPTY,
1109  const String& filterQuery = String::EMPTY,
1110  const Uint32Arg& operationTimeout = Uint32Arg(),
1111  Boolean continueOnError = false,
1112  Uint32 maxObjectCount = 0 );
1113 
1176  Array<CIMObjectPath> openEnumerateInstancePaths(
1177  CIMEnumerationContext& enumerationContext,
1178  Boolean& endOfSequence,
1179  const CIMNamespaceName& nameSpace,
1180  const CIMName& className,
1181  const String& filterQueryLanguage = String::EMPTY,
1182  const String& filterQuery = String::EMPTY,
1183  const Uint32Arg& operationTimeout = Uint32Arg(),
1184  Boolean continueOnError = false,
1185  Uint32 maxObjectCount = 0 );
1186 
1266  Array<CIMInstance> openReferenceInstances(
1267  CIMEnumerationContext& enumerationContext,
1268  Boolean& endOfSequence,
1269  const CIMNamespaceName& nameSpace,
1270  const CIMObjectPath& objectName,
1271  const CIMName& resultClass = CIMName(),
1272  const String& role = String::EMPTY,
1273  const Boolean includeClassOrigin = false,
1274  const CIMPropertyList& propertyList = CIMPropertyList(),
1275  const String& filterQueryLanguage = String::EMPTY,
1276  const String& filterQuery = String::EMPTY,
1277  const Uint32Arg& operationTimeout = Uint32Arg(),
1278  Boolean continueOnError = false,
1279  Uint32 maxObjectCount = 0 );
1280 
1357  Array<CIMObjectPath> openReferenceInstancePaths(
1358  CIMEnumerationContext& enumerationContext,
1359  Boolean& endOfSequence,
1360  const CIMNamespaceName& nameSpace,
1361  const CIMObjectPath& objectName,
1362  const CIMName& resultClass = CIMName(),
1363  const String& role = String::EMPTY,
1364  const String& filterQueryLanguage = String::EMPTY,
1365  const String& filterQuery = String::EMPTY,
1366  const Uint32Arg& operationTimeout = Uint32Arg(),
1367  Boolean continueOnError = false,
1368  Uint32 maxObjectCount = 0 );
1369 
1452  Array<CIMInstance> openAssociatorInstances(
1453  CIMEnumerationContext& enumerationContext,
1454  Boolean& endOfSequence,
1455  const CIMNamespaceName& nameSpace,
1456  const CIMObjectPath& objectName,
1457  const CIMName& assocClass = CIMName(),
1458  const CIMName& resultClass = CIMName(),
1459  const String& role = String::EMPTY,
1460  const String& resultRole = String::EMPTY,
1461  Boolean includeClassOrigin = false,
1462  const CIMPropertyList& propertyList = CIMPropertyList(),
1463  const String& filterQueryLanguage = String::EMPTY,
1464  const String& filterQuery = String::EMPTY,
1465  const Uint32Arg& operationTimeout = Uint32Arg(),
1466  Boolean continueOnError = false,
1467  Uint32 maxObjectCount = 0 );
1468 
1544  Array<CIMObjectPath> openAssociatorInstancePaths(
1545  CIMEnumerationContext& enumerationContext,
1546  Boolean& endOfSequence,
1547  const CIMNamespaceName& nameSpace,
1548  const CIMObjectPath& objectName,
1549  const CIMName& assocClass = CIMName(),
1550  const CIMName& resultClass = CIMName(),
1551  const String& role = String::EMPTY,
1552  const String& resultRole = String::EMPTY,
1553  const String& filterQueryLanguage = String::EMPTY,
1554  const String& filterQuery = String::EMPTY,
1555  const Uint32Arg& operationTimeout = Uint32Arg(),
1556  Boolean continueOnError = false,
1557  Uint32 maxObjectCount = 0 );
1558 
1559 
1618  Array<CIMInstance> openQueryInstances(
1619  CIMEnumerationContext& enumerationContext,
1620  Boolean& endOfSequence,
1621  const CIMNamespaceName& nameSpace,
1622  const String& queryLanguage,
1623  const String& query,
1624  CIMClass& queryResultClass,
1625  Boolean returnQueryResultClass = false,
1626  const Uint32Arg& operationTimeout = Uint32Arg(),
1627  Boolean continueOnError = false,
1628  Uint32 maxObjectCount = 0 );
1629 
1679  Array<CIMInstance> pullInstancesWithPath(
1680  CIMEnumerationContext& enumerationContext,
1681  Boolean& endOfSequence,
1682  Uint32 maxObjectCount );
1683 
1729  Array<CIMObjectPath> pullInstancePaths(
1730  CIMEnumerationContext& enumerationContext,
1731  Boolean& endOfSequence,
1732  Uint32 maxObjectCount );
1784  Array<CIMInstance> pullInstances(
1785  CIMEnumerationContext& enumerationContext,
1786  Boolean& endOfSequence,
1787  Uint32 maxObjectCount );
1848  void closeEnumeration(
1849  CIMEnumerationContext& enumerationContext );
1850 
1884  Uint64Arg enumerationCount(
1885  CIMEnumerationContext& enumerationContext
1886  );
1887 
1888 //KS_PULL_END
1889 
1890 private:
1891 
1895  CIMClient(const CIMClient&);
1896 
1900  CIMClient& operator=(const CIMClient&);
1901 
1902  CIMClientInterface* _rep;
1903 };
1904 
1905 PEGASUS_NAMESPACE_END
1906 
1907 #endif /* Pegasus_Client_h */
Definition: CIMObjectPath.h:388
Definition: CIMInstance.h:64
Definition: CIMValue.h:63
Definition: String.h:119
Definition: CIMPropertyList.h:61
Definition: CIMName.h:64
Definition: CIMClass.h:61
Definition: CIMClient.h:71
static const String EMPTY
Definition: String.h:127
Definition: ArrayInter.h:44
Definition: SSLContext.h:356
Definition: CIMName.h:255
Definition: ClientOpPerformanceDataHandler.h:87
Definition: CIMQualifierDecl.h:72
Definition: ContentLanguageList.h:53
Definition: AcceptLanguageList.h:53