Main Page   Packages   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

C:/temp/src/j2k/nto/Message.cpp

Go to the documentation of this file.
00001 #ifndef __J2K__Message_CPP__
00002 #define __J2K__Message_CPP__
00003 
00004 #include <j2k/nto/Message.hpp>   
00005 
00006 Message::Message( int number0 = -1, 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 // Normal handling of message
00032 void Message::handleHeader()
00033 {
00034    switch( msg.hdr.code ) 
00035    {
00036       case _PULSE_CODE_DISCONNECT:
00037         /*
00038          * A client disconnected all its connections (called
00039          * name_close() for each name_open() of our name) or
00040          * terminated
00041          */
00042         ConnectDetach(msg.hdr.scoid);
00043       break;
00044 
00045       case _PULSE_CODE_UNBLOCK:
00046         /*
00047          * REPLY blocked client wants to unblock (was hit by
00048          * a signal or timed out).  It's up to you if you
00049          * reply now or later.
00050          */
00051       break;
00052 
00053       default:
00054         /*
00055          * A pulse sent by one of your processes or a
00056          * _PULSE_CODE_COIDDEATH or _PULSE_CODE_THREADDEATH 
00057          * from the kernel?
00058          */
00059        break;
00060    }
00061 }
00062 
00063 // Check for Kernel message
00064 int Message::checkHeader( int rcvid )
00065 {
00066   if ( rcvid == 0 )  /* Pulse received */
00067   {
00068     handleHeader();
00069     return 1;
00070   }
00071 
00072   /* A QNX IO message received, reject */
00073   if (  isIO()  ) 
00074   {
00075     MsgError( rcvid, ENOSYS );
00076     return 1;
00077   }
00078 
00079   return 0;
00080 }
00081 
00082 #endif // End of Meesage.cpp

Generated on Sun Oct 14 18:46:35 2001 for Standard J2K Library by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001