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 
00035 #ifndef OW_REMOTE_INSTANCE_PROVIDER_HPP_INCLUDE_GUARD_
00036 #define OW_REMOTE_INSTANCE_PROVIDER_HPP_INCLUDE_GUARD_
00037 #include "OW_config.h"
00038 #include "OW_InstanceProviderIFC.hpp"
00039 #include "OW_ClientCIMOMHandleConnectionPool.hpp"
00040 
00041 
00042 
00043 
00044 namespace OW_NAMESPACE
00045 {
00046 
00047 class RemoteInstanceProvider : public InstanceProviderIFC
00048 {
00049 public:
00050    RemoteInstanceProvider(const ProviderEnvironmentIFCRef& env, const String& url, const ClientCIMOMHandleConnectionPoolRef& pool,
00051       bool alwaysSendCredentials, bool useConnectionCredentials);
00052    virtual ~RemoteInstanceProvider();
00053    
00054    virtual void enumInstanceNames(
00055          const ProviderEnvironmentIFCRef& env,
00056          const String& ns,
00057          const String& className,
00058          CIMObjectPathResultHandlerIFC& result,
00059          const CIMClass& cimClass );
00060    
00061    virtual void enumInstances(
00062          const ProviderEnvironmentIFCRef& env,
00063          const String& ns,
00064          const String& className,
00065          CIMInstanceResultHandlerIFC& result,
00066          WBEMFlags::ELocalOnlyFlag localOnly, 
00067          WBEMFlags::EDeepFlag deep, 
00068          WBEMFlags::EIncludeQualifiersFlag includeQualifiers, 
00069          WBEMFlags::EIncludeClassOriginFlag includeClassOrigin,
00070          const StringArray* propertyList,
00071          const CIMClass& requestedClass,
00072          const CIMClass& cimClass );
00073    
00074    virtual CIMInstance getInstance(
00075          const ProviderEnvironmentIFCRef& env,
00076          const String& ns,
00077          const CIMObjectPath& instanceName,
00078          WBEMFlags::ELocalOnlyFlag localOnly,
00079          WBEMFlags::EIncludeQualifiersFlag includeQualifiers, 
00080          WBEMFlags::EIncludeClassOriginFlag includeClassOrigin,
00081          const StringArray* propertyList, 
00082          const CIMClass& cimClass );
00083 
00084 #ifndef OW_DISABLE_INSTANCE_MANIPULATION
00085    virtual CIMObjectPath createInstance(
00086          const ProviderEnvironmentIFCRef& env,
00087          const String& ns,
00088          const CIMInstance& cimInstance );
00089    
00090    virtual void modifyInstance(
00091          const ProviderEnvironmentIFCRef& env,
00092          const String& ns,
00093          const CIMInstance& modifiedInstance,
00094          const CIMInstance& previousInstance,
00095          WBEMFlags::EIncludeQualifiersFlag includeQualifiers,
00096          const StringArray* propertyList,
00097          const CIMClass& theClass);
00098    
00099    virtual void deleteInstance(
00100          const ProviderEnvironmentIFCRef& env,
00101          const String& ns,
00102          const CIMObjectPath& cop);
00103 #endif // #ifndef OW_DISABLE_INSTANCE_MANIPULATION
00104 
00105 private:
00106    ClientCIMOMHandleConnectionPoolRef m_pool;
00107    String m_url;
00108    bool m_alwaysSendCredentials;
00109    bool m_useConnectionCredentials;
00110 };
00111 
00112 
00113 } 
00114 
00115 
00116 #endif
00117 
00118 
00119