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 STILMacroDefs_H 00014 #define STILMacroDefs_H 00015 00016 #include <list> // STL Linked List Interface 00017 00018 #include "stilblock.h" // STIL Block Interface (base class) 00019 #include "stilmacrodef.h" // STIL MacroDef Interface 00020 00021 //--------------------------------------------------------------------------- 00028 //--------------------------------------------------------------------------- 00029 class STILMacroDefs : public STILBlock { 00030 00031 // - Public members 00032 public: 00033 00034 // - Default Constructor 00035 STILMacroDefs(); 00036 00037 // - Construct given some entity type 00038 STILMacroDefs(Type t); 00039 00040 // - Copy Constructor 00041 STILMacroDefs(const STILMacroDefs &); 00042 00043 // - Destructor 00044 virtual ~STILMacroDefs(); 00045 00046 // - Assignment operator 00047 STILMacroDefs & operator=(const STILMacroDefs &); 00048 00049 // - Initialize this STILMacroDefs object. 00050 void init(); 00051 00052 // - Write out this object to a given FILE 00053 virtual void write(FILE * pOutFile, LONG indentation=0) const; 00054 00055 00056 // - Add a new STILMacroDef to this MacroDefs block 00057 void addMacroDef(const STILMacroDef &); 00058 00059 // Private section 00060 private: 00061 00062 // Private functions 00063 void updateEntityList(); 00064 00065 // Private members 00066 std::list<STILMacroDef> m_macroDefList; // List of macrodef definitions 00067 00068 00069 }; // end STILMacroDefs class 00070 00071 #endif