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 STILVectorItem_H 00014 #define STILVectorItem_H 00015 00016 #include "stilcomstr.h" 00017 00018 #include "stilblock.h" // STIL Block Interface (base class) 00019 #include "stilsigrefexpr.h" // STIL Signal Reference Expression Interface 00020 #include "stilwfcs.h" 00021 00022 00023 //--------------------------------------------------------------------------- 00029 //--------------------------------------------------------------------------- 00030 class STILVectorItem : public STILBlock { 00031 00032 // - Public members 00033 public: 00034 00035 // - Default Constructor 00036 STILVectorItem(); 00037 00038 // - Copy Constructor 00039 STILVectorItem(const STILVectorItem &); 00040 00041 // - Destructor 00042 virtual ~STILVectorItem(); 00043 00044 // - Assignment operator 00045 STILVectorItem & operator=(const STILVectorItem &); 00046 00047 // - Initialize this STILVectorItem object. 00048 void init(); 00049 00050 // - Write out this object to a given FILE 00051 virtual void write(FILE * pOutFile, LONG indentation=0) const; 00052 00053 00054 // - Set/Get the SigRefExpr attribute 00055 void setSigRefExpr(const STILSigRefExpr &); 00056 const STILSigRefExpr * getSigRefExpr() const ; 00057 00058 // - Set/Get the WFCS attribute 00059 void setWFCS(const STILWFCS &); 00060 const STILWFCS * getWFCS() const; 00061 00062 // ***************************************************************** 00063 // ************************** NOTE ********************************* 00064 // ***************************************************************** 00065 // Only support cyclized data initially. Eventually support 00066 // multi-bit and non-cyclized data 00067 // ***************************************************************** 00068 00069 // Private members 00070 private: 00071 00072 STILSigRefExpr m_sigRefExpr; // Signal Reference Expression 00073 STILWFCS m_WFCS; // Waveform Character String 00074 00075 00076 }; // end STILVectorItem class 00077 00078 00079 // Inline functions 00080 //-------------------------------------------------------------------------- 00088 //-------------------------------------------------------------------------- 00089 inline void STILVectorItem::setSigRefExpr(const STILSigRefExpr & sre) { 00090 m_sigRefExpr = sre; 00091 } 00092 00093 //-------------------------------------------------------------------------- 00101 //-------------------------------------------------------------------------- 00102 inline const STILSigRefExpr * STILVectorItem::getSigRefExpr() const { 00103 return &m_sigRefExpr; 00104 } 00105 00106 //-------------------------------------------------------------------------- 00114 //-------------------------------------------------------------------------- 00115 inline void STILVectorItem::setWFCS(const STILWFCS & w) { 00116 m_WFCS = w; 00117 } 00118 00119 //-------------------------------------------------------------------------- 00127 //-------------------------------------------------------------------------- 00128 inline const STILWFCS * STILVectorItem::getWFCS() const { 00129 return &m_WFCS; 00130 } 00131 00132 00133 #endif