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_PROVIDERBASEIFC_HPP_
00036 #define OWBI1_PROVIDERBASEIFC_HPP_
00037 #include "OWBI1_config.h"
00038 #include "OWBI1_ProviderFwd.hpp"
00039 #include "OWBI1_DateTime.hpp"
00040 #include "OWBI1_IntrusiveCountableBase.hpp"
00041 
00042 namespace OWBI1
00043 {
00044 
00045 class BI1InstanceProviderIFC;
00046 class BI1SecondaryInstanceProviderIFC;
00047 class BI1MethodProviderIFC;
00048 class BI1AssociatorProviderIFC;
00049 class BI1IndicationExportProviderIFC;
00050 class BI1PolledProviderIFC;
00051 class BI1IndicationProviderIFC;
00067 class OWBI1_OWBI1PROVIFC_API BI1ProviderBaseIFC : public virtual IntrusiveCountableBase
00068 {
00069 public:
00070 
00071    BI1ProviderBaseIFC();
00072 
00073    BI1ProviderBaseIFC(const BI1ProviderBaseIFC& arg);
00074 
00075    virtual ~BI1ProviderBaseIFC();
00087    virtual void initialize(const ProviderEnvironmentIFCRef& env);
00088 
00094    virtual void shuttingDown(const ProviderEnvironmentIFCRef& env);
00095 
00102    virtual BI1InstanceProviderIFC* getInstanceProvider();
00103    virtual BI1SecondaryInstanceProviderIFC* getSecondaryInstanceProvider();
00104    virtual BI1MethodProviderIFC* getMethodProvider();
00105    virtual BI1AssociatorProviderIFC* getAssociatorProvider();
00106    virtual BI1IndicationExportProviderIFC* getIndicationExportProvider();
00107    virtual BI1PolledProviderIFC* getPolledProvider();
00108    virtual BI1IndicationProviderIFC* getIndicationProvider();
00109    DateTime getLastAccessTime() const;
00110    void updateAccessTime();
00111    
00112    virtual bool canUnload();
00113 
00114 private:
00115    DateTime m_dt;
00116 };
00117 
00118 
00119 } 
00120 
00121 
00122 #define OWBI1_PROVIDERFACTORY(prov, name) \
00123 extern "C" OWBI1_EXPORT OWBI1::BI1ProviderBaseIFC* \
00124 createProvider##name() \
00125 { \
00126    return new prov; \
00127 }
00128 
00129 #endif