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 #ifndef EVENTBROKERC_H
00027 #define EVENTBROKERC_H
00028
00029 #include "oaw/misc/stringc.h"
00030 #include "oaw/misc/arrayc.h"
00031 #include "oaw/pdtk/interfacec.h"
00032 #include "../oawconfig.h"
00033
00034 OAW_BEGIN_NAMESPACE
00035
00036 class DisViewC;
00037 class DisModelC;
00038 class InterfaceC;
00039
00040
00041 class OAW_DLLMAPPING EventBrokerC
00042 {
00043 public:
00044 typedef void callback(void*);
00045
00046 EventBrokerC();
00047 virtual ~EventBrokerC(){}
00048 long GetEventBrokerID(){return m_eventBrokerID;}
00049
00050 virtual int AssignInterface(const StringC&,InterfaceC*){return 0;}
00051 virtual void InitializationReady(){}
00052 virtual int ProcessEvents()=0;
00053 virtual void Quit();
00054
00055 virtual StringC GetInitData(){return m_initData;}
00056
00057 void SetUpdateCallbackFunc(callback* f){m_updateFunc = f;}
00058 void SetSwapCallbackFunc(callback* f){m_swapFunc = f;}
00059 void SetSleepCallbackFunc(callback* f){m_updateFunc = f;}
00060 void SetWakeCallbackFunc(callback* f){m_swapFunc = f;}
00061 void SetCallbackData(void* data){m_callbackData = data;}
00062
00063 protected:
00064 long m_eventBrokerID;
00065 bool m_bQuit;
00066
00067 StringC m_initData;
00068 short m_bFirstProcess;
00069
00070 callback* m_updateFunc;
00071 callback* m_swapFunc;
00072 callback* m_sleepFunc;
00073 callback* m_wakeFunc;
00074
00075 void* m_callbackData;
00076 };
00077
00078 OAW_END_NAMESPACE
00079
00080 #endif
00081
00082
00083
00084
00085
00086