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 STILTiming_H 00014 #define STILTiming_H 00015 00016 #include "stilcom.h" // Common 00017 #include "stilcomstr.h" 00018 #include "stilblock.h" // STIL Block common base class 00019 #include "stilwaveformtable.h" // STILWaveformTable class 00020 00021 //--------------------------------------------------------------------------- 00031 //--------------------------------------------------------------------------- 00032 class STILTiming : public STILBlock { 00033 00034 // - Global std::ostream << operator as friend to output STILTiming object 00035 friend std::ostream& operator<<( std::ostream &os, const STILTiming &); 00036 00037 public: 00038 00039 // - Default Constructor 00040 STILTiming(); 00041 00042 // - Copy Constructor 00043 STILTiming(const STILTiming &); 00044 00045 // - Destructor which frees storage associated to a STILTiming object 00046 virtual ~STILTiming(); 00047 00048 // - Assignment operator 00049 STILTiming & operator=(const STILTiming &); 00050 00051 // - Member function to initialize an object (default is global domain name) 00052 void init(const sstring& domain=""); 00053 00054 // - Member function to write the object 00055 virtual void write(FILE * pOutFile, LONG indentation=0) const; 00056 00057 00058 // - Add a WaveformTable object to the Timing definition 00059 void addWaveformTable (const STILWaveformTable &); 00060 00061 // - Add a SignalGroup reference to resolve group references 00062 void addSignalGroups(const sstring &); 00063 00064 private: 00065 // Copy entity ptrs after an object copy is done 00066 void updateEntityList(); 00067 00068 // list of WaveformTables 00069 std::list<STILWaveformTable> m_WFTList; 00070 00071 }; // end STILTiming class 00072 00074 //-------------------------------------------------------------------------- 00082 //-------------------------------------------------------------------------- 00083 inline void STILTiming::addSignalGroups(const sstring & name) { 00084 addEntity(SignalGroupsRef,"SignalGroups",name); 00085 } 00086 00087 00088 #endif 00089 00090