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 >
Wrap
C/C++ Source or Header
|
1994-05-05
|
1KB
|
70 lines
/******************************************************************************
**
** C++ Class Library for the Amiga© system software.
**
** Copyright (C) 1994 by Armin Vogt ** EMail: armin@uni-paderborn.de
** All Rights Reserved.
**
** $Source: apphome:APlusPlus/RCS/libsource/MessageC.cxx,v $
** $Revision: 1.4 $
** $Date: 1994/05/05 22:09:47 $
** $Author: Armin_Vogt $
**
******************************************************************************/
#include <string.h>
#include <APlusPlus/exec/MessageC.h>
volatile static char rcs_id[] = "$Id: MessageC.cxx,v 1.4 1994/05/05 22:09:47 Armin_Vogt Exp Armin_Vogt $";
MessageC::MessageC()
{
memset(this,0,sizeof(*this));
signRemoved(); mn_Node.ln_Type = NT_FREEMSG;
}
MessageC::~MessageC()
{
mn_Node.ln_Type = NT_DEATHMESSAGE;
}
void MessageC::signRemoved()
{
mn_Node.ln_Succ = mn_Node.ln_Pred = (struct Node*)(struct Message*)this;
}
BOOL MessageC::isRemoved()
{
return ((NodeC*)this)->isLonelyNode();
}
MsgState MessageC::getMsgState()
{
switch (mn_Node.ln_Type)
{
case NT_MESSAGE :
if (isRemoved()) return MSG_IN_PROCESS; else return MSG_SENT;
break;
case NT_REPLYMSG :
if (isRemoved()) return MSG_FREE; else return MSG_REPLIED;
break;
}
return MSG_FREE;
}
BOOL MessageC::replyMsg()
{
if (getMsgState()&MSG_SENT)
{
ReplyMsg(this);
return TRUE;
}
else return FALSE;
}