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 STILSignals_H 00014 #define STILSignals_H 00015 00016 #include <list> // STL Linked List Interface 00017 00018 #include "stilblock.h" // STIL Block Interface (base class) 00019 #include "stilsignal.h" // STIL Signal Interface 00020 00021 //--------------------------------------------------------------------------- 00027 //--------------------------------------------------------------------------- 00028 class STILSignals : public STILBlock { 00029 00030 // - Public members 00031 public: 00032 00033 // - Default Constructor 00034 STILSignals(); 00035 00036 // - Copy Constructor 00037 STILSignals(const STILSignals &); 00038 00039 // - Destructor 00040 virtual ~STILSignals(); 00041 00042 // - Assignment operator 00043 STILSignals & operator=(const STILSignals &); 00044 00045 // - Initialize this STILSignals object. 00046 void init(); 00047 00048 // - Write out this object to a given FILE 00049 virtual void write(FILE * pOutFile, LONG indentation=0) const; 00050 00051 // - Add a Signal to this object. 00052 void addSignal(STILSignal &); 00053 00054 // - Get the total count of signals (including one for each array index) 00055 LONG getCount() const; 00056 00057 // Private members 00058 private: 00059 00060 LONG m_count; // total count of signals including 00061 // one for each signal array index 00062 00063 std::list<STILSignal> m_signalList; // list of Signal objects 00064 00065 }; // end STILSignals class 00066 00067 // Inline functions 00068 //-------------------------------------------------------------------------- 00076 //-------------------------------------------------------------------------- 00077 inline LONG STILSignals::getCount() const { return m_count; } 00078 00079 00080 #endif