/* Common entry point for all villas command line tools. * * Author: Steffen Vogel * SPDX-FileCopyrightText: 2014-2023 Institute for Automation of Complex Power Systems, RWTH Aachen University * SPDX-License-Identifier: Apache-2.0 */ #pragma once #include #include #include #include #include namespace villas { class Tool { protected: Logger logger; int argc; char **argv; std::string name; static Tool *current_tool; static void staticHandler(int signal, siginfo_t *sinfo, void *ctx); virtual void handler(int, siginfo_t *, void *) {} std::list handlerSignals; static void printCopyright(); static void printVersion(); public: Tool(int ac, char *av[], const std::string &name, const std::list &sigs = {}); virtual int main() { return 0; } virtual void usage() {} virtual void parse() {} virtual int run(); }; } // namespace villas