CMS 3D CMS Logo

Functions
dump.cc File Reference
#include <iostream>
#include <utility>
#include <cstdlib>
#include <string>
#include <set>
#include <boost/program_options.hpp>
#include "FWCore/PluginManager/interface/PluginManager.h"
#include "FWCore/PluginManager/interface/standard.h"

Go to the source code of this file.

Functions

int main (int argc, char **argv)
 

Function Documentation

◆ main()

int main ( int  argc,
char **  argv 
)

Definition at line 15 of file dump.cc.

References dir2webdir::argc, GCPpyPlots::argv, edmplugin::PluginManager::categoryToInfos(), DMR_cfg::cerr, edmplugin::standard::config(), edmplugin::PluginManager::configure(), gather_cfg::cout, submitPVResolutionJobs::desc, relativeConstraints::error, cppFunctionSkipper::exception, edmplugin::PluginManager::get(), kHelpCommandOpt, kHelpOpt, AlcaSiPixelAliHarvester0T_cff::options, crabTemplate::pluginName, writedatasetfile::run, and AlCaHLTBitMon_QueryRunRegistry::string.

15  {
16  using namespace boost::program_options;
17 
18  static const char* const kFilesOpt = "files";
19  static const char* const kFilesCommandOpt = "files,f";
20  static const char* const kAllFilesOpt = "all_files";
21  static const char* const kAllFilesCommandOpt = "all_files,a";
22  static const char* const kHelpOpt = "help";
23  static const char* const kHelpCommandOpt = "help,h";
24 
25  std::string descString(argv[0]);
26  descString += " [options]";
27  descString += "\nAllowed options";
28  options_description desc(descString);
29  desc.add_options()(kHelpCommandOpt, "produce help message")(
30  kFilesCommandOpt,
31  "list the file from which a plugin will come")(kAllFilesCommandOpt,
32  "list all the files to which a plugin is registered")
33  //(kAllCommandOpt,"when no paths given, try to update caches for all known directories [default is to only scan the first directory]")
34  ;
35 
36  variables_map vm;
37  try {
38  store(command_line_parser(argc, argv).options(desc).run(), vm);
39  notify(vm);
40  } catch (const error& iException) {
41  std::cerr << iException.what();
42  return 1;
43  }
44 
45  if (vm.count(kHelpOpt)) {
46  std::cout << desc << std::endl;
47  return 0;
48  }
49 
50  bool printFiles = false;
51  if (vm.count(kFilesOpt)) {
52  printFiles = true;
53  }
54 
55  bool printAllFiles = false;
56  if (vm.count(kAllFilesOpt)) {
57  printFiles = true;
58  printAllFiles = true;
59  }
60 
61  int returnValue = EXIT_SUCCESS;
62  try {
63  //dump all know plugins
64  PluginManager::configure(standard::config());
65 
67 
68  const CatToInfos& catToInfos = edmplugin::PluginManager::get()->categoryToInfos();
69  // map every module to its library. Code copied from EdmPluginDump
70  for (CatToInfos::const_iterator it = catToInfos.begin(), itEnd = catToInfos.end(); it != itEnd; ++it) {
71  std::cout << "Category " << it->first << ":" << std::endl;
72  std::string prevPluginName;
73  for (edmplugin::PluginManager::Infos::const_iterator itInfo = it->second.begin(), itInfoEnd = it->second.end();
74  itInfo != itInfoEnd;
75  ++itInfo) {
76  std::string pluginName = itInfo->name_;
77  if (pluginName != prevPluginName) {
78  std::cout << " " << pluginName << std::endl;
79  if (printFiles) {
80  std::cout << " " << itInfo->loadable_.string() << std::endl;
81  }
82  prevPluginName = pluginName;
83  } else if (printAllFiles) {
84  std::cout << " " << itInfo->loadable_.string() << std::endl;
85  }
86  }
87  }
88  } catch (std::exception& iException) {
89  std::cerr << "Caught exception " << iException.what() << std::endl;
90  returnValue = EXIT_FAILURE;
91  }
92 
93  return returnValue;
94 }
const CategoryToInfos & categoryToInfos() const
Definition: PluginManager.h:82
std::map< std::string, Infos > CategoryToInfos
Definition: PluginManager.h:51
dictionary config
Read in AllInOne config in JSON format.
Definition: DMR_cfg.py:21
static const char *const kHelpCommandOpt
Definition: CmsShowMain.cc:106
static const char *const kHelpOpt
Definition: CmsShowMain.cc:105
static PluginManager * get()