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))
431 template<
typename TGT>
432 requires std::derived_from<TGT, Target>
433 const TGT*
Cast()
const;
450 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)
Index(const alib::PathString &tagFilePath, const alib::String &baseURL, bool isMainTagFile)
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.
ConstCursorHandle GetHTMLFileEntity(const alib::FTFile &htmlFile)
int fileNameDotComponentsSize
The number of components in fileNameDotComponents.
void DumpTree(Node branch)
alib::PathString FilePath
The path to the doxygenTagFile.
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.
alib::PathString FileName
The base name component of FilePath.
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.
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
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
strings::TString< PathCharType > PathString
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)
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::PathString FilePath
The path to the doxygenTagFile.
alib::String parseAttr(const alib::String &attrName, bool isOptional=false)
alib::integer maxWidth
The maximum line width found.
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.