Doxygen XLinks
by
V: 2511R0
Website: doxygen
Loading...
Searching...
No Matches
dxl::DoxygenXLinks Class Reference

Description:

class DoxygenXLinks

This is the main class of this little project that organizes the pieces and performs all necessary steps. Method Run is called in Run

Definition at line 126 of file dxl.hpp.

#include <dxl.hpp>

Inner Type Index:

struct  Statistics
 Some statistical data displayed with verbose output option. (todo!). More...

Public Field Index:

alib::Lock DLLock
DoxygenINIFile Doxyfile
 The Doxyfile to process.
ExclamationFile Exclamations
alib::CString ExclamationsPath = "DoxygenXLinks.exclamations.txt"
 The path to this file. Todo: make configurable and auto-generated from app-name.
alib::StdVectorMA< Index * > Indices
alib::MonoAllocator MA
 Our mono allocator.
Statistics Stats
 Statistics collected during the execution and printed when verbose output is requested.
DXLThreadPool TPool
 The thread pool used to load and search the HMTL files.
alib::HashMap< alib::MonoAllocator, alib::String, XLink *, std::hash< alib::String >, std::equal_to< alib::String >, alib::lang::Caching::Enabled, alib::Recycling::None > XLinkMap
 The set of unique XLinks found in the source and HTML files.

Public Method Index:

 DoxygenXLinks ()
 Constructor.
 ~DoxygenXLinks ()
 Virtual destructor.
void AddAnchorTitle (const alib::String &anchorName, const alib::String &anchorTitle, const alib::String &sourceHint)
void GetELDecoration (Styles &styles, bool isELREFAnchor, alib::File &elLocation, alib::String targetFilename, alib::String targetAnchor, int lineNo, int colNo)
alib::FTreeGetHTMLTree ()
alib::SharedLockGetHTMLTreeLock ()
alib::FTreeGetSourceTree ()
alib::SharedLockGetSourceTreeLock ()
XLinkGetXLink (alib::String &searchString, const alib::files::File &htmlFile)
XLinkRegisterXLink (alib::String &searchString)
void Run ()
 The main method of this main class of project DoxygenXLinks.

Protected Field Index:

alib::SharedFTree fTreeHTML
 The file tree used for reading the html files.
alib::SharedFTree fTreeSources
 The file tree used for reading the source files.
alib::Verbosity verbosityGetELDecoration = alib::Verbosity(-1)
 Used to optimize logging speed in critical code section.

Protected Method Index:

void listLinks (const alib::String &expressionString, const alib::String &format)
void scanHTMLFiles ()
 Scans the HTML input file tree.
void scanReplSrcFiles (const alib::String &folder)
void scanSrcFiles ()
void schduleHTMLReplacers ()
 Launches the HTMLReplacer jobs on the HTML-file tree.
void schduleSourceReplacers (const alib::String &folder)
void scheduleSrcScanners ()
 Launches the SourceLocationFinder jobs on the source-file tree.
void tryResolveHTMLTargetFile (XLink &xLink)
void writeErrors ()
 Writes the non-resolved and ambiguous src links in an ordered fashion.
void writeStatistics ()
void writeXLinksInHTMLNotInSource ()
void writeXLinksInSourceNotInHTML ()

Field Details:

◆ DLLock

alib::Lock dxl::DoxygenXLinks::DLLock

The lock used with the allocator MA. Locking needs only be performed while the threadpool is active.

Definition at line 145 of file dxl.hpp.

◆ Doxyfile

DoxygenINIFile dxl::DoxygenXLinks::Doxyfile

The Doxyfile to process.

Definition at line 151 of file dxl.hpp.

◆ Exclamations

ExclamationFile dxl::DoxygenXLinks::Exclamations

An exclamation file, containing locations in in HTML-files. In rare cases DoxygenXLinks might see an XLink that is not one. Such cases have to be entered in the external exclamation file.

Definition at line 232 of file dxl.hpp.

◆ ExclamationsPath

alib::CString dxl::DoxygenXLinks::ExclamationsPath = "DoxygenXLinks.exclamations.txt"

The path to this file. Todo: make configurable and auto-generated from app-name.

Definition at line 235 of file dxl.hpp.

◆ fTreeHTML

alib::SharedFTree dxl::DoxygenXLinks::fTreeHTML
protected

The file tree used for reading the html files.

Definition at line 134 of file dxl.hpp.

◆ fTreeSources

alib::SharedFTree dxl::DoxygenXLinks::fTreeSources
protected

