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