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

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

Go to the documentation of this file.
00001 #ifndef __J2K__Message_INL__
00002 #define __J2K__Message_INL__
00003 
00004 inline int Message::receive( int channel )
00005 {
00006   int rcvid = MsgReceive( channel, &msg, sizeof( msg ), NULL );
00007   return rcvid;
00008 }
00009 
00010 inline int Message::isIO()
00011 {
00012   return ( msg.hdr.type >= _IO_BASE  &&  msg.hdr.type <= _IO_MAX );
00013 }
00014 
00015 inline void Message::reply( int rcvid )
00016 {
00017   MsgReply( rcvid, EOK, &msg, sizeof( msg ) );
00018 }
00019 
00020 inline void Message::reply( int rcvid, int number, int state = EOK )
00021 {
00022   msg.number = number;
00023   MsgReply( rcvid, state, &msg, sizeof( msg ) );
00024 }
00025 
00026 inline int Message::send( int fd, Message* replyMsg )
00027 {
00028   register int rc = MsgSend( fd, &msg, sizeof(msg), &replyMsg->msg, sizeof(msg) );
00029   return rc;
00030 }
00031 
00032 inline void Message::reset()
00033 {
00034   memset( &msg, 0, sizeof( fred_msg_data_t )  );
00035   msg.number  = -1;
00036 }
00037 
00038 inline void Message::copy( const Message* src )
00039 {
00040   memcpy( &msg, &src->msg, sizeof( fred_msg_data_t )  );
00041 }
00042 
00043 // Message functions:
00044 inline fred_msg_data_t  Message::getMessage()         { return msg;              }
00045 inline void*            Message::getMessageAddr()     { return (void*)&msg;      }
00046 inline size_t           Message::getMessageSize()     { return sizeof( msg_t );  }
00047 inline int              Message::getNumber()          { return msg.number;       }
00048 inline void             Message::setNumber( int nb )  { msg.number  = nb;        }
00049 inline int              Message::getRequest()         { return msg.request;      }
00050 inline void             Message::setRequest( int r )  { msg.request = r;         }
00051 inline int              Message::getStatus()          { return msg.status;       }
00052 inline void             Message::setStatus( int s )   { msg.status  = s;         }
00053 inline int              Message::getIndex()           { return msg.index;        }
00054 inline void             Message::setIndex( int i )    { msg.index   = i;         }
00055 inline void*            Message::getData()            { return msg.data;         }
00056 inline void             Message::setData( void* ptr ) { msg.data    = ptr;       }
00057 inline pthread_t        Message::getPThread()         { return msg.pid;          }
00058 inline void             Message::setPThread( pthread_t tid ) {  msg.pid = tid;   }
00059 
00060 // Header functions:
00061 inline msg_header_t     Message::getHeader()          { return msg.hdr;          }
00062 inline int              Message::getHeaderCode()      { return msg.hdr.code;     }
00063 inline int              Message::getHeaderScoid()     { return msg.hdr.scoid;    }
00064 
00065 // Query recognition:
00066 inline BOOL  Message::isStatus()       { return ( ( msg.status & MQI_STATUS       ) == MQI_STATUS       ); }
00067 inline BOOL  Message::isGet()          { return ( ( msg.status & MQI_GET          ) == MQI_GET          ); }
00068 inline BOOL  Message::isPut()          { return ( ( msg.status & MQI_PUT          ) == MQI_PUT          ); }
00069 inline BOOL  Message::isClear()        { return ( ( msg.status & MQI_CLEAR        ) == MQI_CLEAR        ); }
00070 inline BOOL  Message::isQuit()         { return ( ( msg.status & MQI_QUIT         ) == MQI_QUIT         ); }
00071 inline BOOL  Message::isAddConsumer()  { return ( ( msg.status & MQI_ADD_CONSUMER ) == MQI_ADD_CONSUMER ); }
00072 inline BOOL  Message::isAddProducer()  { return ( ( msg.status & MQI_ADD_PRODUCER ) == MQI_ADD_PRODUCER ); }
00073 inline BOOL  Message::isExpired()      { return ( ( msg.status & MQI_IS_EXPIRED   ) == MQI_IS_EXPIRED   ); }
00074 inline BOOL  Message::isEmpty()        { return ( ( msg.status & MQI_IS_EMPTY     ) == MQI_IS_EMPTY     ); }
00075 inline BOOL  Message::isFull()         { return ( ( msg.status & MQI_IS_FULL      ) == MQI_IS_FULL      ); }
00076 inline BOOL  Message::isExist()        { return ( ( msg.status & MQI_EXIST        ) == MQI_EXIST        ); }
00077 inline BOOL  Message::isSuicide()      { return ( ( msg.status & MQI_SUICIDE      ) == MQI_SUICIDE      ); }
00078 inline BOOL  Message::isTimeout()      { return ( ( msg.status & MQI_TIMEOUT      ) == MQI_TIMEOUT      ); }
00079 inline BOOL  Message::isConsumer()     { return ( ( msg.status & MQI_CONSUMER     ) == MQI_CONSUMER     ); }
00080 inline BOOL  Message::isProducer()     { return ( ( msg.status & MQI_PRODUCER     ) == MQI_PRODUCER     ); }
00081 
00082 #endif // End of Meesage.inl

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