00001 #ifndef __J2K__Message_CPP__
00002 #define __J2K__Message_CPP__
00003
00004 #include <j2k/nto/Message.hpp>
00005
00006 Message::Message( int number0 = 0, int request0 = 0, int status0 = 0, int index0 = 0, void* data0 = NULL )
00007 {
00008 memset( &msg, 0, sizeof( fred_msg_data_t ) );
00009 msg.number = number0;
00010 msg.request = request0;
00011 msg.index = index0;
00012 msg.status = status0;
00013 msg.data = data0;
00014 }
00015
00016 Message::Message( const Message& src )
00017 {
00018 memcpy( &msg, &src.msg, sizeof( fred_msg_data_t ) );
00019 }
00020
00021 const Message& Message::operator=( const Message& src )
00022 {
00023 memcpy( &msg, &src.msg, sizeof( fred_msg_data_t ) );
00024 return *this;
00025 }
00026
00027 Message::~Message()
00028 {
00029 }
00030
00031 void Message::handleHeader()
00032 {
00033 switch( msg.hdr.code )
00034 {
00035 case _PULSE_CODE_DISCONNECT:
00036
00037
00038
00039
00040
00041 ConnectDetach(msg.hdr.scoid);
00042 break;
00043
00044 case _PULSE_CODE_UNBLOCK:
00045
00046
00047
00048
00049
00050 break;
00051
00052 default:
00053
00054
00055
00056
00057
00058 break;
00059 }
00060 }
00061
00062 int Message::checkHeader( int rcvid )
00063 {
00064 if ( rcvid == 0 )
00065 {
00066 handleHeader();
00067 return 1;
00068 }
00069
00070
00071 if ( isIO() )
00072 {
00073 MsgError( rcvid, ENOSYS );
00074 return 1;
00075 }
00076
00077 return 0;
00078 }
00079
00080 #endif // End of Meesage.cpp