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 STILPatternExec_H 00014 #define STILPatternExec_H 00015 00016 #include "stilcom.h" // Common 00017 #include "stilcomstr.h" 00018 #include "stilblock.h" // STIL Block common base class 00019 00020 00021 //--------------------------------------------------------------------------- 00032 //--------------------------------------------------------------------------- 00033 class STILPatternExec : public STILBlock { 00034 00035 // - Global std::ostream << operator as friend to output STILPatternExec object 00036 friend std::ostream& operator<<( std::ostream &os, const STILPatternExec &); 00037 00038 public: 00039 00040 // - Default Constructor 00041 STILPatternExec(); 00042 00043 // - Copy Constructor 00044 STILPatternExec(const STILPatternExec &); 00045 00046 // - Destructor which frees storage associated to a STILPatternExec object 00047 virtual ~STILPatternExec(); 00048 00049 // - Assignment operator 00050 STILPatternExec & operator=(const STILPatternExec &); 00051 00052 // - Member function to initialize an object 00053 void init(); 00054 00055 // - Member function to write the object 00056 virtual void write(FILE * pOutFile, LONG indentation=0) const; 00057 00058 00059 // - Member functions to add a Timing reference 00060 //Was setTiming_ref- remove '_ref' but still refer to enumtype TimingRef 00061 void setTiming(const sstring & t); 00062 00063 // - Member functions to add a PatternBurst reference 00064 //Was setPatternBurst_ref- remove '_ref' but still refer to enumtype PatternBurstRef 00065 void setPatternBurst(const sstring & p); 00066 00067 // - Member functions to add a Category reference 00068 //Was setCategory_ref- remove '_ref' but still refer to enumtype CategoryRef 00069 void addCategory(const sstring & c); 00070 00071 // - Member functions to add a Selector reference 00072 //Was setSelector_ref- remove '_ref' but still refer to enumtype SelectorRef 00073 void addSelector(const sstring & s); 00074 00075 // - Member functions to determine if a PatternBurst is referenced 00076 bool referencesPatternBurst(const sstring & pb) const; 00077 00078 private: 00079 00080 //********************************************************************** 00081 //********************************************************************** 00082 // Note: all data elements are inherited from STILBlock * 00083 //********************************************************************** 00084 //********************************************************************** 00085 00086 }; // end STILPatternExec class 00087 00088 //-------------------------------------------------------------------------- 00096 //-------------------------------------------------------------------------- 00097 inline void STILPatternExec::setTiming(const sstring & t) { 00098 addEntity(TimingRef,"Timing",t); 00099 } 00100 00101 //-------------------------------------------------------------------------- 00109 //-------------------------------------------------------------------------- 00110 inline void STILPatternExec::setPatternBurst(const sstring & b) { 00111 addEntity(PatternBurstRef,"PatternBurst",b); 00112 } 00113 00114 //-------------------------------------------------------------------------- 00122 //-------------------------------------------------------------------------- 00123 inline void STILPatternExec::addCategory(const sstring & c) { 00124 addEntity(CategoryRef,"Category",c); 00125 } 00126 00127 //-------------------------------------------------------------------------- 00135 //-------------------------------------------------------------------------- 00136 inline void STILPatternExec::addSelector(const sstring & s) { 00137 addEntity(SelectorRef,"Selector",s); 00138 } 00139 00140 #endif 00141