Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Related Pages

SequenceData.h

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

Generated on Thu Jul 8 11:41:14 2004 for SCT DAQ/DCS Software - C++ by doxygen 1.3.5