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

ArchivingWorkerGroup.cpp

Go to the documentation of this file.
00001 #include "ArchivingWorkerGroup.h"
00002 #include "archiving/ArchRawScanResult.h"
00003 #include "archiving/ArchFitScanResult.h"
00004 #include "archiving/ArchNPtGainTestResult.h"
00005 #include "archiving/ArchNoiseOccupancyTestResult.h"
00006 #include "archiving/ArchStrobeDelayTestResult.h"
00007 #include "archiving/ArchTrimRangeTestResult.h"
00008 #include "archiving/ArchTimeWalkTestResult.h"
00009 #include "archiving/ArchPipelineTestResult.h"
00010 #include "archiving/ArchFullBypassTestResult.h"
00011 #include "archiving/ArchNMaskTestResult.h"
00012 
00013 
00014 #include "Sct/LogicErrors.h"
00015 
00016 using namespace Sct;
00017 using namespace SctData;
00018 using namespace boost;
00019 
00020 namespace SctArchivingService {
00021     
00022 void ArchivingWorkerGroup::work(shared_ptr<Serializable> ob) throw() {
00023     try {
00024     if (!ob) throw InvalidArgumentError("Failed to get object from IS", __FILE__, __LINE__);
00025     
00026     shared_ptr<NoiseOccupancyTestResult> NOResult = dynamic_pointer_cast<NoiseOccupancyTestResult>(ob); 
00027     if(NOResult) {      
00028         cout<<" The Test Obj is NoiseOccupancyTestResult "<<endl;      
00029         ArchNoiseOccupancyTestResult archnotest(*NOResult);
00030         archnotest.SetUNIXDir();
00031         archnotest.SaveNoiseOccupancy();
00032         cout<< "Noise Occupancy Test Correctly Saved " << endl;
00033         return;
00034     }
00035     
00036     shared_ptr<NPtGainTestResult> NPtResult = dynamic_pointer_cast<NPtGainTestResult>(ob);
00037     if(NPtResult) {
00038         cout<<" The Test Obj is NPtGainTestResult "<<endl;      
00039         ArchNPtGainTestResult archNPtGtest(*NPtResult);
00040         archNPtGtest.SetUNIXDir();
00041         archNPtGtest.SaveNPtGain();
00042         cout<< "NPt Gain Test Correctly Saved " << endl;
00043         return;
00044     }
00045     
00046     shared_ptr<StrobeDelayTestResult> SDResult = dynamic_pointer_cast<StrobeDelayTestResult>(ob);
00047     if(SDResult) {
00048         cout<<" The Test Obj is StrobeDelayTestResult "<<endl;      
00049         ArchStrobeDelayTestResult archSDtest(*SDResult);
00050         archSDtest.SetUNIXDir();
00051         archSDtest.SaveStrobeDelay();
00052         cout<< "Strobe Delay Test Correctly Saved " << endl;
00053         return;
00054     }
00055     
00056     shared_ptr<TrimRangeTestResult> TRResult = dynamic_pointer_cast<TrimRangeTestResult>(ob);
00057     if(TRResult) {
00058         cout<<" The Test Obj is TrimRangeTestResult "<<endl;      
00059         ArchTrimRangeTestResult archTRtest(*TRResult);
00060         archTRtest.SetUNIXDir();
00061         archTRtest.SaveTrimRange();
00062         cout<< "Trim Range Test Correctly Saved " << endl;
00063         return;
00064     }
00065 
00066     shared_ptr<TimeWalkTestResult> TWResult = dynamic_pointer_cast<TimeWalkTestResult>(ob);
00067     if(TWResult) {
00068         cout<<" The Test Obj is TimeWalkTestResult "<<endl;      
00069         ArchTimeWalkTestResult archTWtest(*TWResult);
00070         archTWtest.SetUNIXDir();
00071         archTWtest.SaveTimeWalk();
00072         cout<< "TimeWalk Test Correctly Saved " << endl;
00073         return;
00074     }
00075 
00076     shared_ptr<FullBypassTestResult> FBResult = dynamic_pointer_cast<FullBypassTestResult>(ob);
00077     if(FBResult) {
00078         cout<<" The Test Obj is FullBypassTestResult "<<endl;      
00079         ArchFullBypassTestResult archFBtest(*FBResult);
00080         archFBtest.SetUNIXDir();
00081         archFBtest.SaveFullBypass();
00082         cout<< "FullBypass Test Correctly Saved " << endl;
00083         return;
00084     }
00085 
00086 
00087     shared_ptr<PipelineTestResult> PResult = dynamic_pointer_cast<PipelineTestResult>(ob);
00088     if(PResult) {
00089         cout<<" The Test Obj is PipelineTestResult "<<endl;      
00090         ArchPipelineTestResult archPtest(*PResult);
00091         archPtest.SetUNIXDir();
00092         archPtest.SavePipeline();
00093         cout<< "Pipeline Test Correctly Saved " << endl;
00094         return;
00095     }
00096     
00097 
00098     shared_ptr<NMaskTestResult> NMResult = dynamic_pointer_cast<NMaskTestResult>(ob);
00099     if(NMResult) {
00100         cout<<" The Test Obj is NMaskTestResult "<<endl;      
00101         ArchNMaskTestResult archNMtest(*NMResult);
00102         archNMtest.SetUNIXDir();
00103         archNMtest.SaveNMask();
00104         cout<< "NMask Test Correctly Saved " << endl;
00105         return;
00106     }
00107     
00108     throw InvalidArgumentError("The object on IS is an unknown Test type: " + ob->getClassName(), __FILE__, __LINE__);
00109     } catch(Throwable& e) {
00110     e.sendToMrs(MRS_ERROR);
00111     }
00112 }    
00113 
00114 }

Generated on Mon Dec 15 19:35:56 2003 for SCT DAQ/DCS Software by doxygen1.3-rc3