67 template<
class... Ts,
class... As>
68 void foreach(
void (
IndexIntf::*methodPtr)(Ts...),As&&... args)
70 for (const auto &intf : m_indices)
72 (intf.get()->*methodPtr)(std::forward<As>(args)...);
76 template<
class... Ts,
class... As>
79 std::lock_guard<std::mutex> lock(
m_mutex);
82 (intf.get()->*methodPtr)(std::forward<As>(args)...);
96 template<
class T,
class... As>
98 {
m_indices.push_back(std::make_unique<T>(std::forward<As>(args)...)); }
113 const DString &file,
const DString &anchor,
bool separateIndex=
false,
bool addToNavIndex=
false,
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
The common base class of all entity definitions found in the sources.
Abstract interface for index generators.
virtual void initialize()=0
virtual void addStyleSheetFile(const DString &)=0
virtual void decContentsDepth()=0
virtual void addIndexItem(const Definition *context, const MemberDef *md, const DString §ionAnchor, const DString &title)=0
virtual void finalize()=0
virtual void incContentsDepth()=0
virtual void addContentsItem(bool isDir, const DString &name, const DString &ref, const DString &file, const DString &anchor, bool separateIndex, bool addToNavIndex, const Definition *def, const DString &nameAsHtml)=0
virtual void addImageFile(const DString &)=0
virtual void addIndexFile(const DString &name)=0
A list of index interfaces.
std::unique_ptr< IndexIntf > IndexPtr
void addIndexFile(const DString &name)
void addIndexItem(const Definition *context, const MemberDef *md, const DString §ionAnchor=DString(), const DString &title=DString())
std::vector< IndexPtr > m_indices
void addIndex(As &&... args)
Add an index generator to the list, using a syntax similar to std::make_unique<T>().
void addContentsItem(bool isDir, const DString &name, const DString &ref, const DString &file, const DString &anchor, bool separateIndex=false, bool addToNavIndex=false, const Definition *def=nullptr, const DString &nameAsHtml=DString())
void enable()
enable the indices
void foreach_locked(void(IndexIntf::*methodPtr)(Ts...), As &&... args)
void addImageFile(const DString &name)
void addStyleSheetFile(const DString &name)
void disable()
disable the indices
A model of a class/file/namespace member symbol.
Class representing a list of output generators that are written to in parallel.
#define ABSTRACT_BASE_CLASS(cls)
Macro to implement rule of 5 for an abstract base class.