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 OWBI1_PROXYPROVIDER_HPP_INCLUDE_GUARD_
00036 #define OWBI1_PROXYPROVIDER_HPP_INCLUDE_GUARD_
00037 #include "OW_config.h"
00038 #include "OWBI1_config.h"
00039 #ifndef OW_DISABLE_ASSOCIATION_TRAVERSAL
00040 #include "OW_AssociatorProviderIFC.hpp"
00041 #endif
00042 #include "OW_InstanceProviderIFC.hpp"
00043 #include "OW_SecondaryInstanceProviderIFC.hpp"
00044 #include "OW_MethodProviderIFC.hpp"
00045 #include "OW_PolledProviderIFC.hpp"
00046 #include "OW_IndicationExportProviderIFC.hpp"
00047 #include "OW_IndicationProviderIFC.hpp"
00048 
00049 #include "OWBI1_AssociatorProviderIFC.hpp"
00050 #include "OWBI1_InstanceProviderIFC.hpp"
00051 #include "OWBI1_SecondaryInstanceProviderIFC.hpp"
00052 #include "OWBI1_MethodProviderIFC.hpp"
00053 #include "OWBI1_PolledProviderIFC.hpp"
00054 #include "OWBI1_IndicationExportProviderIFC.hpp"
00055 #include "OWBI1_IndicationProviderIFC.hpp"
00056 
00057 #include "OWBI1_ProxyProviderDetail.hpp"
00058 
00059 #include "OW_SharedLibraryReference.hpp"
00060 
00061 
00062 
00063 
00064 
00065 
00066 
00067 
00068 
00069 
00070 
00071 
00072 namespace OWBI1
00073 {
00074 
00075 typedef OpenWBEM::SharedLibraryReference< IntrusiveReference<BI1AssociatorProviderIFC> > BI1AssociatorProviderIFCRef;
00076 typedef OpenWBEM::SharedLibraryReference< IntrusiveReference<BI1InstanceProviderIFC> > BI1InstanceProviderIFCRef;
00077 typedef OpenWBEM::SharedLibraryReference< IntrusiveReference<BI1SecondaryInstanceProviderIFC> > BI1SecondaryInstanceProviderIFCRef;
00078 typedef OpenWBEM::SharedLibraryReference< IntrusiveReference<BI1MethodProviderIFC> > BI1MethodProviderIFCRef;
00079 typedef OpenWBEM::SharedLibraryReference< IntrusiveReference<BI1PolledProviderIFC> > BI1PolledProviderIFCRef;
00080 typedef OpenWBEM::SharedLibraryReference< IntrusiveReference<BI1IndicationProviderIFC> > BI1IndicationProviderIFCRef;
00081 typedef OpenWBEM::SharedLibraryReference< IntrusiveReference<BI1IndicationExportProviderIFC> > BI1IndicationExportProviderIFCRef;
00082 typedef OpenWBEM::SharedLibraryReference< IntrusiveReference<BI1IndicationProviderIFC> > BI1IndicationProviderIFCRef;
00083 
00084 using namespace ProxyProviderDetail;
00085 
00086 #ifndef OW_DISABLE_ASSOCIATION_TRAVERSAL
00087 
00088 class OWBI1_OWBI1PROVIFC_API BI1AssociatorProviderProxy : public OpenWBEM::AssociatorProviderIFC
00089 {
00090 public:
00091    BI1AssociatorProviderProxy(const BI1AssociatorProviderIFCRef& pProv);
00092    
00093    virtual void associators(
00094          const OpenWBEM::ProviderEnvironmentIFCRef& env,
00095          OpenWBEM::CIMInstanceResultHandlerIFC& result,
00096          const OpenWBEM::String& ns,
00097          const OpenWBEM::CIMObjectPath& objectName,
00098          const OpenWBEM::String& assocClass,
00099          const OpenWBEM::String& resultClass,
00100          const OpenWBEM::String& role,
00101          const OpenWBEM::String& resultRole,
00102          OpenWBEM::WBEMFlags::EIncludeQualifiersFlag includeQualifiers,
00103          OpenWBEM::WBEMFlags::EIncludeClassOriginFlag includeClassOrigin,
00104          const OpenWBEM::StringArray* propertyList);
00105    virtual void associatorNames(
00106          const OpenWBEM::ProviderEnvironmentIFCRef& env,
00107          OpenWBEM::CIMObjectPathResultHandlerIFC& result,
00108          const OpenWBEM::String& ns,
00109          const OpenWBEM::CIMObjectPath& objectName,
00110          const OpenWBEM::String& assocClass,
00111          const OpenWBEM::String& resultClass,
00112          const OpenWBEM::String& role,
00113          const OpenWBEM::String& resultRole);
00114    virtual void references(
00115          const OpenWBEM::ProviderEnvironmentIFCRef& env,
00116          OpenWBEM::CIMInstanceResultHandlerIFC& result,
00117          const OpenWBEM::String& ns,
00118          const OpenWBEM::CIMObjectPath& objectName,
00119          const OpenWBEM::String& resultClass,
00120          const OpenWBEM::String& role,
00121          OpenWBEM::WBEMFlags::EIncludeQualifiersFlag includeQualifiers,
00122          OpenWBEM::WBEMFlags::EIncludeClassOriginFlag includeClassOrigin,
00123          const OpenWBEM::StringArray* propertyList);
00124    virtual void referenceNames(
00125          const OpenWBEM::ProviderEnvironmentIFCRef& env,
00126          OpenWBEM::CIMObjectPathResultHandlerIFC& result,
00127          const OpenWBEM::String& ns,
00128          const OpenWBEM::CIMObjectPath& objectName,
00129          const OpenWBEM::String& resultClass,
00130          const OpenWBEM::String& role);
00131 private:
00132    BI1AssociatorProviderIFCRef m_pProv;
00133 };
00134 #endif // #ifndef OW_DISABLE_ASSOCIATION_TRAVERSAL
00135 
00136 class OWBI1_OWBI1PROVIFC_API BI1InstanceProviderProxy : public OpenWBEM::InstanceProviderIFC
00137 {
00138 public:
00139    BI1InstanceProviderProxy(const BI1InstanceProviderIFCRef& pProv);
00140    virtual void enumInstanceNames(
00141          const OpenWBEM::ProviderEnvironmentIFCRef& env,
00142          const OpenWBEM::String& ns,
00143          const OpenWBEM::String& className,
00144          OpenWBEM::CIMObjectPathResultHandlerIFC& result,
00145          const OpenWBEM::CIMClass& cimClass);
00146    virtual void enumInstances(
00147          const OpenWBEM::ProviderEnvironmentIFCRef& env,
00148          const OpenWBEM::String& ns,
00149          const OpenWBEM::String& className,
00150          OpenWBEM::CIMInstanceResultHandlerIFC& result,
00151          OpenWBEM::WBEMFlags::ELocalOnlyFlag localOnly, 
00152          OpenWBEM::WBEMFlags::EDeepFlag deep, 
00153          OpenWBEM::WBEMFlags::EIncludeQualifiersFlag includeQualifiers, 
00154          OpenWBEM::WBEMFlags::EIncludeClassOriginFlag includeClassOrigin,
00155          const OpenWBEM::StringArray* propertyList,
00156          const OpenWBEM::CIMClass& requestedClass,
00157          const OpenWBEM::CIMClass& cimClass);
00158    virtual OpenWBEM::CIMInstance getInstance(
00159          const OpenWBEM::ProviderEnvironmentIFCRef& env,
00160          const OpenWBEM::String& ns,
00161          const OpenWBEM::CIMObjectPath& instanceName,
00162          OpenWBEM::WBEMFlags::ELocalOnlyFlag localOnly,
00163          OpenWBEM::WBEMFlags::EIncludeQualifiersFlag includeQualifiers, 
00164          OpenWBEM::WBEMFlags::EIncludeClassOriginFlag includeClassOrigin,
00165          const OpenWBEM::StringArray* propertyList, 
00166          const OpenWBEM::CIMClass& cimClass);
00167 #ifndef OW_DISABLE_INSTANCE_MANIPULATION
00168    virtual OpenWBEM::CIMObjectPath createInstance(
00169          const OpenWBEM::ProviderEnvironmentIFCRef& env,
00170          const OpenWBEM::String& ns,
00171          const OpenWBEM::CIMInstance& cimInstance);
00172    virtual void modifyInstance(
00173          const OpenWBEM::ProviderEnvironmentIFCRef& env,
00174          const OpenWBEM::String& ns,
00175          const OpenWBEM::CIMInstance& modifiedInstance,
00176          const OpenWBEM::CIMInstance& previousInstance,
00177          OpenWBEM::WBEMFlags::EIncludeQualifiersFlag includeQualifiers,
00178          const OpenWBEM::StringArray* propertyList,
00179          const OpenWBEM::CIMClass& theClass);
00180    virtual void deleteInstance(
00181          const OpenWBEM::ProviderEnvironmentIFCRef& env,
00182          const OpenWBEM::String& ns,
00183          const OpenWBEM::CIMObjectPath& cop);
00184 #endif // #ifndef OW_DISABLE_INSTANCE_MANIPULATION
00185 private:
00186    BI1InstanceProviderIFCRef m_pProv;
00187 };
00188 
00189 class OWBI1_OWBI1PROVIFC_API BI1SecondaryInstanceProviderProxy : public OpenWBEM::SecondaryInstanceProviderIFC
00190 {
00191 public:
00192    BI1SecondaryInstanceProviderProxy(const BI1SecondaryInstanceProviderIFCRef& pProv);
00193    virtual void filterInstances(const OpenWBEM::ProviderEnvironmentIFCRef &env, const OpenWBEM::String &ns, const OpenWBEM::String &className, OpenWBEM::CIMInstanceArray &instances, OpenWBEM::WBEMFlags::ELocalOnlyFlag localOnly, OpenWBEM::WBEMFlags::EDeepFlag deep, OpenWBEM::WBEMFlags::EIncludeQualifiersFlag includeQualifiers, OpenWBEM::WBEMFlags::EIncludeClassOriginFlag includeClassOrigin, const OpenWBEM::StringArray *propertyList, const OpenWBEM::CIMClass &requestedClass, const OpenWBEM::CIMClass &cimClass);
00194 #ifndef OW_DISABLE_INSTANCE_MANIPULATION
00195    virtual void createInstance(const OpenWBEM::ProviderEnvironmentIFCRef &env, const OpenWBEM::String &ns, const OpenWBEM::CIMInstance &cimInstance);
00196    virtual void modifyInstance(const OpenWBEM::ProviderEnvironmentIFCRef &env, const OpenWBEM::String &ns, const OpenWBEM::CIMInstance &modifiedInstance, const OpenWBEM::CIMInstance &previousInstance, OpenWBEM::WBEMFlags:: EIncludeQualifiersFlag includeQualifiers, const OpenWBEM::StringArray *propertyList, const OpenWBEM::CIMClass &theClass);
00197    virtual void deleteInstance(const OpenWBEM::ProviderEnvironmentIFCRef &env, const OpenWBEM::String &ns, const OpenWBEM::CIMObjectPath &cop);
00198 #endif // #ifndef OW_DISABLE_INSTANCE_MANIPULATION
00199 private:
00200    BI1SecondaryInstanceProviderIFCRef m_pProv;
00201 };
00202 
00203 class OWBI1_OWBI1PROVIFC_API BI1MethodProviderProxy : public OpenWBEM::MethodProviderIFC
00204 {
00205 public:
00206    BI1MethodProviderProxy(const BI1MethodProviderIFCRef& pProv);
00207    virtual OpenWBEM::CIMValue invokeMethod(
00208          const OpenWBEM::ProviderEnvironmentIFCRef& env,
00209          const OpenWBEM::String& ns,
00210          const OpenWBEM::CIMObjectPath& path,
00211          const OpenWBEM::String& methodName,
00212          const OpenWBEM::CIMParamValueArray& in,
00213          OpenWBEM::CIMParamValueArray& out);
00214 private:
00215    BI1MethodProviderIFCRef m_pProv;
00216 };
00217 class OWBI1_OWBI1PROVIFC_API BI1IndicationExportProviderProxy : public OpenWBEM::IndicationExportProviderIFC
00218 {
00219 public:
00220    BI1IndicationExportProviderProxy(const BI1IndicationExportProviderIFCRef& pProv);
00221    ~BI1IndicationExportProviderProxy();
00222    virtual OpenWBEM::StringArray getHandlerClassNames();
00223    virtual void exportIndication(const OpenWBEM::ProviderEnvironmentIFCRef& env,
00224       const OpenWBEM::String& ns,
00225       const OpenWBEM::CIMInstance& indHandlerInst, const OpenWBEM::CIMInstance& indicationInst);
00226    virtual void doCooperativeCancel();
00227    virtual void doDefinitiveCancel();
00228 private:
00229    BI1IndicationExportProviderIFCRef m_pProv;
00230 };
00231 class OWBI1_OWBI1PROVIFC_API BI1PolledProviderProxy : public OpenWBEM::PolledProviderIFC
00232 {
00233 public:
00234    BI1PolledProviderProxy(const BI1PolledProviderIFCRef& pProv);
00235    ~BI1PolledProviderProxy();
00236    virtual OpenWBEM::Int32 poll(const OpenWBEM::ProviderEnvironmentIFCRef& env );
00237    virtual OpenWBEM::Int32 getInitialPollingInterval(const OpenWBEM::ProviderEnvironmentIFCRef& env );
00238    virtual void doCooperativeCancel();
00239    virtual void doDefinitiveCancel();
00240 private:
00241    BI1PolledProviderIFCRef m_pProv;
00242 };
00243 class OWBI1_OWBI1PROVIFC_API BI1IndicationProviderProxy : public OpenWBEM::IndicationProviderIFC
00244 {
00245 public:
00246    BI1IndicationProviderProxy(const BI1IndicationProviderIFCRef& pProv);
00247    ~BI1IndicationProviderProxy();
00248    virtual void deActivateFilter(
00249       const OpenWBEM::ProviderEnvironmentIFCRef &env, 
00250       const OpenWBEM::WQLSelectStatement &filter, 
00251       const OpenWBEM::String& eventType, 
00252       const OpenWBEM::String& nameSpace,
00253       const OpenWBEM::StringArray& classes);
00254    virtual void activateFilter(
00255       const OpenWBEM::ProviderEnvironmentIFCRef &env, 
00256       const OpenWBEM::WQLSelectStatement &filter, 
00257       const OpenWBEM::String& eventType, 
00258       const OpenWBEM::String& nameSpace,
00259       const OpenWBEM::StringArray& classes);
00260    virtual void authorizeFilter(
00261       const OpenWBEM::ProviderEnvironmentIFCRef &env, 
00262       const OpenWBEM::WQLSelectStatement &filter, 
00263       const OpenWBEM::String& eventType, 
00264       const OpenWBEM::String& nameSpace,
00265       const OpenWBEM::StringArray& classes, 
00266       const OpenWBEM::String &owner);
00267    virtual int mustPoll(
00268       const OpenWBEM::ProviderEnvironmentIFCRef& env,
00269       const OpenWBEM::WQLSelectStatement& filter, 
00270       const OpenWBEM::String& eventType, 
00271       const OpenWBEM::String& nameSpace,
00272       const OpenWBEM::StringArray& classes
00273       );
00274 private:
00275    BI1IndicationProviderIFCRef m_pProv;
00276    unsigned int m_activationCount;
00277 };
00278 
00279 } 
00280 
00281 #endif