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 STILSignalGroup_H 00014 #define STILSignalGroup_H 00015 00016 00017 #include "stilsignalblock.h" // STIL SignalBlock base class 00018 #include "stilsigrefexpr.h" // STIL sigref_expr class 00019 00020 //--------------------------------------------------------------------------- 00027 //--------------------------------------------------------------------------- 00028 class STILSignalGroup : public STILSignalBlock { 00029 00030 // - Global std::ostream << operator as friend to output STILSignalGroup object 00031 friend std::ostream& operator<<( std::ostream &os, const STILSignalGroup &); 00032 00033 // - Public members 00034 public: 00035 00036 // - Default Constructor 00037 STILSignalGroup(); 00038 00039 // - Copy Constructor 00040 STILSignalGroup(const STILSignalGroup &); 00041 00042 // - Destructor 00043 virtual ~STILSignalGroup(); 00044 00045 // - Assignment Operator 00046 STILSignalGroup & operator=(const STILSignalGroup &); 00047 00048 // - Initialize this STILSignalGroup object. 00049 void init(); 00050 00051 // - Write out this object to a given FILE 00052 virtual void write(FILE * pOutFile, LONG indentation=0) const; 00053 00054 00055 00056 // - Member functions to set/get a signal expression 00057 void setSigRefExpr(const STILSigRefExpr &) ; 00058 STILSigRefExpr * getSigRefExpr(); 00059 00060 // Private members 00061 private: 00062 00063 // Store as 00064 STILSigRefExpr m_sigRefExpr; 00065 00066 00067 }; // end STILSignalGroup class 00068 00069 00070 // Inline functions 00071 //-------------------------------------------------------------------------- 00079 //-------------------------------------------------------------------------- 00080 inline void STILSignalGroup::setSigRefExpr(const STILSigRefExpr & e) { 00081 m_sigRefExpr = e; 00082 } 00083 00084 //-------------------------------------------------------------------------- 00092 //-------------------------------------------------------------------------- 00093 inline STILSigRefExpr * STILSignalGroup::getSigRefExpr() { return &m_sigRefExpr; } 00094 00095 #endif