FairRoot/PandaRoot
Functions
runPndTopixFileSink.cxx File Reference
#include <PndMQFileSink.h>
#include <iostream>
#include <TApplication.h>
#include "boost/program_options.hpp"
#include "FairMQLogger.h"
#include "FairMQParser.h"
#include "FairMQProgOptions.h"
#include "PndSdsDigiTopix4.h"
#include "FairMQTransportFactoryZMQ.h"

Go to the source code of this file.

Functions

int main (int argc, char **argv)
 

Function Documentation

int main ( int  argc,
char **  argv 
)

Definition at line 35 of file runPndTopixFileSink.cxx.

References filename, and PndMQFileSink::InitOutputFile().

36 {
37  PndMQFileSink sink;
38  sink.CatchSignals();
39 
40  FairMQProgOptions config;
41 
42  try
43  {
44  config.ParseAll(argc, argv);
45 
46  std::string filename = config.GetValue<std::string>("config-json-file");
47  std::string id = config.GetValue<std::string>("id");
48 
49  config.UserParser<FairMQParser::JSON>(filename, id);
50 
51  sink.fChannels = config.GetFairMQMap();
52 
53  LOG(INFO) << "PID: " << getpid();
54 
55 #ifdef NANOMSG
56  FairMQTransportFactory* transportFactory = new FairMQTransportFactoryNN();
57 #else
58  FairMQTransportFactory* transportFactory = new FairMQTransportFactoryZMQ();
59 #endif
60 
61  sink.SetTransport(transportFactory);
62 
63  sink.SetProperty(FairMQDevice::Id, id);
64 
65  sink.ChangeState("INIT_DEVICE");
66  sink.WaitForEndOfState("INIT_DEVICE");
67 
68  sink.ChangeState("INIT_TASK");
69  sink.WaitForEndOfState("INIT_TASK");
70 
71  sink.InitOutputFile(id);
72 
73  sink.ChangeState("RUN");
74  sink.InteractiveStateLoop();
75  }
76  catch (std::exception& e)
77  {
78  LOG(ERROR) << e.what();
79  LOG(INFO) << "Command line options are the following: ";
80  config.PrintHelp();
81  return 1;
82  }
83 
84  return 0;
85 }
virtual void InitOutputFile(TString defaultId="100")
Definition: PndMQFileSink.h:88
const string filename