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
00033 #ifndef Pegasus_CIMOMHandle_h
00034 #define Pegasus_CIMOMHandle_h
00035
00036 #include <Pegasus/Common/Config.h>
00037 #include <Pegasus/Common/OperationContext.h>
00038 #include <Pegasus/Common/CIMObject.h>
00039 #include <Pegasus/Common/CIMObjectPath.h>
00040 #include <Pegasus/Common/CIMClass.h>
00041 #include <Pegasus/Common/CIMInstance.h>
00042 #include <Pegasus/Common/CIMPropertyList.h>
00043 #include <Pegasus/Common/ResponseHandler.h>
00044 #include <Pegasus/Provider/Linkage.h>
00045
00046 PEGASUS_NAMESPACE_BEGIN
00047
00048 class CIMOMHandleRep;
00049
00066 class PEGASUS_PROVIDER_LINKAGE CIMOMHandle
00067 {
00068 public:
00069
00073 CIMOMHandle();
00074
00075 CIMOMHandle(const CIMOMHandle&);
00076
00080 ~CIMOMHandle();
00081
00087 CIMOMHandle& operator=(const CIMOMHandle& handle);
00088
00089 CIMClass getClass(
00090 const OperationContext& context,
00091 const CIMNamespaceName& nameSpace,
00092 const CIMName& className,
00093 Boolean localOnly,
00094 Boolean includeQualifiers,
00095 Boolean includeClassOrigin,
00096 const CIMPropertyList& propertyList);
00097
00098 Array<CIMClass> enumerateClasses(
00099 const OperationContext& context,
00100 const CIMNamespaceName& nameSpace,
00101 const CIMName& className,
00102 Boolean deepInheritance,
00103 Boolean localOnly,
00104 Boolean includeQualifiers,
00105 Boolean includeClassOrigin);
00106
00107 Array<CIMName> enumerateClassNames(
00108 const OperationContext& context,
00109 const CIMNamespaceName& nameSpace,
00110 const CIMName& className,
00111 Boolean deepInheritance);
00112
00113 void createClass(
00114 const OperationContext& context,
00115 const CIMNamespaceName& nameSpace,
00116 const CIMClass& newClass);
00117
00118 void modifyClass(
00119 const OperationContext& context,
00120 const CIMNamespaceName& nameSpace,
00121 const CIMClass& modifiedClass);
00122
00123 void deleteClass(
00124 const OperationContext& context,
00125 const CIMNamespaceName& nameSpace,
00126 const CIMName& className);
00127
00128 CIMInstance getInstance(
00129 const OperationContext& context,
00130 const CIMNamespaceName& nameSpace,
00131 const CIMObjectPath& instanceName,
00132 Boolean localOnly,
00133 Boolean includeQualifiers,
00134 Boolean includeClassOrigin,
00135 const CIMPropertyList& propertyList);
00136
00137 Array<CIMInstance> enumerateInstances(
00138 const OperationContext& context,
00139 const CIMNamespaceName& nameSpace,
00140 const CIMName& className,
00141 Boolean deepInheritance,
00142 Boolean localOnly,
00143 Boolean includeQualifiers,
00144 Boolean includeClassOrigin,
00145 const CIMPropertyList& propertyList);
00146
00147 Array<CIMObjectPath> enumerateInstanceNames(
00148 const OperationContext& context,
00149 const CIMNamespaceName& nameSpace,
00150 const CIMName& className);
00151
00152 CIMObjectPath createInstance(
00153 const OperationContext& context,
00154 const CIMNamespaceName& nameSpace,
00155 const CIMInstance& newInstance);
00156
00157 void modifyInstance(
00158 const OperationContext& context,
00159 const CIMNamespaceName& nameSpace,
00160 const CIMInstance& modifiedInstance,
00161 Boolean includeQualifiers,
00162 const CIMPropertyList& propertyList);
00163
00164 void deleteInstance(
00165 const OperationContext& context,
00166 const CIMNamespaceName& nameSpace,
00167 const CIMObjectPath& instanceName);
00168
00169 Array<CIMObject> execQuery(
00170 const OperationContext& context,
00171 const CIMNamespaceName& nameSpace,
00172 const String& queryLanguage,
00173 const String& query);
00174
00175 Array<CIMObject> associators(
00176 const OperationContext& context,
00177 const CIMNamespaceName& nameSpace,
00178 const CIMObjectPath& objectName,
00179 const CIMName& assocClass,
00180 const CIMName& resultClass,
00181 const String& role,
00182 const String& resultRole,
00183 Boolean includeQualifiers,
00184 Boolean includeClassOrigin,
00185 const CIMPropertyList& propertyList);
00186
00187 Array<CIMObjectPath> associatorNames(
00188 const OperationContext& context,
00189 const CIMNamespaceName& nameSpace,
00190 const CIMObjectPath& objectName,
00191 const CIMName& assocClass,
00192 const CIMName& resultClass,
00193 const String& role,
00194 const String& resultRole);
00195
00196 Array<CIMObject> references(
00197 const OperationContext& context,
00198 const CIMNamespaceName& nameSpace,
00199 const CIMObjectPath& objectName,
00200 const CIMName& resultClass,
00201 const String& role,
00202 Boolean includeQualifiers,
00203 Boolean includeClassOrigin,
00204 const CIMPropertyList& propertyList);
00205
00206 Array<CIMObjectPath> referenceNames(
00207 const OperationContext& context,
00208 const CIMNamespaceName& nameSpace,
00209 const CIMObjectPath& objectName,
00210 const CIMName& resultClass,
00211 const String& role);
00212
00213
00214 CIMValue getProperty(
00215 const OperationContext& context,
00216 const CIMNamespaceName& nameSpace,
00217 const CIMObjectPath& instanceName,
00218 const CIMName& propertyName);
00219
00220 void setProperty(
00221 const OperationContext& context,
00222 const CIMNamespaceName& nameSpace,
00223 const CIMObjectPath& instanceName,
00224 const CIMName& propertyName,
00225 const CIMValue& newValue);
00226
00227 CIMValue invokeMethod(
00228 const OperationContext& context,
00229 const CIMNamespaceName& nameSpace,
00230 const CIMObjectPath& instanceName,
00231 const CIMName& methodName,
00232 const Array<CIMParamValue>& inParameters,
00233 Array<CIMParamValue>& outParameters);
00234
00245 void disallowProviderUnload();
00246
00256 void allowProviderUnload();
00257
00258 #ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES
00259
00270 OperationContext getResponseContext();
00271 #endif
00272
00273 private:
00274 CIMOMHandleRep* _rep;
00275
00276 friend class ProviderStatus;
00277 friend class CMPIProvider;
00278
00279 Boolean unload_ok();
00280 };
00281
00282 PEGASUS_NAMESPACE_END
00283
00284 #endif