Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
THtml.h
Go to the documentation of this file.
1// @(#)root/html:$Id$
2// Author: Nenad Buncic 18/10/95
3
4/*************************************************************************
5 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#ifndef ROOT_THtml
13#define ROOT_THtml
14
15
16////////////////////////////////////////////////////////////////////////////
17// //
18// THtml //
19// //
20// Html generates documentation for all ROOT classes //
21// using XHTML 1.0 transitional //
22// //
23////////////////////////////////////////////////////////////////////////////
24
25#include "THashList.h"
26
27#include "THashTable.h"
28
29#include "TExMap.h"
30
31#include "TROOT.h"
32
33#include <map>
34
35class TClass;
36class TClassDocInfo;
37class TGClient;
38class TVirtualMutex;
39
40class THtml: public TObject {
41public:
42 //______________________________________________________________
43 // Helper base class.
44 class THelperBase: public TObject {
45 public:
47 ~THelperBase() override;
48 void SetOwner(THtml* html);
49 THtml* GetOwner() const { return fHtml; }
50 private:
51 THtml* fHtml; // object owning the helper
52 ClassDefOverride(THelperBase, 0); // a helper object's base class
53 };
54
55 class TFileSysEntry;
56
57 //______________________________________________________________
58 // Helper class to translate between classes and their
59 // modules. Can be derived from and thus replaced by
60 // the user; see THtml::SetModuleDefinition().
62 public:
63 virtual bool GetModule(TClass* cl, TFileSysEntry* fse, TString& out_modulename) const;
64 ClassDefOverride(TModuleDefinition, 0); // helper class to determine a class's module
65 };
66
67 //______________________________________________________________
68 // Helper class to translate between classes and their
69 // filenames. Can be derived from and thus replaced by
70 // the user; see THtml::SetFileDefinition().
72 public:
73 virtual bool GetDeclFileName(const TClass* cl, TString& out_filename, TString& out_fsys,
74 TFileSysEntry** fse = 0) const;
75 virtual bool GetImplFileName(const TClass* cl, TString& out_filename, TString& out_fsys,
76 TFileSysEntry** fse = 0) const;
77 protected:
78 virtual bool GetFileName(const TClass* cl, bool decl, TString& out_filename, TString& out_fsys,
79 TFileSysEntry** fse = 0) const;
81
82 void SplitClassIntoDirFile(const TString& clname, TString& dir, TString& filename) const;
83 void NormalizePath(TString& path) const;
84 void ExpandSearchPath(TString& path) const;
85 ClassDefOverride(TFileDefinition, 0); // helper class to determine a class's source files
86 };
87
88 //______________________________________________________________
89 // Helper class to translate between file names and their
90 // version used for documentation. Can be derived from and thus
91 // replaced by the user; see THtml::SetPathDefinition().
93 public:
94 virtual bool GetMacroPath(const TString& module, TString& out_dir) const;
95 virtual bool GetIncludeAs(TClass* cl, TString& out_include_as) const;
96 virtual bool GetFileNameFromInclude(const char* included, TString& out_fsname) const;
97 virtual bool GetDocDir(const TString& module, TString& doc_dir) const;
98 protected:
99 ClassDefOverride(TPathDefinition, 0); // helper class to determine directory layouts
100 };
101
102 class TFileSysDir;
103 class TFileSysDB;
104 //______________________________________________________________
105 // Utility class representing a directory entry
106 class TFileSysEntry: public TObject {
107 public:
108 TFileSysEntry(const char* name, TFileSysDir* parent):
109 fName(name), fParent(parent), fLevel(parent ? parent->GetLevel() + 1 : 0) {}
110 ~TFileSysEntry() override
111 {
112 // Required since we overload TObject::Hash.
114 }
115 const char* GetName() const override { return fName; }
116 ULong_t Hash() const override { return fName.Hash(); }
117 virtual void GetFullName(TString& fullname, Bool_t asIncluded) const {
118 if (fParent) {
119 fParent->GetFullName(fullname, asIncluded);
120 if (fullname[0])
121 fullname += "/";
122 } else
123 fullname = "";
124 fullname += fName;
125 }
126
127 TFileSysDir* GetParent() const { return fParent; }
128 Int_t GetLevel() const { return fLevel; }
129 protected:
130 TString fName; // name of the element
131 TFileSysDir* fParent; // parent directory
132 Int_t fLevel; // level of directory
133 ClassDefOverride(TFileSysEntry, 0); // an entry of the local file system
134 };
135
136 //______________________________________________________________
137 // Utility class representing a directory
139 public:
140 TFileSysDir(const char* name, TFileSysDir* parent):
141 TFileSysEntry(name, parent)
142 { fFiles.SetOwner(); fDirs.SetOwner(); }
143 const TList* GetFiles() const { return &fFiles; }
144 const TList* GetSubDirs() const { return &fDirs; }
145
146 void Recurse(TFileSysDB* db, const char* path);
147
148 protected:
151 ClassDefOverride(TFileSysDir, 0); // an directory of the local file system
152 };
153
154 //______________________________________________________________
155 // Utility class representing a root directory as specified in
156 // THtml::GetInputPath()
157 class TFileSysRoot: public TFileSysDir {
158 public:
159 TFileSysRoot(const char* name, TFileSysDB* parent):
160 TFileSysDir(name, parent) {}
161 void GetFullName(TString& fullname, Bool_t asIncluded) const override {
162 // prepend directory part of THtml::GetInputPath() only
163 // if !asIncluded
164 fullname = "";
165 if (!asIncluded)
166 fullname += fName;
167 }
168
169 ClassDefOverride(TFileSysRoot, 0); // an root directory of the local file system
170 };
171
172 //______________________________________________________________
173 // Utility class representing a directory
174 class TFileSysDB: public TFileSysDir {
175 public:
176 TFileSysDB(const char* path, const char* ignorePath, Int_t maxdirlevel):
177 TFileSysDir(path, 0), fEntries(1009, 5), fIgnorePath(ignorePath), fMaxLevel(maxdirlevel)
178 { Fill(); }
179
180 TExMap& GetMapIno() { return fMapIno; }
182 const TString& GetIgnore() const { return fIgnorePath; }
183 Int_t GetMaxLevel() const { return fMaxLevel; }
184
185 protected:
186 void Fill();
187
188 private:
189 TExMap fMapIno; // inode to TFileSysDir map, to detect softlinks
190 THashTable fEntries; // hash map of all filenames without paths
191 TString fIgnorePath; // regexp of path to ignore while building entry tree
192 Int_t fMaxLevel; // maximum level of directory nesting
193 ClassDefOverride(TFileSysDB, 0); // instance of file system data
194 };
195
196
197 //______________________________________________________________
198 // Configuration holder for path related settings
199 struct PathInfo_t {
204 };
205
208#ifdef R__WIN32
209 fInputPath("./;src/;include/"),
210#else
211 fInputPath("./:src/:include/"),
212#endif
213 fIncludePath("include"),
214 // .whatever implicitly ignored, no need to add .svn!
215 fIgnorePath("\\b(include|CVS|test|tutorials|doc|lib|python|demo|freetype-|gdk|libAfterImage|etc|config|build|bin)\\b"),
216 fDocPath("doc"),
217 fMacroPath("macros:."),
218 fOutputDir("htmldoc") {}
219
220 EDotAccess fFoundDot; // whether dot is accessible
221 TString fInputPath; // directories to look for classes; prepended to Decl/ImplFileName()
222 TString fIncludePath; // directory prefixes (":" delimited) to remove when quoting include files
223 TString fIgnorePath; // regexp pattern for directories to ignore ("\b(CVS|\.svn)\b") for ROOT
224 TString fDocPath; // subdir to check for module documentation ("doc" for ROOT)
225 TString fMacroPath; // subdir of fDocPath for macros run via the Begin/End Macro directive; ("macros" for ROOT)
226 TString fDotDir; // directory of GraphViz's dot binary
227 TString fEtcDir; // directory containing auxiliary files
228 TString fOutputDir; // output directory
229 };
230
231
232public:
234 kNoOutput, // do not run the source, do not show its output
235 kInterpretedOutput, // interpret the source and show output
236 kCompiledOutput, // run the source through ACLiC and show output
237 kForceOutput = 0x10, // re-generate the output files (canvas PNGs)
238 kSeparateProcessOutput = 0x20 // run the script in a separate process
239 };
240
241 THtml();
242 ~THtml() override;
243
244 static void LoadAllLibs();
245
246 // Functions to generate documentation
247 void Convert(const char *filename, const char *title,
248 const char *dirname = "", const char *relpath="../",
249 Int_t includeOutput = kNoOutput,
250 const char* context = "");
251 void CreateHierarchy();
252 void MakeAll(Bool_t force=kFALSE, const char *filter="*",
253 int numthreads = 1);
254 void MakeClass(const char *className, Bool_t force=kFALSE);
255 void MakeIndex(const char *filter="*");
256 void MakeTree(const char *className, Bool_t force=kFALSE);
257
258 // Configuration setters
259 void SetModuleDefinition(const TModuleDefinition& md);
260 void SetFileDefinition(const TFileDefinition& fd);
261 void SetPathDefinition(const TPathDefinition& pd);
262 void SetProductName(const char* product) { fProductName = product; }
263 void SetOutputDir(const char *dir);
264 void SetInputDir(const char *dir);
265 void SetSourceDir(const char *dir) { SetInputDir(dir); }
266 void SetIncludePath(const char* dir) { fPathInfo.fIncludePath = dir; }
267 void SetEtcDir(const char* dir) { fPathInfo.fEtcDir = dir; }
268 void SetDocPath(const char* path) { fPathInfo.fDocPath = path; }
270 void SetRootURL(const char* url) { fLinkInfo.fROOTURL = url; }
271 void SetLibURL(const char* lib, const char* url) { fLinkInfo.fLibURLs[lib] = url; }
272 void SetXwho(const char *xwho) { fLinkInfo.fXwho = xwho; }
273 void SetMacroPath(const char* path) {fPathInfo.fMacroPath = path;}
274 void AddMacroPath(const char* path);
276 void SetClassDocTag(const char* tag) { fDocSyntax.fClassDocTag = tag; }
277 void SetAuthorTag(const char* tag) { fDocSyntax.fAuthorTag = tag; }
278 void SetLastUpdateTag(const char* tag) { fDocSyntax.fLastUpdateTag = tag; }
279 void SetCopyrightTag(const char* tag) { fDocSyntax.fCopyrightTag = tag; }
280 void SetHeader(const char* file) { fOutputStyle.fHeader = file; }
281 void SetFooter(const char* file) { fOutputStyle.fFooter = file; }
282 void SetHomepage(const char* url) { fLinkInfo.fHomepage = url; }
283 void SetSearchStemURL(const char* url) { fLinkInfo.fSearchStemURL = url; }
284 void SetSearchEngine(const char* url) { fLinkInfo.fSearchEngine = url; }
285 void SetViewCVS(const char* url) { fLinkInfo.fViewCVS = url; }
286 void SetWikiURL(const char* url) { fLinkInfo.fWikiURL = url; }
287 void SetCharset(const char* charset) { fOutputStyle.fCharset = charset; }
288 void SetDocStyle(const char* style) { fDocSyntax.fDocStyle = style; }
289
290 // Configuration getters
291 const TModuleDefinition& GetModuleDefinition() const;
292 const TFileDefinition& GetFileDefinition() const;
293 const TPathDefinition& GetPathDefinition() const;
294 const TString& GetProductName() const { return fProductName; }
295 const TString& GetInputPath() const { return fPathInfo.fInputPath; }
296 const TString& GetOutputDir(Bool_t createDir = kTRUE) const;
297 virtual const char* GetEtcDir() const;
298 const TString& GetModuleDocPath() const { return fPathInfo.fDocPath; }
299 const TString& GetDotDir() const { return fPathInfo.fDotDir; }
300 const char* GetURL(const char* lib = 0) const;
301 const TString& GetXwho() const { return fLinkInfo.fXwho; }
302 const TString& GetMacroPath() const { return fPathInfo.fMacroPath; }
303 const char* GetCounterFormat() const { return fCounterFormat; }
305 const TString& GetAuthorTag() const { return fDocSyntax.fAuthorTag; }
308 const TString& GetHeader() const { return fOutputStyle.fHeader; }
309 const TString& GetFooter() const { return fOutputStyle.fFooter; }
310 const TString& GetHomepage() const { return fLinkInfo.fHomepage; }
313 const TString& GetViewCVS() const { return fLinkInfo.fViewCVS; }
314 const TString& GetWikiURL() const { return fLinkInfo.fWikiURL; }
315 const TString& GetCharset() const { return fOutputStyle.fCharset; }
316 const TString& GetDocStyle() const { return fDocSyntax.fDocStyle; }
317
318 // Functions that should only be used by TDocOutput etc.
319 Bool_t CopyFileFromEtcDir(const char* filename) const;
320 virtual void CreateAuxiliaryFiles() const;
321 virtual TClass* GetClass(const char *name) const;
322 const char* ShortType(const char *name) const;
323 const char* GetCounter() const { return fCounter; }
324 void GetModuleMacroPath(const TString& module, TString& out_path) const { GetPathDefinition().GetMacroPath(module, out_path); }
325 virtual bool GetDeclFileName(TClass* cl, Bool_t filesys, TString& out_name) const;
326 void GetDerivedClasses(TClass* cl, std::map<TClass*, Int_t>& derived) const;
327 static const char* GetDirDelimiter() {
328 // ";" on windows, ":" everywhere else
329#ifdef R__WIN32
330 return ";";
331#else
332 return ":";
333#endif
334 }
335 virtual bool GetImplFileName(TClass* cl, Bool_t filesys, TString& out_name) const;
336 virtual void GetHtmlFileName(TClass *classPtr, TString& filename) const;
337 virtual const char* GetHtmlFileName(const char* classname) const;
340 const TList* GetListOfModules() const { return &fDocEntityInfo.fModules; }
341 const TList* GetListOfClasses() const { return &fDocEntityInfo.fClasses; }
344 virtual void GetModuleNameForClass(TString& module, TClass* cl) const;
345 const PathInfo_t& GetPathInfo() const { return fPathInfo; }
346 Bool_t HaveDot();
347 void HelperDeleted(THelperBase* who);
348 static Bool_t IsNamespace(const TClass*cl);
349 void SetDeclFileName(TClass* cl, const char* filename);
350 void SetFoundDot(Bool_t found = kTRUE);
351 void SetImplFileName(TClass* cl, const char* filename);
352 void SetBatch(Bool_t batch = kTRUE) { fBatch = batch; }
353 Bool_t IsBatch() const { return fBatch; }
354 // unused
355 void ReplaceSpecialChars(std::ostream&, const char*) {
356 Error("ReplaceSpecialChars",
357 "Removed, call TDocOutput::ReplaceSpecialChars() instead!"); }
358 void SetEscape(char /*esc*/ ='\\') {} // for backward comp
359
360protected:
361 struct DocSyntax_t {
362 TString fClassDocTag; // tag for class documentation
363 TString fAuthorTag; // tag for author
364 TString fLastUpdateTag; // tag for last update
365 TString fCopyrightTag; // tag for copyright
366 TString fDocStyle; // doc style (only "Doc++" has special treatment)
367 };
368
369 struct LinkInfo_t {
370 TString fXwho; // URL for name lookup
371 TString fROOTURL; // Root URL for ROOT's reference guide for libs that are not in fLibURLs
372 std::map<std::string, TString> fLibURLs; // URL for documentation of external libraries
373 TString fHomepage; // URL of homepage
374 TString fSearchStemURL; // URL stem used to build search URL
375 TString fSearchEngine; // link to search engine
376 TString fViewCVS; // link to ViewCVS; %f is replaced by the filename (no %f: it's appended)
377 TString fWikiURL; // URL stem of class's wiki page, %c replaced by mangled class name (no %c: appended)
378 };
379
381 TString fHeader; // header file name
382 TString fFooter; // footerer file name
383 TString fCharset; // Charset for doc pages
384 };
385
388 TString fClassFilter; // filter used for buidling known classes
389 THashList fClasses; // known classes
390 mutable THashList fShortClassNames; // class names with default template args replaced
391 THashList fModules; // known modules
392 THashList fLibDeps; // Library dependencies
393 };
394
395protected:
396 virtual void CreateJavascript() const;
397 virtual void CreateStyleSheet() const;
398 void CreateListOfTypes();
399 void CreateListOfClasses(const char* filter);
400 virtual bool GetDeclImplFileName(TClass* cl, bool filesys, bool decl, TString& out_name) const;
401 void MakeClass(void* cdi, Bool_t force=kFALSE);
403 void SetLocalFiles() const;
404
405 static void *MakeClassThreaded(void* info);
406
407protected:
408 TString fCounter; // counter string
409 TString fCounterFormat; // counter printf-like format
410 TString fProductName; // name of the product to document
411 TIter *fThreadedClassIter; // fClasses iterator for MakeClassThreaded
412 Int_t fThreadedClassCount; // counter of processed classes for MakeClassThreaded
413 TVirtualMutex *fMakeClassMutex; // Mutex for MakeClassThreaded
414 TGClient *fGClient; // gClient, cached and queried through CINT
415 DocSyntax_t fDocSyntax; // doc syntax configuration
416 LinkInfo_t fLinkInfo; // link (URL) configuration
417 OutputStyle_t fOutputStyle; // output style configuration
418 mutable PathInfo_t fPathInfo; // path configuration
419 DocEntityInfo_t fDocEntityInfo; // data for documented entities
420 mutable TPathDefinition *fPathDef; // object translating classes to module names
421 mutable TModuleDefinition *fModuleDef; // object translating classes to module names
422 mutable TFileDefinition* fFileDef; // object translating classes to file names
423 mutable TFileSysDB *fLocalFiles; // files found locally for a given source path
424 Bool_t fBatch; // Whether to enable GUI output
425
426 ClassDefOverride(THtml,0) //Convert class(es) into HTML file(s)
427};
428
430
431#endif
#define R__EXTERN
Definition DllImport.h:27
bool Bool_t
Definition RtypesCore.h:63
int Int_t
Definition RtypesCore.h:45
unsigned long ULong_t
Definition RtypesCore.h:55
constexpr Bool_t kFALSE
Definition RtypesCore.h:101
constexpr Bool_t kTRUE
Definition RtypesCore.h:100
#define ClassDefOverride(name, id)
Definition Rtypes.h:341
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char filename
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t format
Option_t Option_t style
char name[80]
Definition TGX11.cxx:110
R__EXTERN THtml * gHtml
Definition THtml.h:429
TClass instances represent classes, structs and namespaces in the ROOT type system.
Definition TClass.h:81
virtual void SetOwner(Bool_t enable=kTRUE)
Set whether this collection is the owner (enable==true) of its content.
This class stores a (key,value) pair using an external hash.
Definition TExMap.h:33
Window client.
Definition TGClient.h:37
THashList implements a hybrid collection class consisting of a hash table and a list to store TObject...
Definition THashList.h:34
THashTable implements a hash table to store TObject's.
Definition THashTable.h:35
TString MatchFileSysName(TString &filename, TFileSysEntry **fse=0) const
Find filename in the list of system files; return the system file name and change filename to the fil...
Definition THtml.cxx:308
virtual bool GetDeclFileName(const TClass *cl, TString &out_filename, TString &out_fsys, TFileSysEntry **fse=0) const
Determine cl's declaration file name.
Definition THtml.cxx:262
void NormalizePath(TString &path) const
Remove "/./" and collapse "/subdir/../" to "/".
Definition THtml.cxx:289
void SplitClassIntoDirFile(const TString &clname, TString &dir, TString &filename) const
Given a class name with a scope, split the class name into directory part and file name: A::B::C beco...
Definition THtml.cxx:234
virtual bool GetImplFileName(const TClass *cl, TString &out_filename, TString &out_fsys, TFileSysEntry **fse=0) const
Determine cl's implementation file name.
Definition THtml.cxx:279
virtual bool GetFileName(const TClass *cl, bool decl, TString &out_filename, TString &out_fsys, TFileSysEntry **fse=0) const
Common implementation for GetDeclFileName(), GetImplFileName()
Definition THtml.cxx:338
void ExpandSearchPath(TString &path) const
Create all permutations of path and THtml's input path: path being PP/ and THtml's input being ....
Definition THtml.cxx:206
TExMap & GetMapIno()
Definition THtml.h:180
TString fIgnorePath
Definition THtml.h:191
TExMap fMapIno
Definition THtml.h:189
TFileSysDB(const char *path, const char *ignorePath, Int_t maxdirlevel)
Definition THtml.h:176
THashTable fEntries
Definition THtml.h:190
Int_t fMaxLevel
Definition THtml.h:192
const TString & GetIgnore() const
Definition THtml.h:182
THashTable & GetEntries()
Definition THtml.h:181
Int_t GetMaxLevel() const
Definition THtml.h:183
void Fill()
Recursively fill entries by parsing the path specified in GetName(); can be a THtml::GetDirDelimiter(...
Definition THtml.cxx:711
void Recurse(TFileSysDB *db, const char *path)
Recursively fill entries by parsing the contents of path.
Definition THtml.cxx:661
TFileSysDir(const char *name, TFileSysDir *parent)
Definition THtml.h:140
const TList * GetFiles() const
Definition THtml.h:143
const TList * GetSubDirs() const
Definition THtml.h:144
TFileSysDir * GetParent() const
Definition THtml.h:127
virtual void GetFullName(TString &fullname, Bool_t asIncluded) const
Definition THtml.h:117
TFileSysEntry(const char *name, TFileSysDir *parent)
Definition THtml.h:108
ULong_t Hash() const override
Return hash value for this object.
Definition THtml.h:116
~TFileSysEntry() override
Definition THtml.h:110
TFileSysDir * fParent
Definition THtml.h:131
const char * GetName() const override
Returns name of object.
Definition THtml.h:115
Int_t GetLevel() const
Definition THtml.h:128
void GetFullName(TString &fullname, Bool_t asIncluded) const override
Definition THtml.h:161
TFileSysRoot(const char *name, TFileSysDB *parent)
Definition THtml.h:159
THtml * GetOwner() const
Definition THtml.h:49
THtml * fHtml
Definition THtml.h:51
~THelperBase() override
Helper's destructor.
Definition THtml.cxx:61
void SetOwner(THtml *html)
Set the THtml object owning this object; if it's already set to a different THtml object than issue a...
Definition THtml.cxx:74
virtual bool GetModule(TClass *cl, TFileSysEntry *fse, TString &out_modulename) const
Set out_modulename to cl's module name; return true if it's valid.
Definition THtml.cxx:104
virtual bool GetIncludeAs(TClass *cl, TString &out_include_as) const
Determine the path and filename used in an include statement for the header file of the given class.
Definition THtml.cxx:572
virtual bool GetFileNameFromInclude(const char *included, TString &out_fsname) const
Set out_fsname to the full pathname corresponding to a file included as "included".
Definition THtml.cxx:621
virtual bool GetMacroPath(const TString &module, TString &out_dir) const
Determine the path to look for macros (see TDocMacroDirective) for classes from a given module.
Definition THtml.cxx:513
virtual bool GetDocDir(const TString &module, TString &doc_dir) const
Determine the module's documentation directory.
Definition THtml.cxx:542
Legacy ROOT documentation system.
Definition THtml.h:40
DocSyntax_t fDocSyntax
Definition THtml.h:415
void SetModuleDefinition(const TModuleDefinition &md)
Set the module defining object to be used; can also be a user derived object (a la traits).
Definition THtml.cxx:2428
THtml()
Create a THtml object.
Definition THtml.cxx:1221
void SetCharset(const char *charset)
Definition THtml.h:287
virtual void CreateStyleSheet() const
Write the default ROOT style sheet.
Definition THtml.cxx:1952
const char * GetCounter() const
Definition THtml.h:323
EConvertOutput
Definition THtml.h:233
@ kForceOutput
Definition THtml.h:237
@ kCompiledOutput
Definition THtml.h:236
@ kInterpretedOutput
Definition THtml.h:235
@ kSeparateProcessOutput
Definition THtml.h:238
@ kNoOutput
Definition THtml.h:234
const TString & GetClassDocTag() const
Definition THtml.h:304
const TString & GetFooter() const
Definition THtml.h:309
const TString & GetSearchStemURL() const
Definition THtml.h:311
const TString & GetViewCVS() const
Definition THtml.h:313
void SetDocStyle(const char *style)
Definition THtml.h:288
const TString & GetCharset() const
Definition THtml.h:315
DocEntityInfo_t fDocEntityInfo
Definition THtml.h:419
const char * ShortType(const char *name) const
Get short type name, i.e. with default templates removed.
Definition THtml.cxx:2520
const TString & GetHomepage() const
Definition THtml.h:310
void SetAuthorTag(const char *tag)
Definition THtml.h:277
const TString & GetModuleDocPath() const
Definition THtml.h:298
void SetPathDefinition(const TPathDefinition &pd)
Set the path defining object to be used; can also be a user derived object (a la traits).
Definition THtml.cxx:2452
TFileSysDB * GetLocalFiles() const
Definition THtml.h:342
void SetHeader(const char *file)
Definition THtml.h:280
virtual TClass * GetClass(const char *name) const
Return pointer to class with name.
Definition THtml.cxx:2076
const TString & GetInputPath() const
Definition THtml.h:295
const TString & GetCopyrightTag() const
Definition THtml.h:307
static Bool_t IsNamespace(const TClass *cl)
Check whether cl is a namespace.
Definition THtml.cxx:2202
void CreateListOfClasses(const char *filter)
Create the list of all known classes.
Definition THtml.cxx:1555
void SetXwho(const char *xwho)
Definition THtml.h:272
void SetOutputDir(const char *dir)
Set the directory where the HTML pages should be written to.
Definition THtml.cxx:2483
void SetDotDir(const char *dir)
Definition THtml.h:269
const TString & GetProductName() const
Definition THtml.h:294
void SetEtcDir(const char *dir)
Definition THtml.h:267
TVirtualMutex * fMakeClassMutex
Definition THtml.h:413
PathInfo_t fPathInfo
Definition THtml.h:418
void SetCounterFormat(const char *format)
Definition THtml.h:275
void SortListOfModules()
Definition THtml.h:339
void SetInputDir(const char *dir)
Set the directory containing the source files.
Definition THtml.cxx:2469
virtual bool GetDeclImplFileName(TClass *cl, bool filesys, bool decl, TString &out_name) const
Combined implementation for GetDeclFileName(), GetImplFileName(): Return declaration / implementation...
Definition THtml.cxx:2123
TFileSysDB * fLocalFiles
Definition THtml.h:423
const char * GetCounterFormat() const
Definition THtml.h:303
TString fCounter
Definition THtml.h:408
static void * MakeClassThreaded(void *info)
Entry point of worker threads for multi-threaded MakeAll().
Definition THtml.cxx:2353
void SetImplFileName(TClass *cl, const char *filename)
Explicitly set a impl file name for TClass cl.
Definition THtml.cxx:2507
const TString & GetAuthorTag() const
Definition THtml.h:305
void AddMacroPath(const char *path)
Add path to the directories to be searched for macro files that are to be executed via the TDocMacroD...
Definition THtml.cxx:1283
const TString & GetDocStyle() const
Definition THtml.h:316
void SetDeclFileName(TClass *cl, const char *filename)
Explicitly set a decl file name for TClass cl.
Definition THtml.cxx:2494
void MakeTree(const char *className, Bool_t force=kFALSE)
Make an inheritance tree.
Definition THtml.cxx:2393
TList * GetLibraryDependencies()
Definition THtml.h:338
const TList * GetListOfModules() const
Definition THtml.h:340
Int_t fThreadedClassCount
Definition THtml.h:412
const TString & GetDotDir() const
Definition THtml.h:299
const TString & GetSearchEngine() const
Definition THtml.h:312
LinkInfo_t fLinkInfo
Definition THtml.h:416
void SetBatch(Bool_t batch=kTRUE)
Definition THtml.h:352
const TModuleDefinition & GetModuleDefinition() const
Return the TModuleDefinition (or derived) object as set by SetModuleDefinition(); create and return a...
Definition THtml.cxx:1311
TString fCounterFormat
Definition THtml.h:409
void SetEscape(char='\\')
Definition THtml.h:358
TFileDefinition * fFileDef
Definition THtml.h:422
void CreateHierarchy()
Create the inheritance hierarchy diagram for all classes.
Definition THtml.cxx:1936
static void LoadAllLibs()
Load all libraries known to ROOT via the rootmap system.
Definition THtml.cxx:2210
Bool_t HaveDot()
Check whether dot is available in $PATH or in the directory set by SetDotPath()
Definition THtml.cxx:1411
void SetMacroPath(const char *path)
Definition THtml.h:273
void SetClassDocTag(const char *tag)
Definition THtml.h:276
virtual void CreateAuxiliaryFiles() const
copy CSS, javascript file, etc to the output dir
Definition THtml.cxx:1299
void SetLastUpdateTag(const char *tag)
Definition THtml.h:278
void SetFileDefinition(const TFileDefinition &fd)
Set the file defining object to be used; can also be a user derived object (a la traits).
Definition THtml.cxx:2440
void GetModuleMacroPath(const TString &module, TString &out_path) const
Definition THtml.h:324
void MakeAll(Bool_t force=kFALSE, const char *filter="*", int numthreads=1)
Produce documentation for all the classes specified in the filter (by default "*") To process all cla...
Definition THtml.cxx:2226
void SetLocalFiles() const
Fill the files available in the file system below fPathInfo.fInputPath.
Definition THtml.cxx:2418
void SetFooter(const char *file)
Definition THtml.h:281
void GetDerivedClasses(TClass *cl, std::map< TClass *, Int_t > &derived) const
fill derived with all classes inheriting from cl and their inheritance distance to cl
Definition THtml.cxx:1964
void SetProductName(const char *product)
Definition THtml.h:262
void MakeClass(const char *className, Bool_t force=kFALSE)
Make HTML files for a single class.
Definition THtml.cxx:2292
void SetSearchEngine(const char *url)
Definition THtml.h:284
Bool_t fBatch
Definition THtml.h:424
virtual bool GetDeclFileName(TClass *cl, Bool_t filesys, TString &out_name) const
Return declaration file name; return the full path if filesys is true.
Definition THtml.cxx:2105
TModuleDefinition * fModuleDef
Definition THtml.h:421
void Convert(const char *filename, const char *title, const char *dirname="", const char *relpath="../", Int_t includeOutput=kNoOutput, const char *context="")
It converts a single text file to HTML.
Definition THtml.cxx:1470
const TString & GetHeader() const
Definition THtml.h:308
void SetCopyrightTag(const char *tag)
Definition THtml.h:279
void CreateListOfTypes()
Create index of all data types and a page for each typedef-to-class.
Definition THtml.cxx:1905
void SetLibURL(const char *lib, const char *url)
Definition THtml.h:271
const PathInfo_t & GetPathInfo() const
Definition THtml.h:345
virtual void CreateJavascript() const
Write the default ROOT style sheet.
Definition THtml.cxx:1945
void SetFoundDot(Bool_t found=kTRUE)
Set whether "dot" (a GraphViz utility) is available.
Definition THtml.cxx:2410
void SetViewCVS(const char *url)
Definition THtml.h:285
OutputStyle_t fOutputStyle
Definition THtml.h:417
const TString & GetWikiURL() const
Definition THtml.h:314
TString fProductName
Definition THtml.h:410
virtual const char * GetEtcDir() const
Get the directory containing THtml's auxiliary files ($ROOTSYS/etc/html)
Definition THtml.cxx:1352
const TString & GetMacroPath() const
Definition THtml.h:302
TGClient * fGClient
Definition THtml.h:414
void SetDocPath(const char *path)
Definition THtml.h:268
const TString & GetLastUpdateTag() const
Definition THtml.h:306
~THtml() override
Default destructor.
Definition THtml.cxx:1263
static const char * GetDirDelimiter()
Definition THtml.h:327
Bool_t IsBatch() const
Definition THtml.h:353
virtual void GetHtmlFileName(TClass *classPtr, TString &filename) const
Return real HTML filename.
Definition THtml.cxx:2001
void SetIncludePath(const char *dir)
Definition THtml.h:266
void SetSourceDir(const char *dir)
Definition THtml.h:265
void MakeIndex(const char *filter="*")
Create the index files for the product, modules, all types, etc.
Definition THtml.cxx:2369
void SetSearchStemURL(const char *url)
Definition THtml.h:283
TClassDocInfo * GetNextClass()
Return the next class to be generated for MakeClassThreaded.
Definition THtml.cxx:1369
virtual void GetModuleNameForClass(TString &module, TClass *cl) const
Return the module name for a given class.
Definition THtml.cxx:1540
void SetWikiURL(const char *url)
Definition THtml.h:286
const TString & GetOutputDir(Bool_t createDir=kTRUE) const
Return the output directory as set by SetOutputDir().
Definition THtml.cxx:2177
TVirtualMutex * GetMakeClassMutex() const
Definition THtml.h:343
void HelperDeleted(THelperBase *who)
Inform the THtml object that one of its helper objects was deleted.
Definition THtml.cxx:1438
TPathDefinition * fPathDef
Definition THtml.h:420
virtual bool GetImplFileName(TClass *cl, Bool_t filesys, TString &out_name) const
Return implementation file name.
Definition THtml.cxx:2113
void ReplaceSpecialChars(std::ostream &, const char *)
Definition THtml.h:355
void SetRootURL(const char *url)
Definition THtml.h:270
const TList * GetListOfClasses() const
Definition THtml.h:341
TIter * fThreadedClassIter
Definition THtml.h:411
const TPathDefinition & GetPathDefinition() const
Return the TModuleDefinition (or derived) object as set by SetModuleDefinition(); create and return a...
Definition THtml.cxx:1339
const TFileDefinition & GetFileDefinition() const
Return the TFileDefinition (or derived) object as set by SetFileDefinition(); create and return a TFi...
Definition THtml.cxx:1325
void SetHomepage(const char *url)
Definition THtml.h:282
Bool_t CopyFileFromEtcDir(const char *filename) const
Copy a file from $ROOTSYS/etc/html into GetOutputDir()
Definition THtml.cxx:1915
const TString & GetXwho() const
Definition THtml.h:301
const char * GetURL(const char *lib=0) const
Get the documentation URL for library lib.
Definition THtml.cxx:1395
A doubly linked list.
Definition TList.h:38
virtual void Sort(Bool_t order=kSortAscending)
Sort linked list.
Definition TList.cxx:937
Mother of all ROOT objects.
Definition TObject.h:41
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
Definition TObject.cxx:987
Basic string class.
Definition TString.h:139
UInt_t Hash(ECaseCompare cmp=kExact) const
Return hash value.
Definition TString.cxx:670
This class implements a mutex interface.
void CallRecursiveRemoveIfNeeded(TObject &obj)
call RecursiveRemove for obj if gROOT is valid and obj.TestBit(kMustCleanup) is true.
Definition TROOT.h:396
Definition file.py:1
THashList fModules
Definition THtml.h:391
THashList fLibDeps
Definition THtml.h:392
THashList fClasses
Definition THtml.h:389
THashList fShortClassNames
Definition THtml.h:390
TString fDocStyle
Definition THtml.h:366
TString fCopyrightTag
Definition THtml.h:365
TString fClassDocTag
Definition THtml.h:362
TString fLastUpdateTag
Definition THtml.h:364
TString fAuthorTag
Definition THtml.h:363
std::map< std::string, TString > fLibURLs
Definition THtml.h:372
TString fHomepage
Definition THtml.h:373
TString fWikiURL
Definition THtml.h:377
TString fViewCVS
Definition THtml.h:376
TString fXwho
Definition THtml.h:370
TString fSearchEngine
Definition THtml.h:375
TString fROOTURL
Definition THtml.h:371
TString fSearchStemURL
Definition THtml.h:374
EDotAccess fFoundDot
Definition THtml.h:220
TString fInputPath
Definition THtml.h:221
TString fIncludePath
Definition THtml.h:222
TString fDotDir
Definition THtml.h:226
TString fIgnorePath
Definition THtml.h:223
TString fOutputDir
Definition THtml.h:228
TString fDocPath
Definition THtml.h:224
TString fMacroPath
Definition THtml.h:225
TString fEtcDir
Definition THtml.h:227