00001 #ifndef __CMWFWDEVICEADAPTER_H__
00002 #define __CMWFWDEVICEADAPTER_H__
00003 #include "cmwfwTypes.h"
00004
00005
00006 class cmwfwDeviceAdapter{
00007 public:
00008
00009 friend class cmwfwPoller;
00010 friend class cmwfwForwarder;
00011 friend class cmwfwDeviceServer;
00012 friend int main(int argc, char** argv);
00013
00014 cmwfwDeviceAdapter();
00015 virtual ~cmwfwDeviceAdapter();
00016
00017 protected:
00018 virtual void init() = 0;
00019 virtual void terminate() = 0;
00020 virtual void monitorOn(const cmwfwIOPoint& iop) = 0;
00021 virtual void monitorOff(const cmwfwIOPoint& iop) = 0;
00022 virtual cmwfwData* get(const cmwfwIOPoint& iop,
00023 const cmwfwData& ctx) = 0;
00024 virtual void set(const cmwfwIOPoint& iop,
00025 const cmwfwData& ctx,
00026 const cmwfwData& value) = 0;
00027 virtual cmwfwPoller* getPoller(const cmwfwIOPoint& iop) = 0;
00028 virtual cmwfwForwarder* getForwarder(const cmwfwIOPoint& iop) = 0;
00029 virtual void poll(const cmwfwIOPoint& iop,
00030 cmwfwData& data_to_fill,
00031 cmwfwValueQualifier& vq_to_set) = 0;
00032 char* generateIOPString(const cmwfwIOPoint& iop);
00033
00034 private:
00035 cmwfwData* cmwfw_get(const cmwfwIOPoint& iop,
00036 const cmwfwData& ctx);
00037 void cmwfw_poll(const cmwfwIOPoint& iop,
00038 cmwfwData& value_to_fill,
00039 cmwfwValueQualifier& vq_to_set);
00040 void heaperr(int line);
00041 };
00042
00043
00044 #endif // __CMWFWDEVICEADAPTER_H__