20#define TEST_CONSTANT 5
42 alib::containers::StringTreeNamesAlloc<> > {
43 friend class DoxygenXLinks;
70 return std::hash<alib::String>()(key.
file)
71 ^ std::hash<alib::String>()(key.
anchor);
90 std::hash<alib::String>,
91 std::equal_to<const alib::String>,
92 alib::lang::Caching::Disabled,
100 std::equal_to<AnchorKey>,
131 return node == other.node
132 && tree == other.tree;
148 alib::lang::CurrentData::Clear )
const {
149 alib::integer prevLength= targetData == alib::lang::CurrentData::Keep
163 Node& parent )
const {
210 template<
typename TGT,
typename TCheck= alib::CHK>
211 requires std::derived_from<TGT, dxl::Target>
350 if (
line.Substring(1).StartsWith(tagName))
430 template<
typename TGT>
431 requires std::derived_from<TGT, Target>
432 const TGT*
Cast()
const;
449 bool isIndirectByInheritance,
bool isIndirectByTypeDef );
477 #if ALIB_DEBUG_CRITICAL_SECTIONS
542template<
typename TGT,
typename TCheck= alib::CHK>
543requires std::derived_from<TGT, Target>
546template<
typename TGT>
547requires std::derived_from<TGT, Target>
strings::TAString< typename cmTree::CharacterType, lang::HeapAllocator > & AssemblePath(strings::TAString< typename cmTree::CharacterType > &targetString, const TCursor< true > &parent, lang::CurrentData targetData=lang::CurrentData::Clear) const
const NameType & Name() const
StringTree(AllocatorType &allocator, CharacterType pathSeparator)
ConstCursor ImportCursor(ConstCursorHandle handle) const
constexpr integer Length() const
TString< TChar > ConsumeToken(TChar separator=',', lang::Inclusion includeSeparator=lang::Inclusion::Include)
alib::system::PathString FilePath
The path to the doxygenTagFile.
ConstCursorHandle GetHTMLFileEntity(const alib::File &htmlFile)
alib::MonoAllocator ma
The allocator used for the parent #"StringTree" and for the hashtable in the field map.
void dedupGroupEntries(alib::StdVectorMA< SearchResult > &targets)
void Search(XLink &xLink)
void DbgCriticalSectionCheck(alib::lang::Switch sWitch)
alib::Ticks::Duration LoadTime
A timestamp set when loaded.
alib::containers::HashMap< alib::MonoAllocator, const alib::String &, CursorHandle, std::hash< alib::String >, std::equal_to< const alib::String >, alib::lang::Caching::Disabled, alib::Recycling::None > fileMap
Maps HTML-files found to their corresponding tree nodes.
const alib::String & BaseURL
The URL of the HTML-output created with this tag-file.
int fileNameDotComponentsSize
The number of components in fileNameDotComponents.
void DumpTree(Node branch)
alib::system::PathString FileName
The base name component of FilePath.
void Load()
Loads the tag-file and creates the index.
void ReplaceToTreeSeparator(alib::AString &buffer, Target::Kinds kind, alib::integer startPos=0)
alib::containers::HashMap< alib::MonoAllocator, AnchorKey, CursorHandle, AnchorKey::Hash, std::equal_to< AnchorKey >, alib::lang::Caching::Enabled > anchorMap
Maps HTML-files found to their corresponding tree nodes.
void ReplaceFromTreeSeparator(alib::AString &buffer, Target::Kinds kind, alib::integer startPos=0)
void searchFile(XLink &xLink)
void evaluateEntity(XLink &xLink, Node node, bool isIndirectByInheritance, bool isIndirectByTypeDef)
void loadTagFile()
Loads the tag-file. This is called by Load.
Node ImportNode(CursorHandle handle)
alib::containers::HashMap< alib::MonoAllocator, alib::String, CursorHandle > entityMap
bool ScopeHintMatch(Node entry, XLink &searchLink)
int StatCtdLines
Statistics on the number of lines in the tag-file.
Target::KindStats KindStats
Statistics on the number of entities found per kind in #"Target::Kinds;2".
StringTree TreeType
The type of the string tree that holds the tag-file.
Index(const alib::system::PathString &tagFilePath, const alib::String &baseURL, bool isMainTagFile)
alib::String fileNameDotComponents[10]
bool IsA(Kinds aKind) const
alib::String HTMLFile
The HTML file that this target links to (or into).
Kinds
Enumerates the kinds of compounds found in a the Doxygen tagfile.
int LineNo
The line number in the Doxygen tag-file where this entity is defined.
HashTable< TAllocator, TPairDescriptor< TKey, TMapped >, THash, TEqual, THashCaching, TRecycling > HashMap
strings::TString< PathCharType > PathString
monomem::TMonoAllocator< lang::HeapAllocator > MonoAllocator
threads::SharedLock SharedLock
constexpr String NULL_STRING
strings::compatibility::std::IStreamReader IStreamReader
containers::List< T, MonoAllocator, TRecycling > ListMA
strings::TString< character > String
strings::TSubstring< character > Substring
LocalString< 2048 > String2K
strings::TAString< character, lang::HeapAllocator > AString
std::vector< T, StdMA< T > > StdVectorMA
LocalString< 32 > String32
LocalString< 512 > String512
bool FindInheritedMembers
Denotes whether to find inherited members..
const TGT * Cast(const Index::Node &node)
HashTable< TAllocator, typename NodeKey::ValueDescriptor, typename NodeKey::Hash, typename NodeKey::EqualTo, lang::Caching::Enabled, TRecycling > nodeTable
Hash functor for AnchorKey.
std::size_t operator()(const AnchorKey &key) const
A pod-like struct providing the key for the hash table found in the field #"Index::anchorMap;2".
const alib::String & anchor
The anchor name.
bool operator==(const AnchorKey &other) const
const alib::String & file
The HTML file name that the anchor is defined in.
The cursor type of the #"StringTree".
const alib::String & HTMLFile() const
bool operator==(const Node &other) const
alib::strings::TAString< cmTree::CharacterType, alib::lang::HeapAllocator > & Path(alib::strings::TAString< cmTree::CharacterType > &targetString, Node &parent) const
const Target * Target() const
alib::strings::TAString< cmTree::CharacterType, alib::lang::HeapAllocator > & Path(alib::strings::TAString< cmTree::CharacterType > &targetString, alib::lang::CurrentData targetData=alib::lang::CurrentData::Clear) const
bool operator!=(const Node &other) const
void ReplaceTarget(class Target *newTarget)
bool IsA(Target::Kinds kind) const
Target::Kinds Kind() const
Node()=default
Defaulted default constructor. Creates an invalid node.
alib::String nextTag(const alib::String &tagName)
alib::system::PathString FilePath
The path to the doxygenTagFile.
TGTMember * readMember(alib::String512 &key, Target::Kinds compoundKind)
todo: add parameter parent and if html file is the same, then re-use instead of allocation.
alib::IStreamReader & reader
A referenced to the ALib text file reader tool.
alib::Substring tagAttr
The current tag attributes. Set by parseTag.
Parser(Index &parent, alib::IStreamReader &pReader, const alib::String &pFilePath)
alib::lox::Verbosity verbosity
The log verbosity of the parser (used for performance optimization).
alib::ListMA< TGTDocAnchor * > actDocAnchors
Set by nextLine() in case it finds a <docanchor>.
alib::String getAttr(const alib::String &key)
void addDocAnchors(Cursor &parent)
alib::String tryTag(const alib::String &tagName)
alib::Substring line
A parser for the currently read line.
alib::MonoAllocator & ma
A referenced to the allocator of outer class Index.
alib::String allocNextTag(const alib::String &tagName)
alib::String allocTag(const alib::String &tagName)
int lineNo
The current line number when reading.
alib::String2K lineBuf
The buffer of the line currently read.
alib::String parseTag(const alib::String &tagName)
alib::String parseAttr(const alib::String &attrName, bool isOptional=false)
alib::integer maxWidth
The maximum line width found.
An entry in the vector of search results generated by the method Search.
int FunctionArgumentMatch
bool LinksToAScannedHTMLFile
Node Node
The cursor pointing to the result.
bool IsIndirectLinkToScannedHTMLSourceFile
Set if the method DoxygenXLinks::tryResolveHTMLTargetFile" is needed and succeeds.
bool IsIndirectByInheritance
Set if a member was found in a base type and not in the originally given one.
bool IsResolvedTypeDef
Set the XLink targets a type-definition and requested to resolve that.
alib::String HTMLAnchor
The HTML anchor hash. Set only with members.