Skip to content

include/Doxybook/Doxygen.hpp

Namespaces

Name
Doxybook2

Classes

Name
classDoxybook2::Doxygen

Source code

cpp
#pragma once
#include <unordered_map>
#include <string>
#include "Node.hpp"

namespace Doxybook2 {
    class TextPrinter;

    class Doxygen {
    public:
        explicit Doxygen(const Config& config);
        virtual ~Doxygen() = default;

        void load(const std::string& inputDir);
        void finalize(const TextPrinter& plainPrinter, const TextPrinter& markdownPrinter);

        const Node& getIndex() const {
            return *index;
        }

        NodePtr find(const std::string& refid) const;

        const NodeCacheMap& getCache() const {
            return cache;
        }
    private:
        typedef std::unordered_multimap<std::string, std::string> KindRefidMap;

        KindRefidMap getIndexKinds(const std::string& inputDir) const;
        void getIndexCache(NodeCacheMap& cache, const NodePtr& node) const;
        void finalizeRecursively(const TextPrinter& plainPrinter,
                                 const TextPrinter& markdownPrinter,
                                 const NodePtr& node);
        void updateGroupPointers(const NodePtr& node);

        const Config& config;
        // The root object that holds everything (index.xml)
        NodePtr index;
        NodeCacheMap cache;
    };
}

Updated on 2026-05-17 at 13:22:38 +0000

Built with VitePress