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 STILPatList_H 00014 #define STILPatList_H 00015 00016 #include "stilcom.h" // Common 00017 #include "stilcomstr.h" 00018 #include <list> // STL doubly linked list class 00019 00020 #include "stilpatternburstblock.h" 00021 00022 00023 //--------------------------------------------------------------------------- 00030 //--------------------------------------------------------------------------- 00031 class STILPatList : public STILBlock { 00032 00033 // - Global std::ostream << operator as friend to output STILPatList object 00034 friend std::ostream& operator<<( std::ostream &os, const STILPatList &); 00035 00036 public: 00037 00038 // - Default Constructor 00039 STILPatList(); 00040 00041 // - Copy Constructor 00042 STILPatList(const STILPatList &); 00043 00044 // - Destructor which frees storage associated to a STILPatList object 00045 virtual ~STILPatList(); 00046 00047 // - Assignment operator 00048 STILPatList & operator=(const STILPatList &); 00049 00050 // - Member function to update Entity list pointers to link list nodes 00051 void updateEntityList(); 00052 00053 // - Member function to initialize a PatList object 00054 void init(); 00055 00056 // - Member function to write the PatList block 00057 virtual void write(FILE * pOutFile, LONG indentation=0) const; 00058 00059 00060 // - Member function to add a PatternBurstBlock 00061 void addBlock(const STILPatternBurstBlock& block); 00062 00063 // - Member function to see if a name specified matches any PatternBurstBlock name 00064 bool locate_inPatList(const sstring& name) const; 00065 00066 private: 00067 00068 // A list of PatList items (Pattern or PatternBurst references) 00069 std::list<STILPatternBurstBlock> m_patListList; 00070 00071 }; // end STILPatList class 00072 00073 00074 #endif 00075