home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 7 / FreshFishVol7.bin / bbs / gnu / aplusplus-1.01-src.lha / GNU / src / amiga / APlusPlus-1.01 / libsource / MessageC.cxx < prev    next >
C/C++ Source or Header  |  1994-05-05  |  1KB  |  70 lines

  1. /******************************************************************************
  2.  **
  3.  **    C++ Class Library for the Amiga© system software.
  4.  **
  5.  **    Copyright (C) 1994 by Armin Vogt  **  EMail: armin@uni-paderborn.de
  6.  **    All Rights Reserved.
  7.  **
  8.  **    $Source: apphome:APlusPlus/RCS/libsource/MessageC.cxx,v $
  9.  **    $Revision: 1.4 $
  10.  **    $Date: 1994/05/05 22:09:47 $
  11.  **    $Author: Armin_Vogt $
  12.  **
  13.  ******************************************************************************/
  14.  
  15.  
  16. #include <string.h>
  17. #include <APlusPlus/exec/MessageC.h>
  18.  
  19.  
  20. volatile static char rcs_id[] = "$Id: MessageC.cxx,v 1.4 1994/05/05 22:09:47 Armin_Vogt Exp Armin_Vogt $";
  21.  
  22.  
  23. MessageC::MessageC()
  24.     memset(this,0,sizeof(*this));
  25.     signRemoved(); mn_Node.ln_Type = NT_FREEMSG; 
  26. }
  27.  
  28. MessageC::~MessageC() 
  29.     mn_Node.ln_Type = NT_DEATHMESSAGE; 
  30. }
  31.  
  32. void MessageC::signRemoved()
  33.     mn_Node.ln_Succ = mn_Node.ln_Pred = (struct Node*)(struct Message*)this;
  34. }
  35.  
  36. BOOL MessageC::isRemoved() 
  37.     return ((NodeC*)this)->isLonelyNode(); 
  38. }
  39.  
  40. MsgState MessageC::getMsgState()
  41. {
  42.    switch (mn_Node.ln_Type)
  43.    {
  44.       case NT_MESSAGE :
  45.  
  46.          if (isRemoved()) return MSG_IN_PROCESS; else return MSG_SENT;
  47.          break;
  48.  
  49.       case NT_REPLYMSG :
  50.  
  51.          if (isRemoved()) return MSG_FREE; else return MSG_REPLIED;
  52.          break;
  53.    }
  54.    return MSG_FREE;
  55. }
  56.  
  57. BOOL MessageC::replyMsg() 
  58. {
  59.     if (getMsgState()&MSG_SENT) 
  60.     {
  61.         ReplyMsg(this);
  62.         return TRUE;
  63.     }
  64.     else return FALSE;
  65. }
  66.