00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00029
00030
00031
00032 #ifndef Pegasus_Client_h
00033 #define Pegasus_Client_h
00034
00035 #include <Pegasus/Common/Config.h>
00036 #include <Pegasus/Common/String.h>
00037 #include <Pegasus/Common/CIMName.h>
00038 #include <Pegasus/Common/SSLContext.h>
00039 #include <Pegasus/Common/CIMObject.h>
00040 #include <Pegasus/Common/CIMClass.h>
00041 #include <Pegasus/Common/CIMInstance.h>
00042 #include <Pegasus/Common/CIMObjectPath.h>
00043 #include <Pegasus/Common/CIMValue.h>
00044 #include <Pegasus/Common/CIMParamValue.h>
00045 #include <Pegasus/Common/CIMPropertyList.h>
00046 #include <Pegasus/Common/CIMQualifierDecl.h>
00047 #include <Pegasus/Common/Exception.h>
00048 #include <Pegasus/Client/CIMClientException.h>
00049 #include <Pegasus/Client/Linkage.h>
00050 #include <Pegasus/Common/AcceptLanguageList.h>
00051 #include <Pegasus/Common/ContentLanguageList.h>
00052 #include <Pegasus/Client/ClientOpPerformanceDataHandler.h>
00053
00054
00055 PEGASUS_NAMESPACE_BEGIN
00056
00057 class CIMClientInterface;
00058
00069 class PEGASUS_CLIENT_LINKAGE CIMClient
00070 {
00071 public:
00072
00076 CIMClient();
00077
00081 ~CIMClient();
00082
00088 Uint32 getTimeout() const;
00089
00098 void setTimeout(Uint32 timeoutMilliseconds);
00099
00132 void connect(
00133 const String& host,
00134 const Uint32 portNumber,
00135 const String& userName,
00136 const String& password);
00137
00156 void connect(
00157 const String& host,
00158 const Uint32 portNumber,
00159 const SSLContext& sslContext,
00160 const String& userName,
00161 const String& password);
00162
00175 void connectLocal();
00176
00182 void disconnect();
00183
00191 void setRequestAcceptLanguages(const AcceptLanguageList& langs);
00192
00199 AcceptLanguageList getRequestAcceptLanguages() const;
00200
00208 void setRequestContentLanguages(const ContentLanguageList& langs);
00209
00217 ContentLanguageList getRequestContentLanguages() const;
00218
00226 ContentLanguageList getResponseContentLanguages() const;
00227
00228 #ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES
00229
00231 void setRequestDefaultLanguages();
00232 #endif // PEGASUS_USE_EXPERIMENTAL_INTERFACES
00233
00271 CIMClass getClass(
00272 const CIMNamespaceName& nameSpace,
00273 const CIMName& className,
00274 Boolean localOnly = true,
00275 Boolean includeQualifiers = true,
00276 Boolean includeClassOrigin = false,
00277 const CIMPropertyList& propertyList = CIMPropertyList());
00278
00316 CIMInstance getInstance(
00317 const CIMNamespaceName& nameSpace,
00318 const CIMObjectPath& instanceName,
00319 Boolean localOnly = true,
00320 Boolean includeQualifiers = false,
00321 Boolean includeClassOrigin = false,
00322 const CIMPropertyList& propertyList = CIMPropertyList());
00323
00336 void deleteClass(
00337 const CIMNamespaceName& nameSpace,
00338 const CIMName& className);
00339
00353 void deleteInstance(
00354 const CIMNamespaceName& nameSpace,
00355 const CIMObjectPath& instanceName);
00356
00370 void createClass(
00371 const CIMNamespaceName& nameSpace,
00372 const CIMClass& newClass);
00373
00390 CIMObjectPath createInstance(
00391 const CIMNamespaceName& nameSpace,
00392 const CIMInstance& newInstance);
00393
00407 void modifyClass(
00408 const CIMNamespaceName& nameSpace,
00409 const CIMClass& modifiedClass);
00410
00435 void modifyInstance(
00436 const CIMNamespaceName& nameSpace,
00437 const CIMInstance& modifiedInstance,
00438 Boolean includeQualifiers = true,
00439 const CIMPropertyList& propertyList = CIMPropertyList());
00440
00477 Array<CIMClass> enumerateClasses(
00478 const CIMNamespaceName& nameSpace,
00479 const CIMName& className = CIMName(),
00480 Boolean deepInheritance = false,
00481 Boolean localOnly = true,
00482 Boolean includeQualifiers = true,
00483 Boolean includeClassOrigin = false);
00484
00507 Array<CIMName> enumerateClassNames(
00508 const CIMNamespaceName& nameSpace,
00509 const CIMName& className = CIMName(),
00510 Boolean deepInheritance = false);
00511
00556 Array<CIMInstance> enumerateInstances(
00557 const CIMNamespaceName& nameSpace,
00558 const CIMName& className,
00559 Boolean deepInheritance = true,
00560 Boolean localOnly = true,
00561 Boolean includeQualifiers = false,
00562 Boolean includeClassOrigin = false,
00563 const CIMPropertyList& propertyList = CIMPropertyList());
00564
00583 Array<CIMObjectPath> enumerateInstanceNames(
00584 const CIMNamespaceName& nameSpace,
00585 const CIMName& className);
00586
00604 Array<CIMObject> execQuery(
00605 const CIMNamespaceName& nameSpace,
00606 const String& queryLanguage,
00607 const String& query);
00608
00662 Array<CIMObject> associators(
00663 const CIMNamespaceName& nameSpace,
00664 const CIMObjectPath& objectName,
00665 const CIMName& assocClass = CIMName(),
00666 const CIMName& resultClass = CIMName(),
00667 const String& role = String::EMPTY,
00668 const String& resultRole = String::EMPTY,
00669 Boolean includeQualifiers = false,
00670 Boolean includeClassOrigin = false,
00671 const CIMPropertyList& propertyList = CIMPropertyList());
00672
00711 Array<CIMObjectPath> associatorNames(
00712 const CIMNamespaceName& nameSpace,
00713 const CIMObjectPath& objectName,
00714 const CIMName& assocClass = CIMName(),
00715 const CIMName& resultClass = CIMName(),
00716 const String& role = String::EMPTY,
00717 const String& resultRole = String::EMPTY);
00718
00761 Array<CIMObject> references(
00762 const CIMNamespaceName& nameSpace,
00763 const CIMObjectPath& objectName,
00764 const CIMName& resultClass = CIMName(),
00765 const String& role = String::EMPTY,
00766 Boolean includeQualifiers = false,
00767 Boolean includeClassOrigin = false,
00768 const CIMPropertyList& propertyList = CIMPropertyList());
00769
00796 Array<CIMObjectPath> referenceNames(
00797 const CIMNamespaceName& nameSpace,
00798 const CIMObjectPath& objectName,
00799 const CIMName& resultClass = CIMName(),
00800 const String& role = String::EMPTY);
00801
00819 CIMValue getProperty(
00820 const CIMNamespaceName& nameSpace,
00821 const CIMObjectPath& instanceName,
00822 const CIMName& propertyName);
00823
00841 void setProperty(
00842 const CIMNamespaceName& nameSpace,
00843 const CIMObjectPath& instanceName,
00844 const CIMName& propertyName,
00845 const CIMValue& newValue = CIMValue());
00846
00863 CIMQualifierDecl getQualifier(
00864 const CIMNamespaceName& nameSpace,
00865 const CIMName& qualifierName);
00866
00881 void setQualifier(
00882 const CIMNamespaceName& nameSpace,
00883 const CIMQualifierDecl& qualifierDeclaration);
00884
00898 void deleteQualifier(
00899 const CIMNamespaceName& nameSpace,
00900 const CIMName& qualifierName);
00901
00915 Array<CIMQualifierDecl> enumerateQualifiers(
00916 const CIMNamespaceName& nameSpace);
00917
00939 CIMValue invokeMethod(
00940 const CIMNamespaceName& nameSpace,
00941 const CIMObjectPath& instanceName,
00942 const CIMName& methodName,
00943 const Array<CIMParamValue>& inParameters,
00944 Array<CIMParamValue>& outParameters);
00945
00954 void registerClientOpPerformanceDataHandler(
00955 ClientOpPerformanceDataHandler & handler);
00956
00960 void deregisterClientOpPerformanceDataHandler();
00961
00962 private:
00963
00967 CIMClient(const CIMClient&);
00968
00972 CIMClient& operator=(const CIMClient&);
00973
00974 CIMClientInterface* _rep;
00975 };
00976
00977 PEGASUS_NAMESPACE_END
00978
00979 #endif