34#define MAP_CMD "cmapx" 
   99    auto insobj = std::make_unique<DotRunner>(absDotName, md5Hash);
 
  106    if (md5Hash != runit->second->getMd5Hash())
 
  108      err(
"md5 hash does not match for two different runs of {} !\n", absDotName);
 
  110    rv = runit->second.get();
 
 
  125  return &(rv.first->second);
 
 
  132  if (numDotRuns+numFilePatchers>1)
 
  136      msg(
"Generating dot graphs in single threaded mode...\n");
 
  140      msg(
"Generating dot graphs using {:d} parallel threads...\n",
Config_getInt(DOT_NUM_THREADS));
 
  172      msg(
"Running dot for graph {}/{}\n",prev,numDotRuns);
 
  179    std::vector< std::future<void> > results;
 
  183      auto process = [runner]()
 
  187      results.emplace_back(
m_workers.queue(process));
 
  189    for (
auto &f : results)
 
  192      msg(
"Running dot for graph {}/{}\n",prev,numDotRuns);
 
  209    if (fp.second.isSVGFile())
 
  211      msg(
"Patching output file {}/{}\n",i,numFilePatchers);
 
  212      if (!fp.second.run()) 
return FALSE;
 
  218    if (!fp.second.isSVGFile())
 
  220      msg(
"Patching output file {}/{}\n",i,numFilePatchers);
 
  221      if (!fp.second.run()) 
return FALSE;
 
 
  232                           const QCString &srcFile,
int srcLine)
 
  237    term(
"Output dir {} does not exist!\n",outDir);
 
  241  QCString imgName = outFile+
"."+imgExt;
 
  254      dotRun.
addJob(
"pdf",absOutFile+
".pdf",srcFile,srcLine);
 
  258      dotRun.
addJob(
"ps",absOutFile+
".eps",srcFile,srcLine);
 
 
  286                            const QCString &context,
int graphId,
 
  287                            const QCString &srcFile,
int srcLine)
 
  293    term(
"Output dir {} does not exist!\n",outDir);
 
  298  QCString imgName = baseName+
"."+imgExt;
 
  311    QCString svgName = outDir+
"/"+baseName+
".svg";
 
  320    t << 
"<img src=\"" << relPath << imgName << 
"\" alt=\"" 
  321      << imgName << 
"\" border=\"0\" usemap=\"#" << mapName << 
"\"/>\n";
 
  325      t << 
"<map name=\"" << mapName << 
"\" id=\"" << mapName << 
"\">";
 
 
Class representing a directory in the file system.
std::string absPath() const
bool remove(const std::string &path, bool acceptsAbsPath=true) const
Helper class to insert a set of map file into an output file.
static bool convertMapFile(TextStream &t, const QCString &mapName, const QCString &relPath, bool urlOnly=FALSE, const QCString &context=QCString())
int addSVGConversion(const QCString &relPath, bool urlOnly, const QCString &context, bool zoomable, int graphId)
static bool writeSVGFigureLink(TextStream &out, const QCString &relPath, const QCString &baseName, const QCString &absImgName)
Check if a reference to a SVG figure can be written and do so if possible.
std::map< std::string, DotFilePatcher > m_filePatchers
DotFilePatcher * createFilePatcher(const QCString &fileName)
std::map< std::string, std::unique_ptr< DotRunner > > m_runners
static DotManager * instance()
DotRunner * createRunner(const QCString &absDotName, const QCString &md5Hash)
Helper class to run dot from doxygen from multiple threads.
void preventCleanUp()
Prevent cleanup of the dot file (for user provided dot files).
void addJob(const QCString &format, const QCString &output, const QCString &srcFile, int srcLine)
Adds an additional job to the run.
bool run()
Runs dot for all jobs added.
static IndexList * indexList
This is an alternative implementation of QCString.
QCString & prepend(const char *s)
bool isEmpty() const
Returns TRUE iff the string is empty.
const std::string & str() const
Text streaming class that buffers data.
bool empty() const
Returns true iff the buffer is empty.
std::string str() const
Return the contents of the buffer as a std::string object.
#define Config_getInt(name)
#define Config_getEnumAsString(name)
#define Config_getBool(name)
#define Config_getString(name)
static void setDotFontPath(const QCString &path)
static QCString g_dotFontPath
static void unsetDotFontPath()
static std::mutex g_dotManagerMutex
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)
void writeDotGraphFromFile(const QCString &inFile, const QCString &outDir, const QCString &outFile, GraphOutputFormat format, const QCString &srcFile, int srcLine)
QCString pathListSeparator()
void setenv(const QCString &variable, const QCString &value)
void unsetenv(const QCString &variable)
QCString getenv(const QCString &variable)
Portable versions of functions that are platform dependent.
QCString getDotImageExtension()
A bunch of utility functions.