Doxygen
Loading...
Searching...
No Matches
dot.h
Go to the documentation of this file.
1/******************************************************************************
2 *
3 * Copyright (C) 1997-2019 by Dimitri van Heesch.
4 *
5 * Permission to use, copy, modify, and distribute this software and its
6 * documentation under the terms of the GNU General Public License is hereby
7 * granted. No representations are made about the suitability of this software
8 * for any purpose. It is provided "as is" without express or implied warranty.
9 * See the GNU General Public License for more details.
10 *
11 * Documents produced by Doxygen are derivative works derived from the
12 * input used in their production; they are not affected by this license.
13 *
14 */
15
16#ifndef DOT_H
17#define DOT_H
18
19#include <map>
20
21#include "threadpool.h"
22#include "qcstring.h"
23#include "dotgraph.h" // only for GraphOutputFormat
24#include "dotfilepatcher.h"
25#include "dotrunner.h"
26#include "doxygen.h"
27#include "construct.h"
28
29class DotRunner;
30class DotRunnerQueue;
31class TextStream;
32
33/** Singleton that manages parallel dot invocations and patching files for embedding image maps */
35{
36 public:
37 static DotManager *instance();
38 DotRunner* createRunner(const QCString& absDotName, const QCString& md5Hash);
39 DotFilePatcher *createFilePatcher(const QCString &fileName);
40 bool run();
41
42 private:
43 DotManager();
44 virtual ~DotManager();
46
47 std::map<std::string, std::unique_ptr<DotRunner> > m_runners;
48 std::map<std::string, DotFilePatcher> m_filePatchers;
49 ThreadPool m_workers;
50};
51
52void writeDotGraphFromFile(const QCString &inFile,const QCString &outDir,
53 const QCString &outFile,GraphOutputFormat format,
54 const QCString &srcFile,int srcLine);
55void writeDotImageMapFromFile(TextStream &t,
56 const QCString &inFile, const QCString& outDir,
57 const QCString &relPath,const QCString& baseName,
58 const QCString &context,int graphId,
59 const QCString &srcFile,int srcLine);
60
61#endif
DotManager()
Definition dot.cpp:84
std::map< std::string, DotFilePatcher > m_filePatchers
Definition dot.h:48
DotFilePatcher * createFilePatcher(const QCString &fileName)
Definition dot.cpp:116
bool run()
Definition dot.cpp:128
std::map< std::string, std::unique_ptr< DotRunner > > m_runners
Definition dot.h:47
ThreadPool m_workers
Definition dot.h:49
virtual ~DotManager()
Definition dot.cpp:88
static DotManager * instance()
Definition dot.cpp:78
DotRunner * createRunner(const QCString &absDotName, const QCString &md5Hash)
Definition dot.cpp:92
Helper class to run dot from doxygen from multiple threads.
Definition dotrunner.h:31
Text streaming class that buffers data.
Definition textstream.h:36
#define NON_COPYABLE(cls)
Macro to help implementing the rule of 5 for a non-copyable & movable class.
Definition construct.h:37
void writeDotImageMapFromFile(TextStream &t, const QCString &inFile, const QCString &outDir, const QCString &relPath, const QCString &baseName, const QCString &context, int graphId, const QCString &srcFile, int srcLine)
Definition dot.cpp:283
void writeDotGraphFromFile(const QCString &inFile, const QCString &outDir, const QCString &outFile, GraphOutputFormat format, const QCString &srcFile, int srcLine)
Definition dot.cpp:230
GraphOutputFormat
Definition dotgraph.h:29