OWBI1_ProxyProvider.hpp

Go to the documentation of this file.
00001 /*******************************************************************************
00002 * Copyright (C) 2001-2004 Vintela, Inc. All rights reserved.
00003 *
00004 * Redistribution and use in source and binary forms, with or without
00005 * modification, are permitted provided that the following conditions are met:
00006 *
00007 *  - Redistributions of source code must retain the above copyright notice,
00008 *    this list of conditions and the following disclaimer.
00009 *
00010 *  - Redistributions in binary form must reproduce the above copyright notice,
00011 *    this list of conditions and the following disclaimer in the documentation
00012 *    and/or other materials provided with the distribution.
00013 *
00014 *  - Neither the name of Vintela, Inc. nor the names of its
00015 *    contributors may be used to endorse or promote products derived from this
00016 *    software without specific prior written permission.
00017 *
00018 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
00019 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00020 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00021 * ARE DISCLAIMED. IN NO EVENT SHALL Vintela, Inc. OR THE CONTRIBUTORS
00022 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
00023 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
00024 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
00025 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
00026 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
00027 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00028 * POSSIBILITY OF SUCH DAMAGE.
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 #include "OW_TempFileStream.hpp"
00062 #include "OW_BinarySerialization.hpp"
00063 #include "OWBI1_CIMInstance.hpp"
00064 #include "OWBI1_WQLSelectStatement.hpp"
00065 #include "OW_ResultHandlerIFC.hpp"
00066 #include "OWBI1_ResultHandlerIFC.hpp"
00067 */
00068 
00069 // The classes and functions defined in this file are not meant for general
00070 // use, they are internal implementation details.  They may change at any time.
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 } // end namespace OWBI1
00280 
00281 #endif

Generated on Thu Feb 9 08:48:28 2006 for openwbem by  doxygen 1.4.6