DDS  ver. 3.6
MiscSetup.h
Go to the documentation of this file.
1 // Copyright 2014 GSI, Inc. All rights reserved.
2 //
3 //
4 #ifndef _DDS_MISCSETUP_H_
5 #define _DDS_MISCSETUP_H_
6 
7 // DDS
8 #include "Environment.h"
9 #include "Logger.h"
10 #include "UserDefaults.h"
11 
12 namespace dds::misc
13 {
14  template <class Options_t>
15  inline int defaultExecSetup(int _argc,
16  char* _argv[],
17  Options_t* _options,
18  std::function<bool(int argc, char* argv[], Options_t*)> _parseFunc)
19  {
20  try
21  {
22  user_defaults_api::CUserDefaults::instance(); // Initialize user defaults
23  dds::misc::Logger::instance().init(); // Initialize log
24  dds::misc::setupEnv(); // Setup environment
25 
26  std::vector<std::string> arguments(_argv + 1, _argv + _argc);
27  std::ostringstream ss;
28  std::copy(arguments.begin(), arguments.end(), std::ostream_iterator<std::string>(ss, " "));
29  LOG(dds::misc::info) << "Starting with arguments: " << ss.str();
30 
31  if (!_parseFunc(_argc, _argv, _options))
32  return EXIT_FAILURE;
33  }
34  catch (std::exception& e)
35  {
36  LOG(dds::misc::log_stderr) << e.what();
37  return EXIT_FAILURE;
38  }
39  return EXIT_SUCCESS;
40  }
41 
42  inline int defaultExecReinit(const boost::uuids::uuid& _sid)
43  {
44  try
45  {
47  _sid, user_defaults_api::CUserDefaults::instance().currentUDFile());
48  dds::misc::Logger::instance().reinit();
49  }
50  catch (std::exception& e)
51  {
52  LOG(dds::misc::log_stderr) << e.what();
53  return EXIT_FAILURE;
54  }
55  return EXIT_SUCCESS;
56  }
57 } // namespace dds::misc
58 
59 #endif /*_DDS_MISCSETUP_H_*/
void reinit(const boost::uuids::uuid &_sid, const std::string &_cfgFileName, bool _get_default=false)
Definition: UserDefaults.cpp:48
#define LOG(severity)
Definition: Logger.h:34
void setupEnv()
Definition: Environment.h:59
int defaultExecReinit(const boost::uuids::uuid &_sid)
Definition: MiscSetup.h:42
Definition: def.h:147
static CUserDefaults & instance(const boost::uuids::uuid &_sid=CUserDefaults::getInitialSID())
Return singleton instance.
Definition: UserDefaults.cpp:37
Definition: def.h:153
int defaultExecSetup(int _argc, char *_argv[], Options_t *_options, std::function< bool(int argc, char *argv[], Options_t *)> _parseFunc)
Definition: MiscSetup.h:15
Definition: BoostHelper.h:14