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 STILProcedures_H 00014 #define STILProcedures_H 00015 00016 #include <list> // STL Linked List Interface 00017 00018 #include "stilblock.h" // STIL Block Interface (base class) 00019 #include "stilprocedure.h" // STIL Procedure Interface 00020 00021 //--------------------------------------------------------------------------- 00027 //--------------------------------------------------------------------------- 00028 class STILProcedures : public STILBlock { 00029 00030 // - Public members 00031 public: 00032 00033 // - Default Constructor 00034 STILProcedures(); 00035 00036 // - Construct given some entity type 00037 STILProcedures(Type t); 00038 00039 // - Copy Constructor 00040 STILProcedures(const STILProcedures &); 00041 00042 // - Destructor 00043 virtual ~STILProcedures(); 00044 00045 // - Assignment operator 00046 STILProcedures & operator=(const STILProcedures &); 00047 00048 // - Initialize this STILProcedures 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 // - Add a new STILProcedure to this Procedures block 00056 void addProcedure(const STILProcedure &); 00057 00058 // Private section 00059 private: 00060 00061 // Private functions 00062 void updateEntityList(); 00063 00064 // Private members 00065 std::list<STILProcedure> m_procedureList; // List of procedure definitions 00066 00067 00068 }; // end STILProcedures class 00069 00070 #endif