/* * File: GenericFileSink.tpl * Author: winckler * * Created on October 7, 2014, 7:21 PM */ template GenericFileSink::GenericFileSink() : InputPolicy() , OutputPolicy() { } template GenericFileSink::~GenericFileSink() { } template void GenericFileSink::SetTransport(FairMQTransportFactory* transport) { FairMQDevice::SetTransport(transport); // InputPolicy::SetTransport(transport); } template void GenericFileSink::InitTask() { InitOutputFile(); // InputPolicy::Init(); // OutputPolicy::Init(); } template void GenericFileSink::InitOutputFile() { OutputPolicy::InitOutFile(); } template void GenericFileSink::Run() { int receivedMsg = 0; // store the channel reference to avoid traversing the map on every loop iteration const FairMQChannel& inputChannel = fChannels["data-in"].at(0); while (CheckCurrentState(RUNNING)) { std::unique_ptr msg(fTransportFactory->CreateMessage()); if (inputChannel.Receive(msg) > 0) { OutputPolicy::AddToFile(InputPolicy::DeSerializeMsg(msg.get())); receivedMsg++; } } MQLOG(INFO) << "Received " << receivedMsg << " messages!"; }