![]() |
![]() |
00001 /***************************************************************************** 00002 * Copyright (C) 1997-2007, Mark Hummel 00003 * This file is part of Vrq. 00004 * 00005 * Vrq is free software; you can redistribute it and/or 00006 * modify it under the terms of the GNU General Public 00007 * License as published by the Free Software Foundation; either 00008 * version 2 of the License, or (at your option) any later version. 00009 * 00010 * Vrq is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 * General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU General Public 00016 * License along with this library; if not, write to the Free Software 00017 * Foundation, Inc., 51 Franklin Street, Fifth Floor, 00018 * Boston, MA 02110-1301 USA 00019 ***************************************************************************** 00020 */ 00021 /****************************************************************************** 00022 * 00023 * 00024 * cnet.hpp 00025 * - class definition of net 00026 * definition nodes 00027 * 00028 ****************************************************************************** 00029 */ 00030 00031 #ifndef CNET_HPP 00032 #define CNET_HPP 00033 00034 #include <stdio.h> 00035 #include "glue.h" 00036 #include "cdecl.h" 00037 #include "cnode.h" 00038 #include "cportdir.h" 00039 00040 00041 class CNode; 00042 00057 class CNet: public CDecl 00058 { 00059 private: 00060 CNode* delay; 00061 CPortDir* portdir; 00062 int scalared; 00063 int vectored; 00064 int undefined; 00065 StrengthPair_t strength; 00066 public: 00074 CNet( CSymbol* symbol, Coord_t* aLoc, Decl_t type, int undefined ); 00079 CNet( const CNet& net ); 00084 void PortDir( CPortDir* p ) { portdir = p; } 00089 CPortDir* PortDir() { return portdir; } 00094 void SetDelay( CNode* aExp ) { delay = aExp; } 00099 CNode* GetDelay( void ) { return delay; } 00104 int GetUndefined( void ) { return undefined; } 00109 void SetUndefined( int value ) { undefined = value; } 00114 StrengthPair_t GetStrength() { return strength; } 00119 void SetStrength( StrengthPair_t s ) { strength = s; } 00124 virtual void SetVectored( int v ) { vectored = v; } 00129 virtual int GetVectored() { return vectored; } 00134 virtual void SetScalared( int v ) { scalared = v; } 00139 virtual int GetScalared() { return scalared; } 00144 virtual void Dump( FILE* f ); 00149 virtual NodeType_t GetNodeType( void ) { return eB; } 00153 virtual void PreVisit1( int (*func)(CNode*,void*), void* data ); 00154 virtual void PostVisit1( void (*func)(CNode*, void*), void* data ); 00155 virtual void PostSubVisit1( CNode* (*func)(CNode*, void*), void* data ); 00159 }; 00160 00161 00162 #endif // CNET_HPP