Doxygen XLinks
by
V: 2511R0
Website: doxygen
Loading...
Searching...
No Matches
dxlapp.hpp
Go to the documentation of this file.
1//==================================================================================================
2/// \file
3/// This header-file is part of \dxl - A doxygen post-processor that allows to define smarter
4/// <b>Doxygen</b>-links.
5///
6/// \emoji :copyright: 2025-2026 A-Worx GmbH, Germany.
7/// Published under \ref mainpage_license "Boost Software License".
8//==================================================================================================
9#ifndef HPP_DXL_APP
10#define HPP_DXL_APP
11#pragma once
12#include "ALib.ThreadModel.H"
13#include "ALib.Files.H"
14#include "ALib.App.CLI.H"
15
16namespace dxl {
17
18class DoxygenXLinks;
19class Index;
20struct DoxygenINIFile;
21
22DOX_MARKER([DOX_TEMPLATE_FUNCTIONS])
23/// Template 1
24/// @param a An A.
25/// @tparam T Any type.
26template<typename T> void foo(T a) {(void)a;}
27
28/// Template 2
29/// @param a An A.
30/// @tparam N Type int.
31template<int N> void foo(int a) {(void)a;}
32DOX_MARKER([DOX_TEMPLATE_FUNCTIONS])
33
34// #################################################################################################
35/// class DXLApp
36// #################################################################################################
37class DXLApp : public alib::app::AppCli {
38 friend struct DoxygenINIFile;
39 friend class DoxygenXLinks;
40 friend class Index;
41 friend class XLink;
42 friend struct HTMLReplacer;
43 friend struct SourceLocationFinder;
44 friend struct SourceReplacer;
45 friend void DbgUnitTests(DoxygenXLinks*);
46
47 protected:
48 /// The instance of the main class. todox
49 DoxygenXLinks* dxl= nullptr; // todo: make public and remove the friends above
50
51 /// The working directory. Either given with --PWD or detected as the current execution
52 /// directory.
54
55 /// The file path of the Doxyfile as given on the command line.
57
58 /// Sets the field #"App::appVersion" and then invokes the parent implementation
59 /// #"AppCli::onBsSetNameVersionAndInfo".
60 void onBsSetNameVersionAndInfo() override;
61
62 /// Todo: remove test: onBsPrepareResources()
63 /// Todo: probably removed.
64 /// @param e The exception to be analyzed.
65 /// @return todo
67
68 /// Defines \alib_cli entities specific to \dxl.
69 void bsCLIDefine() override;
70
71 /// Bulk-loads \dxl specific resource strings into module #"APPCLI_CAMP".
72 void onBsPrepareResources() override;
73
74 /// Bootstraps enum records.
75 void onBsPrepareConfig() override;
76
77 /// Waits for our thread-pool to become idle, shuts it down, and deletes it.
78 void onRunEnd() override;
79
80 /// Processes \dxl commands.
81 /// @param cmd The command to process or \c nullptr for default execution.
82 /// @return \c true if the command was processed. \c false otherwise.
83 bool cliProcessCmd(alib::cli::Command* cmd ) override;
84
85 /// Custom #"App::States" of this #"AppCli" application.
86 enum class CustomStates {
87 CLIDefine , ///< Inserted before App::PrepareConfig.
88 ReadDryRunOption , ///< Inserted before SetupALox.
89 ConfigureCLI , ///< Inserted after ImportConfig.
90 };
91
92 public:
93 /// Constructor.
94 DXLApp();
95
96 // #############################################################################################
97 // alib::App overrides
98 // #############################################################################################
99 ///@return The release lox of this application.
100 /// This component of \alibmod_nl \alib_alox is used to generate verbose output accross
101 /// this project.
102 alib::lox::Lox* GetRLox() final { return releaseLox; }
103}; // class DXLApp
104
105
106
107} //namespace [dxl]
108
109#endif // HPP_DXL_APP
lox::Lox * releaseLox
class DXLApp
Definition dxlapp.hpp:37
alib::Path PWD
Definition dxlapp.hpp:53
void onBsSetNameVersionAndInfo() override
Definition dxlapp.cpp:421
alib::Enum exceptionToExitCode(alib::Exception &e) override
Definition dxlapp.cpp:401
void onRunEnd() override
Waits for our thread-pool to become idle, shuts it down, and deletes it.
Definition dxlapp.cpp:458
void onBsPrepareConfig() override
Bootstraps enum records.
Definition dxlapp.cpp:369
DXLApp()
Constructor.
Definition dxlapp.cpp:27
void bsCLIDefine() override
Defines ALib CLI entities specific to DoxygenXLinks.
Definition dxlapp.cpp:431
alib::String DoxyfilePath
The file path of the Doxyfile as given on the command line.
Definition dxlapp.hpp:56
void onBsPrepareResources() override
Bulk-loads DoxygenXLinks specific resource strings into module #"APPCLI_CAMP".
Definition dxlapp.cpp:34
CustomStates
Custom #"App::States" of this #"AppCli" application.
Definition dxlapp.hpp:86
alib::lox::Lox * GetRLox() final
Definition dxlapp.hpp:102
bool cliProcessCmd(alib::cli::Command *cmd) override
Definition dxlapp.cpp:440
strings::TString< character > String
system::Path Path
exceptions::Exception Exception
boxing::Enum Enum
todox
Definition doxyfile.cpp:20
void foo(T a)
Definition dxlapp.hpp:26