00001 #ifndef SEQUENCEDATA_H
00002 #define SEQUENCEDATA_H
00003
00004 #include <is/isinfo.h>
00005
00006
00007
00008
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
00060
00061
00062 }
00063
00064 ~SequenceData(){
00065 if ( testNames_size != 0 ) delete[] testNames;
00066
00067
00068
00069
00070 }
00071
00072 protected:
00073 SequenceData( const char * type )
00074 : ISInfo( type )
00075 {
00076 testNames_size = 0;
00077 status = EXECUTING;
00078
00079
00080
00081
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
00098
00099
00100 };
00101
00102
00103
00104
00105 #endif // SEQUENCEDATA_H