00001 #ifndef SEQUENCEDATA_H 00002 #define SEQUENCEDATA_H 00003 00004 #include <is/info.h> 00005 00006 #include <string> 00007 00008 00009 // <<BeginUserCode>> 00010 00011 // <<EndUserCode>> 00018 class SequenceData : public ISInfo { 00019 public: 00020 enum status_E {EXECUTING,COMPLETED,ABORTED}; 00021 00022 00026 std::string sequenceName; 00027 00031 unsigned long runNumber; 00032 00036 unsigned long startScanNumber; 00037 00041 unsigned long nTests; 00042 00046 std::string * testNames; 00050 size_t testNames_size; 00051 00054 status_E status; 00055 00059 std::string startTime; 00060 00064 std::string endTime; 00065 00069 std::string * modules; 00073 size_t modules_size; 00074 00078 unsigned long version; 00079 00080 00081 static const ISType & type() { 00082 static const ISType type_ = SequenceData( ).ISInfo::type(); 00083 return type_; 00084 } 00085 00086 SequenceData( ) 00087 : ISInfo( "SequenceData" ) 00088 { 00089 initialize(); 00090 } 00091 00092 ~SequenceData(){ 00093 if ( testNames_size != 0 ) delete[] testNames; 00094 if ( modules_size != 0 ) delete[] modules; 00095 00096 // <<BeginUserCode>> 00097 00098 // <<EndUserCode>> 00099 } 00100 00101 protected: 00102 SequenceData( const std::string & type ) 00103 : ISInfo( type ) 00104 { 00105 initialize(); 00106 } 00107 00108 void publishGuts( ISostream & out ){ 00109 out << sequenceName << runNumber << startScanNumber << nTests; 00110 out.put( testNames, testNames_size ); 00111 out << status << startTime << endTime; 00112 out.put( modules, modules_size ); 00113 out << version; 00114 } 00115 00116 void refreshGuts( ISistream & in ){ 00117 in >> sequenceName >> runNumber >> startScanNumber >> nTests; 00118 if ( testNames_size != 0 ) delete[] testNames; 00119 in.get( &testNames, testNames_size ); 00120 in >> (int&)status >> startTime >> endTime; 00121 if ( modules_size != 0 ) delete[] modules; 00122 in.get( &modules, modules_size ); 00123 in >> version; 00124 } 00125 00126 private: 00127 void initialize() 00128 { 00129 testNames_size = 0; 00130 status = EXECUTING; 00131 modules_size = 0; 00132 version = 1; 00133 00134 // <<BeginUserCode>> 00135 00136 // <<EndUserCode>> 00137 } 00138 00139 00140 // <<BeginUserCode>> 00141 00142 // <<EndUserCode>> 00143 }; 00144 00145 // <<BeginUserCode>> 00146 00147 // <<EndUserCode>> 00148 #endif // SEQUENCEDATA_H