diff options
author | Charles.Lee <cheoljoo.lee@lge.com> | 2018-12-28 07:12:52 (GMT) |
---|---|---|
committer | Charles.Lee <cheoljoo.lee@lge.com> | 2018-12-28 07:12:52 (GMT) |
commit | c7a88a8fe29bd5bea22f5aa83175eebd20247125 (patch) | |
tree | a6a44dccd3122001e59fd53c87439877e5dbf260 /src/plantuml.h | |
parent | 756d8b203b67f3ab38f7d148794bb94175a064a7 (diff) | |
download | Doxygen-c7a88a8fe29bd5bea22f5aa83175eebd20247125.zip Doxygen-c7a88a8fe29bd5bea22f5aa83175eebd20247125.tar.gz Doxygen-c7a88a8fe29bd5bea22f5aa83175eebd20247125.tar.bz2 |
# Introduction
- this is doxygen documents.
- draw the plantuml
# Explanation how to process for FAST plantuml
```puml
@startuml
folder config.xml {
artifact PLANTUML_RUN_FAST
folder config.xml [
artifact xml
====
and style
]
}
folder debug.cpp {
artifact "Debug::Plantuml"
folder debug.h {
artifact "Plantuml=0x4000"
}
}
config.xml -down-> debug.cpp
debug.cpp -down-> docvisitor.cpp
folder docvisitor.cpp {
folder writePlantUMLSource {
folder writePlantUMLSource.old [
write plantuml file (inline_umlgraph_#.pu)
----
writePlantUMLFile()
generatePlantUMLOutput()
]
folder writePlantUMLSource.new [
write plantuml file (inline_umlgraph_#)
writePlantUMLFile()
generatePlantUMLOutput()
----
add PUML_Type as arguments
PlantumlManager::instance()->insert(generateType,puName,format,text);
]
writePlantUMLSource -down-> writePlantUMLSource.old : Original
writePlantUMLSource -down-> writePlantUMLSource.new : PLANTUML_RUN_FAST
}
artifact docbookvisitor.cpp
artifact htmldocvisitor.cpp
artifact latexdocvisitor.cpp
artifact rtfdocvisitor.cpp
artifact vhdldocgen.cpp
}
database PlantumlManager.DB [
static PlantumlManager *m_theInstance;
QDict< QList<QCString> > m_pngPlantumlFiles;
QDict< QList<QCString> > m_svgPlantumlFiles;
QDict< QList<QCString> > m_epsPlantumlFiles;
QDict< QCString > m_pngPlantumlContent;
QDict< QCString > m_svgPlantumlContent;
QDict< QCString > m_epsPlantumlContent;
]
writePlantUMLSource.new -down-> PlantumlManager.DB : PLANTUML_RUN_FAST
folder plantuml.cpp {
folder generatePlantUMLOutput.old [
run java for each inline_umlgraph_#.pu
]
folder generatePlantUMLOutput.new [
No run java for run once at the end of process
Just add image into list
]
writePlantUMLSource.old -down-> generatePlantUMLOutput.old : original
writePlantUMLSource.new -down-> generatePlantUMLOutput.new : PLANTUML_RUN_FAST
}
folder doxygen.cpp {
folder plantuml.h [
class PlantumlManager
]
}
folder plantuml.cpp {
folder PlantumlManager_run [
PlantumlManager::instance()->run();
- run java once at the last time of doxygen process like drawing dot graph
- read a inline_umlgraph_cache.pu
- if exist , reuse it.
- if not exist , add inline_umlgraph_type.pu
- save all plantuml into inline_umlgraph_cache.pu for caching or reusing next time.
- When we make inline_umlgraph_type.pu , we divide into 4 files for multi-processing.
- But , prcessing image count is less than 8 , we will use only one file.
]
}
plantuml.h -down-> writePlantUMLSource : PLANTUML_RUN_FAST
PlantumlManager.DB -down-> PlantumlManager_run : PLANTUML_RUN_FAST
@enduml
```
## cache
- QCString m_cachePlantumlAllContent; // = fileToString = readInputFile
// findScopePattern
// QCString.find contains
- instance() -> read cache file
- writePlantULMSource() -> compare the text with cache contents
- if matched , pass.
- if not matched , add it.
- add text to current plantuml
- run() -> save current plantuml into cache file
## todo list
- done
- html example
- cache
- ing
- multiple thread : divide into several files before running java. (already know the count)
- epstopdf run : change the code like the java run
Diffstat (limited to 'src/plantuml.h')
-rw-r--r-- | src/plantuml.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/plantuml.h b/src/plantuml.h index 815bca9..0f256d2 100644 --- a/src/plantuml.h +++ b/src/plantuml.h @@ -19,6 +19,10 @@ #include <qdict.h> #include <qlist.h> +#define CACHE_FILENAME "inline_umlgraph_cache_all.pu" +#define DIVIDE_COUNT 4 +#define MIN_PLANTUML_COUNT 8 + class QCString; /** Plant UML output image formats */ @@ -54,14 +58,16 @@ class PlantumlManager void print(QDict< QList <QCString> > &PlantumlFiles); void addPlantumlContent(QDict< QCString > &PlantumlContent,const QCString key , const QCString &puContent); void print(QDict< QCString > &PlantumlContent); - void runPlantumlContent(QDict< QList <QCString> > &PlantumlFiles,QDict< QCString > &PlantumlContent, const char *type); + void runPlantumlContent(QDict< QList <QCString> > &PlantumlFiles,QDict< QCString > &PlantumlContent, PlantUMLOutputFormat format); static PlantumlManager *m_theInstance; QDict< QList<QCString> > m_pngPlantumlFiles; QDict< QList<QCString> > m_svgPlantumlFiles; QDict< QList<QCString> > m_epsPlantumlFiles; - QDict< QCString > m_pngPlantumlContent; + QDict< QCString > m_pngPlantumlContent; // use circular queue for using multi-proecessor (multi threading) QDict< QCString > m_svgPlantumlContent; QDict< QCString > m_epsPlantumlContent; + QCString m_cachedPlantumlAllContent; // read from CACHE_FILENAME file + QCString m_currentPlantumlAllContent; // processing plantuml then write it into CACHE_FILENAME to reuse the next time as cache information }; #endif |