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 00052 00053 SequenceData( ) 00054 : ISInfo( "SequenceData" ) 00055 { 00056 testNames_size = 0; 00057 status = EXECUTING; 00058 00059 // <<BeginUserCode>> 00060 00061 // <<EndUserCode>> 00062 } 00063 00064 ~SequenceData(){ 00065 if ( testNames_size != 0 ) delete[] testNames; 00066 00067 // <<BeginUserCode>> 00068 00069 // <<EndUserCode>> 00070 } 00071 00072 protected: 00073 SequenceData( const char * type ) 00074 : ISInfo( type ) 00075 { 00076 testNames_size = 0; 00077 status = EXECUTING; 00078 00079 // <<BeginUserCode>> 00080 00081 // <<EndUserCode>> 00082 } 00083 00084 void publishGuts( ISostream & out ){ 00085 out << sequenceName << runNumber << startScanNumber << nTests; 00086 out.put( testNames, testNames_size ); 00087 out << (int)status; 00088 } 00089 00090 void refreshGuts( ISistream & in ){ 00091 in >> sequenceName >> runNumber >> startScanNumber >> nTests; 00092 if ( testNames_size != 0 ) delete[] testNames; 00093 in.get( &testNames, testNames_size ); 00094 in >> (int&)status; 00095 } 00096 00097 // <<BeginUserCode>> 00098 00099 // <<EndUserCode>> 00100 }; 00101 00102 // <<BeginUserCode>> 00103 00104 // <<EndUserCode>> 00105 #endif // SEQUENCEDATA_H