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 #ifndef FIFOIMPL_H 00012 #define FIFOIMPL_H 00013 00014 #include "fifobase.h" 00015 #include <vector> 00016 00017 class rteFifo; 00018 00019 class FifoImpl : public FifoBase 00020 { 00021 public: 00022 FifoImpl(const IdBase& n); 00023 FifoImpl(const IdBase& n, unsigned int lo); 00024 FifoImpl(const IdBase& n, unsigned int lo, unsigned int hi); 00025 00026 unsigned int minSize() const; 00027 unsigned int maxSize() const; 00028 virtual unsigned int tokenSize() const = 0; 00029 00030 friend class rteFifo; 00031 unsigned int nrRteFifos() const; 00032 rteFifo* rte(unsigned int i=0) const; 00033 00034 private: 00035 unsigned int minSz; 00036 unsigned int maxSz; 00037 00038 protected: 00039 std::vector<rteFifo*> impl; 00040 }; 00041 00042 #endif