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 STILScanStructures_H 00014 #define STILScanStructures_H 00015 00016 #include "stilcom.h" // Common 00017 #include "stilcomstr.h" 00018 #include "stilblock.h" // STIL Block common base class 00019 #include "stilscanchain.h" // STIL ScanStructure class 00020 00021 #include <list> // STL doubly linked list class 00022 00023 00024 //--------------------------------------------------------------------------- 00034 //--------------------------------------------------------------------------- 00035 class STILScanStructures : public STILBlock { 00036 00037 // - Global std::ostream << operator as friend to output STILScanStructures object 00038 friend std::ostream& operator<<( std::ostream &os, const STILScanStructures &); 00039 00040 public: 00041 00042 // - Default Constructor 00043 STILScanStructures(); 00044 00045 // - Copy Constructor 00046 STILScanStructures(const STILScanStructures &); 00047 00048 // - Destructor which frees storage associated to a STILScanStructures object 00049 virtual ~STILScanStructures(); 00050 00051 // - Assignment operator 00052 STILScanStructures & operator=(const STILScanStructures &); 00053 00054 // - Member function to initialize an object (default is global domain name) 00055 void init(const sstring& domain=""); 00056 00057 // - Member function to write the object 00058 virtual void write(FILE * pOutFile, LONG indentation=0) const; 00059 00060 00061 // - Member function to add a ScanChain entity 00062 void addScanChain(const STILScanChain&); 00063 00064 private: 00065 00066 // - Member function to update Entity list pointers to link list nodes 00067 void updateEntityList(); 00068 00069 std::list<STILScanChain> m_scList; 00070 00071 }; // end STILScanStructures class 00072 00073 00074 #endif 00075 00076