00001 /* 00002 * DaqXmlDump.cc 00003 * DaqFormatModules 00004 * 00005 * Created by Simon Patton on 8/8/10. 00006 * Copyright 2010 DayaBay Collaboration. All rights reserved. 00007 * 00008 */ 00009 #include "DaqXmlDump.h" 00010 #include "DaqXml/DaqXmlStream.h" 00011 00012 using DybDaq::DaqXmlDump; 00013 using DybDaq::DaqXmlStream; 00014 00015 using namespace DayaBay; 00016 00017 static const std::string twoSpaces(" "); 00018 00019 DaqXmlDump::DaqXmlDump(const std::string& name, 00020 ISvcLocator* pSvcLocator) : 00021 DybAlgorithm<DayaBay::ReadoutHeader>(name, 00022 pSvcLocator) { 00023 } 00024 00025 DaqXmlDump::~DaqXmlDump() { 00026 } 00027 00028 StatusCode DaqXmlDump::initialize() { 00029 StatusCode status = DybAlgorithm<DayaBay::ReadoutHeader>::initialize(); 00030 if (status.isFailure()) { 00031 return status; 00032 } 00033 info() << "initializing" << endreq; 00034 return StatusCode::SUCCESS; 00035 } 00036 00037 StatusCode DaqXmlDump::execute() { 00038 const ReadoutHeader* readoutHeader = get<ReadoutHeader>("/Event/Readout/ReadoutHeader"); 00039 if (0 == readoutHeader) { 00040 error() << "Failed to get current readout header" << endreq; 00041 return StatusCode::FAILURE; 00042 } 00043 //const Readout* readout = readoutHeader->readout(); 00044 //if (0 == readout) { 00045 const DaqCrate* daqCrate = readoutHeader->daqCrate(); 00046 if (0 == daqCrate) { 00047 error() << "Failed to get readout from header" << endreq; 00048 return StatusCode::FAILURE; 00049 } 00050 std::stringstream message; 00051 message << '\n'; 00052 DaqXmlStream xmlStream(message, 00053 twoSpaces, 00054 true); 00055 xmlStream.dumpElement(daqCrate->eventReadout()); 00056 info() << message.str() << endreq; 00057 return StatusCode::SUCCESS; 00058 //} 00059 //return StatusCode::SUCCESS; 00060 } 00061 00062 StatusCode DaqXmlDump::finalize() { 00063 info() << "finalizing" << endreq; 00064 StatusCode status = DybAlgorithm<DayaBay::ReadoutHeader>::finalize(); 00065 return status; 00066 }