00001 #ifndef __J2K__MsgThread_HPP__
00002 #define __J2K__MsgThread_HPP__
00003
00004 #include <j2k/Fred/QNX/Thread.hpp>
00005 #include <j2k/Fred/QNX/MsgData.hpp>
00006
00007
00008 #define MSG_BUFFER_MAX 1024
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 class MsgThread : public Thread
00021 {
00022 private:
00023 serial_t Serialization;
00024
00025 public:
00026 MsgThread() : Serialization( MSG_THREAD_SERIAL ) { }
00027
00028 virtual ~MsgThread() { MsgThread::Stop(); }
00029
00030
00031 virtual void Run();
00032
00033 virtual MsgData* SortMsg( MsgData* msg, MsgThread* mySelf, pid_t myPid ) = 0;
00034 virtual MsgData* Dispatch( MsgData* msg, MsgThread* mySelf, pid_t myPid ) = 0;
00035
00036
00037 virtual void* MsgDispatcher( void* msg, pid_t replyPid ) = 0;
00038
00039 void Stop();
00040
00041
00042 void SendMsg( void* incomming, void* reply );
00043 };
00044
00045 #endif