Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:01:26

0001 
0002 // Copyright 2020, Jefferson Science Associates, LLC.
0003 // Subject to the terms in the LICENSE file found in the top-level directory.
0004 
0005 #pragma once
0006 #include <JANA/JApplication.h>
0007 
0008 namespace jana {
0009 
0010 enum Flag {Unknown, ShowUsage, ShowVersion, ShowConfigs, LoadConfigs, DumpConfigs, Benchmark, InspectCollection, InspectComponent, Interactive};
0011 
0012 struct UserOptions {
0013     /// Code representation of all user options.
0014     /// This lets us cleanly separate args parsing from execution.
0015 
0016     std::map<Flag, bool> flags;
0017     std::map<std::string, std::string> params;
0018     std::vector<std::string> eventSources;
0019     std::string load_config_file;
0020     std::string dump_config_file;
0021     std::string collection_query;
0022     std::string component_query;
0023 };
0024 
0025 void PrintUsage();
0026 void PrintUsageOptions();
0027 void PrintVersion();
0028 UserOptions ParseCommandLineOptions(int nargs, char *argv[], bool expect_extra=true);
0029 JApplication* CreateJApplication(UserOptions& options);
0030 int Execute(JApplication* app, UserOptions& options);
0031 
0032 }
0033