17 #include <TApplication.h>
19 #include "boost/program_options.hpp"
21 #include "FairMQLogger.h"
22 #include "FairMQParser.h"
23 #include "FairMQProgOptions.h"
28 #include "FairMQTransportFactoryNN.h"
30 #include "FairMQTransportFactoryZMQ.h"
35 int main(
int argc,
char** argv)
42 FairMQProgOptions config;
44 std::string outputFileName;
46 options_description samplerOptions(
"Sampler options");
47 samplerOptions.add_options()
48 (
"fileName", value<string>(&outputFileName)->default_value(
"FileSinkHits.root"),
"Output file name");
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 outputFileName = config.GetStringValue(
"fileName");
61 LOG(INFO) <<
"OutputFileName: " << outputFileName;
65 config.UserParser<FairMQParser::JSON>(
filename, id);
67 sink.fChannels = config.GetFairMQMap();
69 LOG(INFO) <<
"PID: " << getpid();
72 FairMQTransportFactory* transportFactory =
new FairMQTransportFactoryNN();
74 FairMQTransportFactory* transportFactory =
new FairMQTransportFactoryZMQ();
77 sink.SetTransport(transportFactory);
79 sink.SetProperty(FairMQDevice::Id,
id);
81 sink.ChangeState(
"INIT_DEVICE");
82 sink.WaitForEndOfState(
"INIT_DEVICE");
84 sink.ChangeState(
"INIT_TASK");
85 sink.WaitForEndOfState(
"INIT_TASK");
89 sink.ChangeState(
"RUN");
90 sink.InteractiveStateLoop();
92 catch (std::exception& e)
94 LOG(ERROR) << e.what();
95 LOG(INFO) <<
"Command line options are the following: ";
virtual void SetFileName(std::string fileName)
int main(int argc, char **argv)
virtual void InitOutputFile(TString defaultId="100")