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