The file tree used for reading the source files.

Definition at line 131 of file dxl.hpp.

◆ Indices

alib::StdVectorMA<Index*> dxl::DoxygenXLinks::Indices

The vector of Index objects resulting from doxygen tag-files. (One Index per tag-file.)

Definition at line 239 of file dxl.hpp.

◆ MA

alib::MonoAllocator dxl::DoxygenXLinks::MA

Our mono allocator.

Definition at line 148 of file dxl.hpp.

◆ Stats

Statistics dxl::DoxygenXLinks::Stats

Statistics collected during the execution and printed when verbose output is requested.

Definition at line 228 of file dxl.hpp.

◆ TPool

DXLThreadPool dxl::DoxygenXLinks::TPool

The thread pool used to load and search the HMTL files.

Definition at line 141 of file dxl.hpp.

◆ verbosityGetELDecoration

alib::Verbosity dxl::DoxygenXLinks::verbosityGetELDecoration = alib::Verbosity(-1)
protected

Used to optimize logging speed in critical code section.

Definition at line 137 of file dxl.hpp.

◆ XLinkMap

alib::HashMap< alib::MonoAllocator, alib::String, XLink*, std::hash<alib::String>, std::equal_to<alib::String>, alib::lang::Caching::Enabled,alib::Recycling::None> dxl::DoxygenXLinks::XLinkMap

The set of unique XLinks found in the source and HTML files.

Definition at line 156 of file dxl.hpp.

Constructor(s) / Destructor Details:

◆ DoxygenXLinks()

dxl::DoxygenXLinks::DoxygenXLinks ( )

Constructor.

Definition at line 153 of file dxl.cpp.

◆ ~DoxygenXLinks()

dxl::DoxygenXLinks::~DoxygenXLinks ( )

Virtual destructor.

Definition at line 165 of file dxl.cpp.

Method Details:

◆ AddAnchorTitle()

void dxl::DoxygenXLinks::AddAnchorTitle ( const alib::String & anchorName,
const alib::String & anchorTitle,
const alib::String & sourceHint )

This method searches the anchor with the given name in all tag-files and adds the given title information.
One way to receive the title information is described in manual section... TODO: also ist das überhaupt noch drin? Jedenfalls funktionierte es ja mit den ALib-macro-groups gar nicht!

Note that all given strings are volatile and must be copied before stored.

Parameters
anchorNameThe name of the anchor to receive a title.
anchorTitleThe title to set.
sourceHintInformation about where the anchor title came from.

Definition at line 179 of file dxl.cpp.

◆ GetELDecoration()

void dxl::DoxygenXLinks::GetELDecoration ( Styles & styles,
bool isELREFAnchor,
alib::File & elLocation,
alib::String targetFilename,
alib::String targetAnchor,
int lineNo,
int colNo )

This is used with HTML-links that are set by Doxygen automatically (not explicitly by the documentation writer). It is determined which css classes are added to the anchor.

Parameters
stylesThe target styles struct to set.
isELREFAnchorDenotes whether an anchor with class "el" or "elref" was found.
elLocationThe HTML-file where the EL-anchor was found.
targetFilenameThe target HTML-file name portion of the anchor.
targetAnchorThe anchor portion of anchor.
lineNoThe line in elLocation. (Used for log-output.)
colNoThe column in elLocation. (Used for log-output.)

Definition at line 869 of file dxl.cpp.

◆ GetHTMLTree()

alib::FTree & dxl::DoxygenXLinks::GetHTMLTree ( )
inline
Returns
A reference the FTree instance holding the HTML-files .

Definition at line 349 of file dxl.hpp.

◆ GetHTMLTreeLock()

alib::SharedLock & dxl::DoxygenXLinks::GetHTMLTreeLock ( )
inline
Returns
The mutex assigned to the shared FTree holding the HTML-files.

Definition at line 352 of file dxl.hpp.

◆ GetSourceTree()

alib::FTree & dxl::DoxygenXLinks::GetSourceTree ( )
inline
Returns
A reference the FTree instance holding the sources.

Definition at line 343 of file dxl.hpp.

◆ GetSourceTreeLock()

alib::SharedLock & dxl::DoxygenXLinks::GetSourceTreeLock ( )
inline
Returns
The mutex assigned to the shared FTree.

Definition at line 346 of file dxl.hpp.

◆ GetXLink()

XLink * dxl::DoxygenXLinks::GetXLink ( alib::String & searchString,
const alib::files::File & htmlFile )

