00001 /*-------------------------------------------------------------------- 00002 * 00003 * (C) Copyright Koninklijke Philips Electronics NV 2006. 00004 * All rights reserved. This software is licensed under the terms of 00005 * version 2.1 of the GNU Lesser General Public License as published 00006 * by the Free Software Foundation. For licensing and warranty 00007 * information, see the file COPYING in the main directory. 00008 * 00009 *------------------------------------------------------------------*/ 00010 00011 #include <sys/types.h> 00012 #include "rtefifo.h" 00013 #include "fifoimpl.h" 00014 00015 rteFifo::rteFifo(FifoImpl& f) : 00016 base(&f) 00017 { 00018 base->impl.push_back(this); 00019 } 00020 00021 rteFifo::~rteFifo() 00022 { 00023 std::vector<rteFifo*>::iterator i; 00024 for(i = base->impl.begin(); *i != this; ++i) 00025 if (*i == this) 00026 break; 00027 if (*i == this) 00028 base->impl.erase(i); 00029 } 00030 00031 const FifoImpl* rteFifo::api() const 00032 { 00033 return base; 00034 } 00035 00036 const rteInPort* rteFifo::getDst() const 00037 { 00038 return in; 00039 } 00040 00041 const rteOutPort* rteFifo::getSrc() const 00042 { 00043 return out; 00044 }