00001 #ifndef __J2K__Message_HPP__
00002 #define __J2K__Message_HPP__
00003
00004 #include <j2k/Fred/Standard.hpp>
00005 #include <sys/dispatch.h>
00006
00007 #ifndef __FRED_MSG_DATA_T__
00008 #define __FRED_MSG_DATA_T__
00009
00010
00011 typedef struct _pulse msg_header_t;
00012
00013
00014 typedef struct _fred_msg_data_t
00015 {
00016 msg_header_t hdr;
00017 int number;
00018 } fred_msg_data_t;
00019
00020 #endif // __FRED_MSG_DATA_T__
00021
00022 class Message
00023 {
00024 protected:
00025 fred_msg_data_t msg;
00026
00027 public:
00028 Message( int number0 = 0 );
00029 Message( const Message& src );
00030
00031 const Message& operator= ( const Message& src );
00032 virtual ~Message();
00033
00034 int handleHeader( int rcvid );
00035
00036
00037 inline fred_msg_data_t getMessage() { return msg; }
00038 inline void* getMessageAddr() { return (void*)&msg; }
00039 inline size_t getMessageSize() { return sizeof(msg_t); }
00040 inline int getMessageNumber() { return msg.number; }
00041
00042 inline void setMessageNumber( int nb ) { msg.number = nb; }
00043
00044
00045 inline msg_header_t getHeader() { return msg.hdr; }
00046 inline int getHeaderCode() { return msg.hdr.code; }
00047 inline int getHeaderScoid() { return msg.hdr.scoid; }
00048 };
00049
00050 #endif // End of Message.hpp