This is the central search method of this project, called by the class HTMLReplacer. While most of the search-logic is located in the method Search, this method is responsible for the creation of creating and hashing XLink objects and for collecting erroneous links.

Parameters
searchStringThe string found in the HTML file to search for.
htmlFileThe HTML file where this link is currently found. This is used to resolve local versions.
Returns
The XLink object. If its method IsResolved returns false, no target information is set, and no replacement must happen by the caller.

Definition at line 662 of file dxl.cpp.

◆ listLinks()

void dxl::DoxygenXLinks::listLinks ( const alib::String & expressionString,
const alib::String & format )
protected

Writes all links that are filtered by the given expression.

Parameters
expressionStringThe filter expression.
formatThe output format.

Definition at line 1166 of file dxl.cpp.

◆ RegisterXLink()

XLink * dxl::DoxygenXLinks::RegisterXLink ( alib::String & searchString)

This method stores a link in the XLinkMap but does not resolve it, yet. It is called by the SourceLocationFinder.

Parameters
searchStringThe string found in the HTML file to search for.
Returns
The XLink object.

Definition at line 645 of file dxl.cpp.

◆ Run()

void dxl::DoxygenXLinks::Run ( )

The main method of this main class of project DoxygenXLinks.

--— multithreading starts here -—

Definition at line 458 of file dxl.cpp.

◆ scanHTMLFiles()

void dxl::DoxygenXLinks::scanHTMLFiles ( )
protected

Scans the HTML input file tree.

Scan parameters used when scanning the HTML-input-files, as well as the source files.

Definition at line 205 of file dxl.cpp.

◆ scanReplSrcFiles()

void dxl::DoxygenXLinks::scanReplSrcFiles ( const alib::String & folder)
protected

Scans the replacement-source folders.

Parameters
folderThe directory to search copies of sources.

Definition at line 378 of file dxl.cpp.

◆ scanSrcFiles()

void dxl::DoxygenXLinks::scanSrcFiles ( )
protected

Scans the source files input. This is mainly needed to add "clickable" output on erroneous links. But over time, more features started depending on the availability of the sources.

Definition at line 294 of file dxl.cpp.

◆ schduleHTMLReplacers()

void dxl::DoxygenXLinks::schduleHTMLReplacers ( )
protected

Launches the HTMLReplacer jobs on the HTML-file tree.

Definition at line 255 of file dxl.cpp.

◆ schduleSourceReplacers()

void dxl::DoxygenXLinks::schduleSourceReplacers ( const alib::String & folder)
protected

Launches the SourceReplacer jobs on the source-file tree.

Parameters
folderThe directory to search copies of sources. (Only used for log-output here.)

Definition at line 419 of file dxl.cpp.

◆ scheduleSrcScanners()

void dxl::DoxygenXLinks::scheduleSrcScanners ( )
protected

Launches the SourceLocationFinder jobs on the source-file tree.

Definition at line 343 of file dxl.cpp.

◆ tryResolveHTMLTargetFile()

void dxl::DoxygenXLinks::tryResolveHTMLTargetFile ( XLink & xLink)
protected

Implements a special feature: Files not found in doxygen tag-files, might still have an HTML-file containing its source. Such files are named "XYZ_source.html". This method is called if an XLink to a file cannon not be resolved otherwise.

Parameters
xLinkThe XLink with the unresolved target file.

Definition at line 1560 of file dxl.cpp.

◆ writeErrors()

void dxl::DoxygenXLinks::writeErrors ( )
protected

Writes the non-resolved and ambiguous src links in an ordered fashion.

Definition at line 1031 of file dxl.cpp.

◆ writeStatistics()

void dxl::DoxygenXLinks::writeStatistics ( )
protected

Writes some statistics. If verbose is off, then just one line with the number of links in each category is given. Reads Variable STATISTICS

Definition at line 1393 of file dxl.cpp.

◆ writeXLinksInHTMLNotInSource()

void dxl::DoxygenXLinks::writeXLinksInHTMLNotInSource ( )
protected

This should not write any output. If so, it indicates that the source and html parsers detect different link contents.

Definition at line 1351 of file dxl.cpp.

◆ writeXLinksInSourceNotInHTML()

void dxl::DoxygenXLinks::writeXLinksInSourceNotInHTML ( )
protected

Writes links found in sources which were not found in the HTML files. This might happen if doxygen was not run properly.

Definition at line 1307 of file dxl.cpp.


The documentation for this class was generated from the following files: