00001 #ifndef SEQUENCEDATA_H 00002 #define SEQUENCEDATA_H 00003 00004 #include <is/isinfo.h> 00005 00006 // <<BeginUserCode>> 00007 00008 // <<EndUserCode>> 00015 class SequenceData: public ISInfo { 00016 public: 00017 enum status_E {EXECUTING,COMPLETED,ABORTED}; 00018 00022 std::string sequenceName; 00023 00027 unsigned long runNumber; 00028 00032 unsigned long startScanNumber; 00033 00037 unsigned long nTests; 00038 00042 std::string * testNames; 00046 size_t testNames_size; 00047 00050 status_E status; 00051 00055 std::string startTime; 00056 00060 std::string endTime; 00061 00065 std::string * modules; 00069 size_t modules_size; 00070 00074 unsigned long version; 00075 00076 00077 SequenceData( ) 00078 : ISInfo( "SequenceData" ) 00079 { 00080 testNames_size = 0; 00081 status = EXECUTING; 00082 modules_size = 0; 00083 version = 1; 00084 00085 // <<BeginUserCode>> 00086 00087 // <<EndUserCode>> 00088 } 00089 00090 ~SequenceData(){ 00091 if ( testNames_size != 0 ) delete[] testNames; 00092 if ( modules_size != 0 ) delete[] modules; 00093 00094 // <<BeginUserCode>> 00095 00096 // <<EndUserCode>> 00097 } 00098 00099 protected: 00100 SequenceData( const char * type ) 00101 : ISInfo( type ) 00102 { 00103 testNames_size = 0; 00104 status = EXECUTING; 00105 modules_size = 0; 00106 version = 1; 00107 00108 // <<BeginUserCode>> 00109 00110 // <<EndUserCode>> 00111 } 00112 00113 void publishGuts( ISostream & out ){ 00114 out << sequenceName << runNumber << startScanNumber << nTests; 00115 out.put( testNames, testNames_size ); 00116 out << (int)status << startTime << endTime; 00117 out.put( modules, modules_size ); 00118 out << version; 00119 } 00120 00121 void refreshGuts( ISistream & in ){ 00122 in >> sequenceName >> runNumber >> startScanNumber >> nTests; 00123 if ( testNames_size != 0 ) delete[] testNames; 00124 in.get( &testNames, testNames_size ); 00125 in >> (int&)status >> startTime >> endTime; 00126 if ( modules_size != 0 ) delete[] modules; 00127 in.get( &modules, modules_size ); 00128 in >> version; 00129 } 00130 00131 // <<BeginUserCode>> 00132 00133 // <<EndUserCode>> 00134 }; 00135 00136 // <<BeginUserCode>> 00137 00138 // <<EndUserCode>> 00139 #endif // SEQUENCEDATA_H