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 
00028 
00029 
00030 
00031 
00036 #ifndef OW_CPP_INSTANCEPROVIDERIFC_HPP_
00037 #define OW_CPP_INSTANCEPROVIDERIFC_HPP_
00038 #include "OW_config.h"
00039 #include "OW_CppProviderBaseIFC.hpp"
00040 #include "OW_SharedLibraryReference.hpp"
00041 #include "OW_InstanceProviderInfo.hpp"
00042 #include "OW_WBEMFlags.hpp"
00043 #include "OW_ResultHandlerIFC.hpp"
00044 
00045 namespace OW_NAMESPACE
00046 {
00047 
00052 class OW_CPPPROVIFC_API CppInstanceProviderIFC: public virtual CppProviderBaseIFC
00053 {
00054 public:
00055    CppInstanceProviderIFC();
00056    virtual ~CppInstanceProviderIFC();
00071    virtual void getInstanceProviderInfoWithEnv(
00072       const ProviderRegistrationEnvironmentIFCRef& env,
00073       InstanceProviderInfo& info);
00074 
00089    virtual void getInstanceProviderInfo(InstanceProviderInfo& info);
00090 
00103    virtual void enumInstanceNames(
00104          const ProviderEnvironmentIFCRef& env,
00105          const String& ns,
00106          const String& className,
00107          CIMObjectPathResultHandlerIFC& result,
00108          const CIMClass& cimClass ) = 0;
00129    virtual void enumInstances(
00130          const ProviderEnvironmentIFCRef& env,
00131          const String& ns,
00132          const String& className,
00133          CIMInstanceResultHandlerIFC& result,
00134          WBEMFlags::ELocalOnlyFlag localOnly,
00135          WBEMFlags::EDeepFlag deep,
00136          WBEMFlags::EIncludeQualifiersFlag includeQualifiers,
00137          WBEMFlags::EIncludeClassOriginFlag includeClassOrigin,
00138          const StringArray* propertyList,
00139          const CIMClass& requestedClass,
00140          const CIMClass& cimClass );
00158    virtual CIMInstance getInstance(
00159          const ProviderEnvironmentIFCRef& env,
00160          const String& ns,
00161          const CIMObjectPath& instanceName,
00162          WBEMFlags::ELocalOnlyFlag localOnly,
00163          WBEMFlags::EIncludeQualifiersFlag includeQualifiers,
00164          WBEMFlags::EIncludeClassOriginFlag includeClassOrigin,
00165          const StringArray* propertyList,
00166          const CIMClass& cimClass ) = 0;
00167 #ifndef OW_DISABLE_INSTANCE_MANIPULATION
00168 
00182    virtual CIMObjectPath createInstance(
00183          const ProviderEnvironmentIFCRef& env,
00184          const String& ns,
00185          const CIMInstance& cimInstance ) = 0;
00198    virtual void modifyInstance(
00199          const ProviderEnvironmentIFCRef& env,
00200          const String& ns,
00201          const CIMInstance& modifiedInstance,
00202          const CIMInstance& previousInstance,
00203          WBEMFlags::EIncludeQualifiersFlag includeQualifiers,
00204          const StringArray* propertyList,
00205          const CIMClass& theClass) = 0;
00213    virtual void deleteInstance(
00214          const ProviderEnvironmentIFCRef& env,
00215          const String& ns,
00216          const CIMObjectPath& cop) = 0;
00217 #endif // #ifndef OW_DISABLE_INSTANCE_MANIPULATION
00218    virtual CppInstanceProviderIFC* getInstanceProvider();
00219 };
00220 typedef SharedLibraryReference< IntrusiveReference<CppInstanceProviderIFC> > CppInstanceProviderIFCRef;
00221 
00222 } 
00223 
00224 #endif