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.FileTree.H"
14#include "ALib.App.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::App {
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 /// #"App::onBsSetNameVersionAndInfo".
60 void onBsSetNameVersionAndInfo() override;
61
62 /// Defines #"alib_cliapp;CLI entities" specific to \dxl.
63 void onBsCLIDefine() override;
64
65 /// Bulk-loads \dxl specific resource strings into module #"APP".
66 void onBsPrepareResources() override;
67
68 /// Bootstraps enum records.
69 void onBsPrepareConfig() override;
70
71 /// Waits for our thread-pool to become idle, shuts it down, and deletes it.
72 void onRunEnd() override;
73
74 /// Processes \dxl commands.
75 /// @param cmd The command to process or \c nullptr for default execution.
76 /// @return \c true if the command was processed. \c false otherwise.
77 bool processCLICmd(alib::app::Command* cmd ) override;
78
79 /// Custom #"App::States" of this #"App" application.
80 enum class CustomStates {
81 CLIDefine , ///< Inserted before App::PrepareConfig.
82 ReadDryRunOption , ///< Inserted before SetupALox.
83 ConfigureCLI , ///< Inserted after ImportConfig.
84 };
85
86 public:
87 /// Constructor.
88 DXLApp();
89
90 //################################################################################################
91 // alib::App overrides
92 //################################################################################################
93 ///@return The release lox of this application.
94 /// This component of \alibmod_nl \alib_alox is used to generate verbose output accross
95 /// this project.
96 alib::lox::Lox* GetRLox() final { return releaseLox; }
97}; // class DXLApp
98
99
100
101} //namespace [dxl]
102
103#endif // HPP_DXL_APP
lox::Lox * releaseLox
class DXLApp
Definition dxlapp.hpp:37
bool processCLICmd(alib::app::Command *cmd) override
Definition dxlapp.cpp:425
alib::Path PWD
Definition dxlapp.hpp:53
void onBsSetNameVersionAndInfo() override
Definition dxlapp.cpp:406
void onRunEnd() override
Waits for our thread-pool to become idle, shuts it down, and deletes it.
Definition dxlapp.cpp:443
void onBsPrepareConfig() override
Bootstraps enum records.
Definition dxlapp.cpp:372
void onBsCLIDefine() override
Defines #"alib_cliapp;CLI entities" specific to DoxygenXLinks.
Definition dxlapp.cpp:416
DXLApp()
Constructor.
Definition dxlapp.cpp:27
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 #"APP".
Definition dxlapp.cpp:34
CustomStates
Custom #"App::States" of this #"App" application.
Definition dxlapp.hpp:80
alib::lox::Lox * GetRLox() final
Definition dxlapp.hpp:96
strings::TString< character > String
system::Path Path
todox
Definition doxyfile.cpp:20
void foo(T a)
Definition dxlapp.hpp:26