00001 #ifndef EDDDATASOURCE_H
00002 #define EDDDATASOURCE_H
00003 
00004 #define EDDMSG_ERROR     -2
00005 #define EDDMSG_UNHANDLED -1
00006 #define EDDMSG_OK        0
00007 
00008 #include <proto/EDDMsgHdr.h>
00009 
00010 #ifndef EDD_EXPORT
00011 #define EDD_EXPORT
00012 #endif
00013 
00024 class EDD_EXPORT tcEDDDataSource
00025 {
00026 public: 
00027     tcEDDDataSource(void);
00028     virtual ~tcEDDDataSource(void);
00029     
00030     void RegisterWithMsgLoop(void);
00031     void UnRegisterWithMsgLoop(void);
00032     
00033     void SendSourceDescMsg(char** apFields, char** apItems, int NumItems);
00034     
00035     void BuildHeader(tsEDDMsgHdr* apMsgHdr, uint16_t MsgID, uint16_t len);
00036 
00037         bool IsSubscribed(void);
00038     
00047     virtual int HandleMsg(tsEDDMsgHdr* apMsg) = 0;
00048 
00049     uint32_t mnBytesSent;  
00050     
00051 protected:
00052           int     mnSourceId;  
00053 };
00054 #endif