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 00014 #ifndef STILWaveformEval_H 00015 #define STILWaveformEval_H 00016 00017 #include "stilcomstr.h" 00018 #include "stilvectorevent.h" 00019 #include "stilwaveform.h" 00020 00021 #include <map> 00022 00023 //-------------------------------------------------------------------------- 00059 //--------------------------------------------------------------------------- 00060 class STILWaveformEval { 00061 00062 public: 00063 STILWaveformEval(); 00064 00065 // - Construct a WaveformEvaluator from an array of SignalIDs and their 00066 // - corresponding Waveform's 00067 STILWaveformEval(const LONG, const STILWaveform*); 00068 00069 // copy ctor 00070 STILWaveformEval(const STILWaveformEval&); 00071 00072 // - Destructor 00073 ~STILWaveformEval(); 00074 00075 // - The assignment operator 00076 STILWaveformEval & operator=(const STILWaveformEval&); 00077 00078 // - Return a VectorEvent for a given SignalID and WFC 00079 const STILVectorEvent& getVectorEvent(const LONG id, const char wfc, bool audit = true); 00080 00081 // - Print out the map (debug purposes) 00082 void print(); 00083 00084 private: 00085 00086 // A 2-dimensional array: This is (#signals deep) x (256 chars wide) list of 00087 // VectorEvents. 00088 // If a WFC is defined for a given signal, there will be a pointer at that 00089 // character position in the 256 char wide array to the defined WFC vectorevent. 00090 STILVectorEvent ** m_ppWFCSMap; 00091 LONG m_sigCnt; // The # signals (saved for speed) 00092 00093 }; 00094 00095 #endif