00001 /******************************************************************************* 00002 * Copyright (c) 2006 International Business Machines Corporation 00003 * All rights reserved. This program and the accompanying materials 00004 * are made available under the terms of the Common Public License v1.0 00005 * which accompanies this distribution, and is available at 00006 * http://www.opensource.org/licenses/cpl1.0.php 00007 * 00008 * Contributors: 00009 * Douglas Sprague, Joel Wheeler - initial API and implementation 00010 * 00011 *****************************************************************************/ 00012 00013 #ifndef STILWaveform_H 00014 #define STILWaveform_H 00015 00016 00017 #include "stilcom.h" // Common library 00018 #include "stilblock.h" 00019 #include "stiltimingwaveformref.h" 00020 #include "stilwaveformitem.h" 00021 #include "stilsigrefexpr.h" 00022 00023 #include <list> 00024 00025 //--------------------------------------------------------------------------- 00031 //--------------------------------------------------------------------------- 00032 class STILWaveform : public STILBlock { 00033 00034 // - Public members 00035 public: 00036 // - Default constructor 00037 STILWaveform(); 00038 00039 // - Copy Constructor 00040 STILWaveform(const STILWaveform &); 00041 00042 // - Destructor 00043 virtual ~STILWaveform(); 00044 00045 // - Assignment operator 00046 STILWaveform & operator=(const STILWaveform &); 00047 00048 // - Initialize/reset this object 00049 void init(); 00050 00051 // - Write this object out to a file 00052 virtual void write(FILE * pOutFile, LONG indentation=0) const; 00053 00054 00055 // - Get/Set this objects SigRefExpr 00056 void setSigRefExpr(const STILSigRefExpr&); 00057 const STILSigRefExpr* getSigRefExpr(); 00058 00059 // - Add an inheritwaveform to this object 00060 void addInheritWaveform(const STILTimingWaveformRef &); 00061 00062 // - Add a waveformitem to this object 00063 void addWaveformItem(const STILWaveformItem &); 00064 00065 00066 // - Private members 00067 private: 00068 // Member function to update entity list when copying 00069 void updateEntityList(); 00070 00071 // Signal Reference Expression 00072 STILSigRefExpr m_sigRefExpr; 00073 00074 // Reference to inherited waveform table 00075 std::list<STILTimingWaveformRef> m_inhWFTList; 00076 00077 // List of waveform items 00078 std::list<STILWaveformItem> m_WIList; 00079 00080 }; 00081 00082 //-------------------------------------------------------------------------- 00090 //------------------------------------------------------------------------- 00091 inline const STILSigRefExpr* STILWaveform::getSigRefExpr() { return &m_sigRefExpr; } 00092 00093 #endif