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 UTILBASE_H 00012 #define UTILBASE_H 00013 00014 #include <vector> 00015 00016 class Component; 00017 class Connector; 00018 class InPortBase; 00019 class OutPortBase; 00020 class FifoBase; 00021 class ProcessBase; 00022 class NetworkBase; 00023 00024 typedef std::vector<const InPortBase*> InPortBases; 00025 typedef std::vector<const OutPortBase*> OutPortBases; 00026 00028 00029 Connector* getFarSrc(const Connector* c); 00030 Connector* getFarDst(const Connector* c); 00031 00032 // get fifo that is (indirectly) connected to this port 00033 FifoBase* getFarFifo(const InPortBase* p); 00034 FifoBase* getFarFifo(const OutPortBase* p); 00035 00036 // get process port that reads/wites fifo f 00037 InPortBase* getFarInPort(const FifoBase* f); 00038 OutPortBase* getFarOutPort(const FifoBase* f); 00039 void getFarInPorts(const FifoBase* f, InPortBases&); 00040 void getFarOutPorts(const FifoBase* f, OutPortBases&); 00041 00042 InPortBase* getFarInPort(const InPortBase* p); 00043 OutPortBase* getFarOutPort(const OutPortBase* p); 00044 void getFarInPorts(const InPortBase* p, InPortBases&); 00045 void getFarOutPorts(const OutPortBase* p, OutPortBases&); 00046 00048 00049 InPortBase* findInPort(const Component* c, const char* name); 00050 OutPortBase* findOutPort(const Component* c, const char* name); 00051 00052 FifoBase* findFifo(const NetworkBase* n, const char* name); 00053 ProcessBase* findProcess(const NetworkBase* n, const char* name); 00054 NetworkBase* findNetwork(const NetworkBase* n, const char* name); 00055 00056 00057 #endif