From 0cf5a34a9f2e2b1e90df88d85de8ee1d4953e324 Mon Sep 17 00:00:00 2001 From: Horst Schirmeier Date: Mon, 28 Apr 2014 10:33:26 +0200 Subject: [PATCH] prune-trace: pruners may add own command-line switches Change-Id: I23293e7e6cf8ab1c3456337ba5e4af9b5e106ccb --- tools/prune-trace/Pruner.hpp | 6 ++++++ tools/prune-trace/main.cc | 8 ++++++++ 2 files changed, 14 insertions(+) diff --git a/tools/prune-trace/Pruner.hpp b/tools/prune-trace/Pruner.hpp index cbbb2113..dfa29f20 100644 --- a/tools/prune-trace/Pruner.hpp +++ b/tools/prune-trace/Pruner.hpp @@ -18,6 +18,12 @@ public: const std::vector& benchmarks, const std::vector& benchmarks_exclude); + /** + * Callback function that can be used to add command line options + * to the cmd interface + */ + virtual bool commandline_init() { return true; } + virtual std::string method_name() = 0; virtual bool create_database(); diff --git a/tools/prune-trace/main.cc b/tools/prune-trace/main.cc index 709c22b1..7288085a 100644 --- a/tools/prune-trace/main.cc +++ b/tools/prune-trace/main.cc @@ -70,6 +70,14 @@ int main(int argc, char *argv[]) { pruner = new BasicPruner(); } + if (pruner && !(pruner->commandline_init())) { + std::cerr << "Pruner's commandline initialization failed" << std::endl; + exit(-1); + } + // Since the pruner might have added command line options, we need to + // reparse all arguments. + cmd.parse(); + if (cmd[HELP]) { cmd.printUsage(); exit(0);