Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

Platform/Aperios1.3.2/Receiver.cpp

Go to the documentation of this file.
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  */

Generated on Thu Sep 23 19:57:34 2004 for GT2004 by doxygen 1.3.6