UTILLib 2.0
Common C++ library with utilities.
Loading...
Searching...
No Matches
consoleapp.h
1/*
2 * Copyright 2025 Ingemar Hedvall
3 * SPDX-License-Identifier: MIT
4 */
5
6#pragma once
7
8#include <cstdint>
9#include <string>
10#include <vector>
11
12namespace util {
13
14class ConsoleApp {
15 public:
16 ConsoleApp();
17 int MainFunc(int argc, char* argv[]);
18 static void StopMain();
19 [[nodiscard]] static bool ShallStop();
20
21 [[nodiscard]] std::string AppFullName() const;
22 [[nodiscard]] std::string AppName() const;
23 [[nodiscard]] std::string AppPath() const;
24 [[nodiscard]] std::vector<std::string> Args() const;
25
26 void ExitCode(int code) { exit_code_ = code; }
27 [[nodiscard]] int ExitCode() const { return exit_code_; }
28
29 void PollDelay(uint32_t delay) { poll_delay_ = delay; }
30 [[nodiscard]] uint32_t PollDelay() const { return poll_delay_; }
31
32 protected:
33 virtual bool OnInit();
34 virtual void OnRun();
35 virtual void OnPoll();
36 virtual void OnExit();
37
38 void RunWindows();
39 void RunLinux();
40
41 private:
42 std::string app_full_name_;
43 std::vector<std::string> arg_list_;
44 uint32_t poll_delay_ = 100; // Delay in ms.
45 int exit_code_ = EXIT_SUCCESS;
46};
47
48} // namespace util
Main namespace for the util library.
Definition consoleapp.h:12