Как отобразить диаграмму сотрудничества в Doxygen только для объектов / классов, связанных с определенным групповым тегом - PullRequest
0 голосов
/ 18 октября 2019

Я создал файл уценки как часть проекта c ++, предназначенного для описания определенных функций в проекте.

В этом файле уценки я определил группу с помощью '\ defgroup myGroup Explanation of group'

Я также пометил все объекты, связанные с этой группой, добавив тег \ ingroup для рассматриваемой группы.

Вопрос в том, как отобразить диаграммы UML только для контекста для этой конкретной группы в подробном разделе модуля для этой функции?

Я прочитал документацию по Doxygen и ненашел любую информацию о том, как определить границы контекста группы для рендеринга определенной группы объектов / классов с использованием graphviz.

#include <string>
#include <iostream>


/**
 * @ingroup markingsgroup
 * @brief This class defines a base class
 */
class BaseClass
{
  public:

    BaseClass() {}

    virtual bool getStatus(void) const = 0;
    virtual void setStatus(const bool status) = 0;
};

/**
 * @ingroup markingsgroup
 * This class defines Class1
 */
class Class1 : public BaseClass
{
  public:

    Class1() {}

    bool getStatus() const
    {
      return m_status;
    }

    void setStatus(const bool status)
    {
      m_status = status;
    }

    private:
    bool m_status;
};

/**
 * @ingroup markingsgroup
 * This class defines a Class2
 */
class Class2 : public BaseClass

{
  public:

    Class2() {}

    bool getStatus() const
    {
      return m_status;
    }
    void setStatus(const bool status)
    {
      m_status = status;
    }

  private:
  bool m_status;

};

/**
 * @ingroup markingsgroup
 * @brief Main function
 */
int main(int argc, char *argv[])
{
  Class1 myClass1;
  Class2 myClass2;

  myClass1.setStatus(true);

  myClass2.setStatus(myClass1.getStatus());

  std::cout << "Class1: " << myClass1.getStatus() << " Class2: " << myClass2.getStatus() << std::endl;
}

Doxyfile изменяет форму по умолчанию:

 PROJECT_NAME = "My Project"
 PROJECT_NAME = "Marking Project"
 OUTPUT_DIRECTORY = /home/fblidner/doxgentest/documentation
 EXTRACT_ALL = YES
 EXTRACT_PRIVATE = YES
 EXTRACT_PACKAGE = YES
 EXTRACT_STATIC = YES
 EXTRACT_LOCAL_METHODS = YES
 INPUT = project
 RECURSIVE = YES
 GENERATE_XML = YES
 XML_PROGRAMLISTING = NO
 UML_LOOK = YES
 CALLER_GRAPH = YES
 PLANTUML_JAR_PATH = /home/fblidner/puppet-manifests/devvm/files/generated/plantuml.jar
 MAX_DOT_GRAPH_DEPTH = 10 
 HAVE_DOT = YES
 CALLER_GRAPH = YES
...