00001 /** 00002 * @file Platform/Aperios1.3.2/Receiver.cpp 00003 * This file implements classes related to receivers for Aperios. 00004 */ 00005 #include "ProcessFramework.h" 00006 00007 ReceiverList::ReceiverList(PlatformProcess* p,const char* receiverName,bool blocking) 00008 { 00009 process = p; 00010 // copy the receiver's name. The name of the process is still missing. 00011 strcpy(this->name,receiverName); 00012 if(getFirst()) 00013 { 00014 ReceiverList* p = getFirst(); 00015 while(p->next) 00016 p = p->next; 00017 p->next = this; 00018 } 00019 else 00020 getFirst() = this; 00021 next = 0; 00022 this->blocking = blocking; 00023 } 00024 00025 ReceiverList*& ReceiverList::getFirst() 00026 { 00027 return process->getFirstReceiver(); 00028 } 00029 00030 bool ReceiverList::receivedNew() const 00031 { 00032 return (ProcessBase::getEventMask() & 1 << eventId) != 0; 00033 } 00034 00035 void ReceiverList::finishFrame() 00036 { 00037 for(ReceiverList* p = getFirst(); p; p = p->getNext()) 00038 { 00039 ProcessBase::setBlockingId(p->eventId,p->blocking); 00040 if(p->receivedNew()) 00041 p->AssertReady(); 00042 } 00043 } 00044 00045 void ReceiverList::setBlockingId(int id,bool block) 00046 { 00047 ProcessBase::setBlockingId(id,block); 00048 } 00049 00050 void ReceiverList::setEventId(int id) 00051 { 00052 ProcessBase::setEventId(id); 00053 } 00054 00055 /* 00056 * Change log : 00057 * 00058 * $Log: Receiver.cpp,v $ 00059 * Revision 1.1.1.1 2004/05/22 17:23:28 cvsadm 00060 * created new repository GT2004_WM 00061 * 00062 * Revision 1.1 2003/10/07 10:06:59 cvsadm 00063 * Created GT2004 (M.J.) 00064 * 00065 * Revision 1.1.1.1 2003/07/02 09:40:24 cvsadm 00066 * created new repository for the competitions in Padova from the 00067 * tamara CVS (Tuesday 2:00 pm) 00068 * 00069 * removed unused solutions 00070 * 00071 * Revision 1.2 2002/12/02 11:00:13 dueffert 00072 * doxygen docu corrected 00073 * 00074 * Revision 1.1 2002/09/10 15:40:04 cvsadm 00075 * Created new project GT2003 (M.L.) 00076 * - Cleaned up the /Src/DataTypes directory 00077 * - Removed challenge related source code 00078 * - Removed processing of incoming audio data 00079 * - Renamed AcousticMessage to SoundRequest 00080 * 00081 * Revision 1.2 2002/07/06 15:28:28 roefer 00082 * Prologue function removed 00083 * 00084 * Revision 1.1.1.1 2002/05/10 12:40:18 cvsadm 00085 * Moved GT2002 Project from ute to tamara. 00086 * 00087 * Revision 1.4 2001/12/15 20:32:08 roefer 00088 * Senders and receivers are now part of the processes 00089 * 00090 * Revision 1.3 2001/12/12 14:06:17 roefer 00091 * Fixed blocking sender 00092 * 00093 * Revision 1.2 2001/12/10 17:47:08 risler 00094 * change log added 00095 * 00096 */