19 #include "boost/program_options.hpp" 
   21 #include "FairMQLogger.h" 
   22 #include "FairMQParser.h" 
   23 #include "FairMQProgOptions.h" 
   24 #include "FairMQProcessor.h" 
   25 #include "FairMQDevice.h" 
   28 #include "FairMQTransportFactoryNN.h" 
   30 #include "FairMQTransportFactoryZMQ.h" 
   35 int main(
int argc, 
char** argv)
 
   39     processor.CatchSignals();
 
   41     FairMQProgOptions config;
 
   45     options_description samplerOptions(
"Sampler options");
 
   46         samplerOptions.add_options()
 
   47                 (
"FE", value<int>(&
fe)->default_value(-1), 
"Front-End ID")
 
   48                 (
"TIMECORR", value<std::string>(&timeCorr)->default_value(
"0.0"), 
"Correction of time offset");
 
   50         config.AddToCmdLineOptions(samplerOptions);
 
   54         config.ParseAll(argc, argv);
 
   56         std::string 
filename = config.GetValue<std::string>(
"config-json-file");
 
   57         std::string 
id = config.GetValue<std::string>(
"id");
 
   59         config.UserParser<FairMQParser::JSON>(
filename, id);
 
   61         processor.fChannels = config.GetFairMQMap();
 
   63         LOG(INFO) << 
"PID: " << getpid();
 
   64         LOG(INFO) << 
"ID: " << id ;
 
   65         LOG(INFO) << 
"FE: " << 
fe;
 
   66         LOG(INFO) << 
"TimeCorr: "  << 
timeCorr;
 
   67         LOG(INFO) << 
"Processor::Id Kes: " << FairMQDevice::Id;
 
   68         processor.ListProperties();
 
   71         FairMQTransportFactory* transportFactory = 
new FairMQTransportFactoryNN();
 
   73         FairMQTransportFactory* transportFactory = 
new FairMQTransportFactoryZMQ();
 
   76         processor.SetTransport(transportFactory);
 
   85         processor.ChangeState(
"INIT_DEVICE");
 
   86         processor.WaitForEndOfState(
"INIT_DEVICE");
 
   88         processor.ChangeState(
"INIT_TASK");
 
   89         processor.WaitForEndOfState(
"INIT_TASK");
 
   91         processor.ChangeState(
"RUN");
 
   92         processor.InteractiveStateLoop();
 
   94     catch (std::exception& e)
 
   96         LOG(ERROR) << e.what();
 
   97         LOG(INFO) << 
"Command line options are the following: ";
 
int main(int argc, char **argv)
virtual void SetProperty(const int key, const std::string &value)
PndTSCorrectorTask * timeCorr