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__