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

TestDisplayer.cpp

00001 #include "TestDisplayer.h"
00002 #include "DisplayManager.h"
00003 
00004 #include "SctData/TestResult.h"
00005 #include "Sct/IS/IOManagerIS.h"
00006 #include "Sct/SctNames.h"
00007 #include "Sct/LogicErrors.h"
00008 #include "SummaryWriter/SummaryManager.h"
00009 #include "Sct/Archive/IOManagerArchiveFile.h"
00010 #include "Sct/Archive/IONameArchiveFile.h"
00011 
00012 #include <TCanvas.h>
00013 
00014 using namespace Sct;
00015 using namespace Sct::IS;
00016 using namespace SctData;
00017 using namespace boost;
00018 
00019 namespace SctDataDisplay {
00020 
00021 bool TestDisplayer::inList = DisplayManager::addGeneric(shared_ptr<GenericDisplayer>(new TestDisplayer));
00022 
00023 shared_ptr<DisplayData> TestDisplayer::display(shared_ptr<const Sct::Serializable> ob, const DisplayInfo& info, std::ostream& os) {
00024     shared_ptr<TestDisplayData> data (new TestDisplayData);
00025     shared_ptr<const TestResult> tr = dynamic_pointer_cast<const TestResult>(ob);
00026     if (!tr) throw InvalidArgumentError("TestDisplayer::display called but argument is not a TestResult", __FILE__, __LINE__);
00027  
00028     printSummaryString(*tr, os);
00029     displayTestResult(*tr, *data, info, os);
00030     
00031     return data;
00032 }
00033     
00034 void TestDisplayer::displayTestResult(const TestResult& result, TestDisplayData& data, const DisplayInfo& info, std::ostream& os) {
00035     displayAllRaws(result, data, info, os);
00036 }
00037 
00038 
00039 
00040 bool TestDisplayer::canDisplay(const Sct::Serializable& ob) {
00041     const TestResult* tr = dynamic_cast<const TestResult*>(&ob);
00042     if (tr != 0) return true;
00043     return false;
00044 }
00045 
00046 
00047 
00048 void TestDisplayer::displayAllRaws(const TestResult& result, TestDisplayData& data, const DisplayInfo& info, std::ostream& os) {
00049     unsigned int runNumber = result.getRunNumber();
00050     string moduleName = result.getModuleName();
00051     for (unsigned int i=0; i<result.getNScans(); ++i) {
00052     unsigned int scanNumber = result.getScanNumberAt(i);
00053     
00054     shared_ptr<Serializable> ob;
00055     try {
00056       string isName = SctNames::getEventDataName() + ".SctData::RawScanResult." + ResultHeader::getUniqueID(runNumber, scanNumber, moduleName);
00057       ob = IOManagerIS::instance().read(isName);
00058     }catch (IoException&e){
00059     }
00060     if (!ob.get()){
00061       Sct::Archive::IONameArchiveFile namearch(result.getUniqueID(), result.getClassName());
00062       ob=Sct::Archive::IOManagerArchiveFile::instance().read(namearch.getIOName());
00063     }
00064     data.otherData.push_back(DisplayManager::display(ob, info, os));
00065     }
00066 }
00067 
00068 void TestDisplayer::printSummaryString(const TestResult& result, std::ostream& os) {
00069   if (DisplayManager::batchMode()){
00070     SctData::TestSummary::SummaryManager::instance().write(result, os);
00071   }
00072 }
00073     
00074 }

Generated on Thu Jul 15 09:51:00 2004 for SCT DAQ/DCS Software - C++ by doxygen 1.3.5