Logo ROOT  
Reference Guide
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 
35 class TClass;
36 class TClassDocInfo;
37 class TGClient;
38 class TVirtualMutex;
39 
40 class THtml: public TObject {
41 public:
42  //______________________________________________________________
43  // Helper base class.
44  class THelperBase: public TObject {
45  public:
46  THelperBase(): fHtml(0) {}
47  virtual ~THelperBase();
48  void SetOwner(THtml* html);
49  THtml* GetOwner() const { return fHtml; }
50  private:
51  THtml* fHtml; // object owning the helper
52  ClassDef(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  ClassDef(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().
71  class TFileDefinition: public THelperBase {
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;
80  TString MatchFileSysName(TString& filename, 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  ClassDef(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().
92  class TPathDefinition: public THelperBase {
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  ClassDef(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) {}
111  {
112  // Required since we overload TObject::Hash.
114  }
115  const char* GetName() const { return fName; }
116  virtual ULong_t Hash() const { 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  ClassDef(TFileSysEntry, 0); // an entry of the local file system
134  };
135 
136  //______________________________________________________________
137  // Utility class representing a directory
138  class TFileSysDir: public TFileSysEntry {
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  ClassDef(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 {
162  // prepend directory part of THtml::GetInputPath() only
163  // if !asIncluded
164  fullname = "";
165  if (!asIncluded)
166  fullname += fName;
167  }
168 
169  ClassDef(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  ClassDef(TFileSysDB, 0); // instance of file system data
194  };
195 
196 
197  //______________________________________________________________
198  // Configuration holder for path related settings
199  struct PathInfo_t {
200  enum EDotAccess {
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 
232 public:
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  virtual ~THtml();
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);
275  void SetCounterFormat(const char* format) { fCounterFormat = format; }
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; }
304  const TString& GetClassDocTag() const { return fDocSyntax.fClassDocTag; }
305  const TString& GetAuthorTag() const { return fDocSyntax.fAuthorTag; }
307  const TString& GetCopyrightTag() const { return fDocSyntax.fCopyrightTag; }
308  const TString& GetHeader() const { return fOutputStyle.fHeader; }
309  const TString& GetFooter() const { return fOutputStyle.fFooter; }
310  const TString& GetHomepage() const { return fLinkInfo.fHomepage; }
312  const TString& GetSearchEngine() const { return fLinkInfo.fSearchEngine; }
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 
360 protected:
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 
380  struct OutputStyle_t {
381  TString fHeader; // header file name
382  TString fFooter; // footerer file name
383  TString fCharset; // Charset for doc pages
384  };
385 
387  DocEntityInfo_t(): fClasses(503, 3) {}
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 
395 protected:
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 
407 protected:
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  ClassDef(THtml,0) //Convert class(es) into HTML file(s)
427 };
428 
430 
431 #endif
THtml::TPathDefinition::GetMacroPath
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
THtml::SetViewCVS
void SetViewCVS(const char *url)
Definition: THtml.h:285
THtml::GetXwho
const TString & GetXwho() const
Definition: THtml.h:301
THtml::DocEntityInfo_t::fModules
THashList fModules
Definition: THtml.h:391
THtml::PathInfo_t::fOutputDir
TString fOutputDir
Definition: THtml.h:228
THtml::GetDirDelimiter
static const char * GetDirDelimiter()
Definition: THtml.h:327
THtml::GetDotDir
const TString & GetDotDir() const
Definition: THtml.h:299
THtml::PathInfo_t::fDotDir
TString fDotDir
Definition: THtml.h:226
THtml::GetFileDefinition
const TFileDefinition & GetFileDefinition() const
Return the TFileDefinition (or derived) object as set by SetFileDefinition(); create and return a TFi...
Definition: THtml.cxx:1318
THtml::GetLastUpdateTag
const TString & GetLastUpdateTag() const
Definition: THtml.h:306
THtml::kInterpretedOutput
@ kInterpretedOutput
Definition: THtml.h:235
THtml::GetWikiURL
const TString & GetWikiURL() const
Definition: THtml.h:314
THtml::kCompiledOutput
@ kCompiledOutput
Definition: THtml.h:236
THtml::CreateJavascript
virtual void CreateJavascript() const
Write the default ROOT style sheet.
Definition: THtml.cxx:1938
THtml::TFileSysRoot::GetFullName
void GetFullName(TString &fullname, Bool_t asIncluded) const
Definition: THtml.h:161
kTRUE
const Bool_t kTRUE
Definition: RtypesCore.h:91
THtml::THelperBase
Definition: THtml.h:44
THtml::TFileSysDB::fMaxLevel
Int_t fMaxLevel
Definition: THtml.h:192
THtml::DocEntityInfo_t::DocEntityInfo_t
DocEntityInfo_t()
Definition: THtml.h:387
THtml::GetPathDefinition
const TPathDefinition & GetPathDefinition() const
Return the TModuleDefinition (or derived) object as set by SetModuleDefinition(); create and return a...
Definition: THtml.cxx:1332
THtml::fCounterFormat
TString fCounterFormat
Definition: THtml.h:409
THtml::GetDeclImplFileName
virtual bool GetDeclImplFileName(TClass *cl, bool filesys, bool decl, TString &out_name) const
Combined implementation for GetDeclFileName(), GetImplFileName(): Return declaration / implementation...
Definition: THtml.cxx:2116
THtml::SetSearchEngine
void SetSearchEngine(const char *url)
Definition: THtml.h:284
THtml::MakeTree
void MakeTree(const char *className, Bool_t force=kFALSE)
Make an inheritance tree.
Definition: THtml.cxx:2386
THtml::SetLastUpdateTag
void SetLastUpdateTag(const char *tag)
Definition: THtml.h:278
THtml::EConvertOutput
EConvertOutput
Definition: THtml.h:233
THtml::AddMacroPath
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:1276
THtml::PathInfo_t::kDotNotFound
@ kDotNotFound
Definition: THtml.h:203
THtml::SetProductName
void SetProductName(const char *product)
Definition: THtml.h:262
THtml::OutputStyle_t::fHeader
TString fHeader
Definition: THtml.h:381
THtml::SetHeader
void SetHeader(const char *file)
Definition: THtml.h:280
THtml::fProductName
TString fProductName
Definition: THtml.h:410
THtml::LoadAllLibs
static void LoadAllLibs()
Load all libraries known to ROOT via the rootmap system.
Definition: THtml.cxx:2203
THtml::SetEscape
void SetEscape(char='\\')
Definition: THtml.h:358
THtml::GetInputPath
const TString & GetInputPath() const
Definition: THtml.h:295
THtml::GetCounter
const char * GetCounter() const
Definition: THtml.h:323
THtml::PathInfo_t::fDocPath
TString fDocPath
Definition: THtml.h:224
THtml::GetProductName
const TString & GetProductName() const
Definition: THtml.h:294
THtml::GetNextClass
TClassDocInfo * GetNextClass()
Return the next class to be generated for MakeClassThreaded.
Definition: THtml.cxx:1362
THtml::SetClassDocTag
void SetClassDocTag(const char *tag)
Definition: THtml.h:276
THtml::GetCharset
const TString & GetCharset() const
Definition: THtml.h:315
THtml::SetCopyrightTag
void SetCopyrightTag(const char *tag)
Definition: THtml.h:279
THtml::MakeIndex
void MakeIndex(const char *filter="*")
Create the index files for the product, modules, all types, etc.
Definition: THtml.cxx:2362
THtml::IsNamespace
static Bool_t IsNamespace(const TClass *cl)
Check whether cl is a namespace.
Definition: THtml.cxx:2195
THtml::THelperBase::fHtml
THtml * fHtml
Definition: THtml.h:51
THtml::MakeClass
void MakeClass(const char *className, Bool_t force=kFALSE)
Make HTML files for a single class.
Definition: THtml.cxx:2285
THtml::SetFooter
void SetFooter(const char *file)
Definition: THtml.h:281
TObject::Error
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
Definition: TObject.cxx:890
THtml::MakeAll
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:2219
TCollection::SetOwner
virtual void SetOwner(Bool_t enable=kTRUE)
Set whether this collection is the owner (enable==true) of its content.
Definition: TCollection.cxx:746
THtml::fLinkInfo
LinkInfo_t fLinkInfo
Definition: THtml.h:416
THtml::TPathDefinition::GetFileNameFromInclude
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
THtml::LinkInfo_t::fSearchStemURL
TString fSearchStemURL
Definition: THtml.h:374
THtml::GetImplFileName
virtual bool GetImplFileName(TClass *cl, Bool_t filesys, TString &out_name) const
Return implementation file name.
Definition: THtml.cxx:2106
THtml::fFileDef
TFileDefinition * fFileDef
Definition: THtml.h:422
THtml::TFileSysRoot
Definition: THtml.h:157
THtml::fThreadedClassCount
Int_t fThreadedClassCount
Definition: THtml.h:412
THtml::LinkInfo_t::fHomepage
TString fHomepage
Definition: THtml.h:373
THtml::HaveDot
Bool_t HaveDot()
Check whether dot is available in $PATH or in the directory set by SetDotPath()
Definition: THtml.cxx:1404
THtml::SetMacroPath
void SetMacroPath(const char *path)
Definition: THtml.h:273
Int_t
int Int_t
Definition: RtypesCore.h:45
THtml::PathInfo_t::fEtcDir
TString fEtcDir
Definition: THtml.h:227
TVirtualMutex
This class implements a mutex interface.
Definition: TVirtualMutex.h:32
THtml::GetFooter
const TString & GetFooter() const
Definition: THtml.h:309
TString::Hash
UInt_t Hash(ECaseCompare cmp=kExact) const
Return hash value.
Definition: TString.cxx:638
THtml::TModuleDefinition
Definition: THtml.h:61
THtml::TFileSysDB::fIgnorePath
TString fIgnorePath
Definition: THtml.h:191
THtml::TFileSysDB::GetMapIno
TExMap & GetMapIno()
Definition: THtml.h:180
THtml::fThreadedClassIter
TIter * fThreadedClassIter
Definition: THtml.h:411
THtml::SetDocStyle
void SetDocStyle(const char *style)
Definition: THtml.h:288
THtml::TModuleDefinition::GetModule
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
THtml::DocSyntax_t::fAuthorTag
TString fAuthorTag
Definition: THtml.h:363
THtml::GetMacroPath
const TString & GetMacroPath() const
Definition: THtml.h:302
THtml::PathInfo_t::fFoundDot
EDotAccess fFoundDot
Definition: THtml.h:220
THtml::TFileSysEntry::fLevel
Int_t fLevel
Definition: THtml.h:132
THtml::HelperDeleted
void HelperDeleted(THelperBase *who)
Inform the THtml object that one of its helper objects was deleted.
Definition: THtml.cxx:1431
THtml::SetWikiURL
void SetWikiURL(const char *url)
Definition: THtml.h:286
THtml::DocSyntax_t::fClassDocTag
TString fClassDocTag
Definition: THtml.h:362
THtml::CreateAuxiliaryFiles
virtual void CreateAuxiliaryFiles() const
copy CSS, javascript file, etc to the output dir
Definition: THtml.cxx:1292
THtml::TFileSysEntry::GetLevel
Int_t GetLevel() const
Definition: THtml.h:128
THtml::SetCounterFormat
void SetCounterFormat(const char *format)
Definition: THtml.h:275
THtml::CreateListOfClasses
void CreateListOfClasses(const char *filter)
Create the list of all known classes.
Definition: THtml.cxx:1548
THtml::OutputStyle_t::fFooter
TString fFooter
Definition: THtml.h:382
THtml::PathInfo_t::kDotUnknown
@ kDotUnknown
Definition: THtml.h:201
TString
Basic string class.
Definition: TString.h:136
THtml::SetDeclFileName
void SetDeclFileName(TClass *cl, const char *filename)
Explicitly set a decl file name for TClass cl.
Definition: THtml.cxx:2487
THtml::SetOutputDir
void SetOutputDir(const char *dir)
Set the directory where the HTML pages shuold be written to.
Definition: THtml.cxx:2476
THtml::THelperBase::~THelperBase
virtual ~THelperBase()
Helper's destructor.
Definition: THtml.cxx:61
Bool_t
bool Bool_t
Definition: RtypesCore.h:63
THtml::TFileSysEntry
Definition: THtml.h:106
THtml::THelperBase::GetOwner
THtml * GetOwner() const
Definition: THtml.h:49
THtml::GetViewCVS
const TString & GetViewCVS() const
Definition: THtml.h:313
THtml::~THtml
virtual ~THtml()
Default destructor.
Definition: THtml.cxx:1256
bool
THtml::SetImplFileName
void SetImplFileName(TClass *cl, const char *filename)
Explicitly set a impl file name for TClass cl.
Definition: THtml.cxx:2500
THtml::TFileDefinition::GetDeclFileName
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
THtml::TFileDefinition::MatchFileSysName
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
THtml::GetDocStyle
const TString & GetDocStyle() const
Definition: THtml.h:316
THtml::GetModuleNameForClass
virtual void GetModuleNameForClass(TString &module, TClass *cl) const
Return the module name for a given class.
Definition: THtml.cxx:1533
THtml::TFileSysEntry::TFileSysEntry
TFileSysEntry(const char *name, TFileSysDir *parent)
Definition: THtml.h:108
TList::Sort
virtual void Sort(Bool_t order=kSortAscending)
Sort linked list.
Definition: TList.cxx:937
TROOT.h
THtml::GetEtcDir
virtual const char * GetEtcDir() const
Get the directory containing THtml's auxiliary files ($ROOTSYS/etc/html)
Definition: THtml.cxx:1345
THtml::TFileSysEntry::Hash
virtual ULong_t Hash() const
Return hash value for this object.
Definition: THtml.h:116
THtml::PathInfo_t::EDotAccess
EDotAccess
Definition: THtml.h:200
style
TCanvas * style()
Definition: style.C:1
THtml::DocEntityInfo_t::fShortClassNames
THashList fShortClassNames
Definition: THtml.h:390
THtml::SetBatch
void SetBatch(Bool_t batch=kTRUE)
Definition: THtml.h:352
THtml::DocEntityInfo_t
Definition: THtml.h:386
THtml::GetAuthorTag
const TString & GetAuthorTag() const
Definition: THtml.h:305
THtml::GetDerivedClasses
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:1957
THtml::GetListOfClasses
const TList * GetListOfClasses() const
Definition: THtml.h:341
THtml::CreateStyleSheet
virtual void CreateStyleSheet() const
Write the default ROOT style sheet.
Definition: THtml.cxx:1945
THtml::GetLocalFiles
TFileSysDB * GetLocalFiles() const
Definition: THtml.h:342
THtml::GetClassDocTag
const TString & GetClassDocTag() const
Definition: THtml.h:304
THtml
Definition: THtml.h:40
THtml::GetMakeClassMutex
TVirtualMutex * GetMakeClassMutex() const
Definition: THtml.h:343
THtml::SetLocalFiles
void SetLocalFiles() const
Fill the files available in the file system below fPathInfo.fInputPath.
Definition: THtml.cxx:2411
THtml::ReplaceSpecialChars
void ReplaceSpecialChars(std::ostream &, const char *)
Definition: THtml.h:355
THtml::PathInfo_t::kDotFound
@ kDotFound
Definition: THtml.h:202
THtml::DocSyntax_t::fCopyrightTag
TString fCopyrightTag
Definition: THtml.h:365
THtml::GetPathInfo
const PathInfo_t & GetPathInfo() const
Definition: THtml.h:345
THtml::TFileSysEntry::GetParent
TFileSysDir * GetParent() const
Definition: THtml.h:127
THtml::LinkInfo_t::fXwho
TString fXwho
Definition: THtml.h:370
THtml::TFileSysEntry::GetFullName
virtual void GetFullName(TString &fullname, Bool_t asIncluded) const
Definition: THtml.h:117
THtml::GetDeclFileName
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:2098
THashTable
THashTable implements a hash table to store TObject's.
Definition: THashTable.h:35
gHtml
R__EXTERN THtml * gHtml
Definition: THtml.h:429
THashList
THashList implements a hybrid collection class consisting of a hash table and a list to store TObject...
Definition: THashList.h:34
THtml::THtml
THtml()
Create a THtml object.
Definition: THtml.cxx:1214
THtml::fCounter
TString fCounter
Definition: THtml.h:408
THtml::GetLibraryDependencies
TList * GetLibraryDependencies()
Definition: THtml.h:338
THtml::GetCounterFormat
const char * GetCounterFormat() const
Definition: THtml.h:303
THtml::IsBatch
Bool_t IsBatch() const
Definition: THtml.h:353
THtml::TPathDefinition
Definition: THtml.h:92
THtml::SetRootURL
void SetRootURL(const char *url)
Definition: THtml.h:270
THtml::SetCharset
void SetCharset(const char *charset)
Definition: THtml.h:287
THtml::TFileSysDir
Definition: THtml.h:138
THtml::DocSyntax_t::fLastUpdateTag
TString fLastUpdateTag
Definition: THtml.h:364
THtml::TFileSysDB::GetEntries
THashTable & GetEntries()
Definition: THtml.h:181
kFALSE
const Bool_t kFALSE
Definition: RtypesCore.h:92
THtml::TFileDefinition::GetFileName
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
THtml::GetSearchEngine
const TString & GetSearchEngine() const
Definition: THtml.h:312
THtml::SetAuthorTag
void SetAuthorTag(const char *tag)
Definition: THtml.h:277
THtml::CreateHierarchy
void CreateHierarchy()
Create the inheritance hierarchy diagram for all classes.
Definition: THtml.cxx:1929
THtml::TFileSysEntry::~TFileSysEntry
~TFileSysEntry()
Definition: THtml.h:110
THtml::kSeparateProcessOutput
@ kSeparateProcessOutput
Definition: THtml.h:238
THtml::GetHeader
const TString & GetHeader() const
Definition: THtml.h:308
extract_docstrings.module
module
Definition: extract_docstrings.py:39
THtml::TFileSysDB
Definition: THtml.h:174
THtml::LinkInfo_t
Definition: THtml.h:369
THtml::TFileSysRoot::TFileSysRoot
TFileSysRoot(const char *name, TFileSysDB *parent)
Definition: THtml.h:159
THtml::TFileSysDir::fFiles
TList fFiles
Definition: THtml.h:149
THtml::TFileDefinition::ExpandSearchPath
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
THtml::TPathDefinition::GetDocDir
virtual bool GetDocDir(const TString &module, TString &doc_dir) const
Determine the module's documentation directory.
Definition: THtml.cxx:542
THtml::TFileSysDB::TFileSysDB
TFileSysDB(const char *path, const char *ignorePath, Int_t maxdirlevel)
Definition: THtml.h:176
THtml::GetHtmlFileName
virtual void GetHtmlFileName(TClass *classPtr, TString &filename) const
Return real HTML filename.
Definition: THtml.cxx:1994
THtml::fDocSyntax
DocSyntax_t fDocSyntax
Definition: THtml.h:415
THtml::GetModuleDefinition
const TModuleDefinition & GetModuleDefinition() const
Return the TModuleDefinition (or derived) object as set by SetModuleDefinition(); create and return a...
Definition: THtml.cxx:1304
THtml::GetHomepage
const TString & GetHomepage() const
Definition: THtml.h:310
ULong_t
unsigned long ULong_t
Definition: RtypesCore.h:55
THtml::TFileSysDB::GetMaxLevel
Int_t GetMaxLevel() const
Definition: THtml.h:183
THtml::SetSearchStemURL
void SetSearchStemURL(const char *url)
Definition: THtml.h:283
THtml::fDocEntityInfo
DocEntityInfo_t fDocEntityInfo
Definition: THtml.h:419
THtml::CreateListOfTypes
void CreateListOfTypes()
Create index of all data types and a page for each typedef-to-class.
Definition: THtml.cxx:1898
THtml::TFileDefinition::GetImplFileName
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
THtml::SetLibURL
void SetLibURL(const char *lib, const char *url)
Definition: THtml.h:271
THtml::SetDotDir
void SetDotDir(const char *dir)
Definition: THtml.h:269
THtml::DocEntityInfo_t::fClassFilter
TString fClassFilter
Definition: THtml.h:388
THtml::SetEtcDir
void SetEtcDir(const char *dir)
Definition: THtml.h:267
THashList.h
THtml::fBatch
Bool_t fBatch
Definition: THtml.h:424
THtml::SetSourceDir
void SetSourceDir(const char *dir)
Definition: THtml.h:265
THtml::SetFileDefinition
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:2433
THtml::kForceOutput
@ kForceOutput
Definition: THtml.h:237
THtml::PathInfo_t::fMacroPath
TString fMacroPath
Definition: THtml.h:225
THtml::THelperBase::SetOwner
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
THtml::LinkInfo_t::fSearchEngine
TString fSearchEngine
Definition: THtml.h:375
THtml::fModuleDef
TModuleDefinition * fModuleDef
Definition: THtml.h:421
THtml::SetIncludePath
void SetIncludePath(const char *dir)
Definition: THtml.h:266
THtml::TPathDefinition::GetIncludeAs
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
THtml::TFileSysDir::GetFiles
const TList * GetFiles() const
Definition: THtml.h:143
THtml::SetFoundDot
void SetFoundDot(Bool_t found=kTRUE)
Set whether "dot" (a GraphViz utility) is available.
Definition: THtml.cxx:2403
THtml::ShortType
const char * ShortType(const char *name) const
Get short type name, i.e. with default templates removed.
Definition: THtml.cxx:2513
THtml::OutputStyle_t::fCharset
TString fCharset
Definition: THtml.h:383
THtml::GetURL
const char * GetURL(const char *lib=0) const
Get the documentation URL for library lib.
Definition: THtml.cxx:1388
THtml::DocSyntax_t::fDocStyle
TString fDocStyle
Definition: THtml.h:366
THtml::SetXwho
void SetXwho(const char *xwho)
Definition: THtml.h:272
THtml::GetClass
virtual TClass * GetClass(const char *name) const
Return pointer to class with name.
Definition: THtml.cxx:2069
THtml::GetOutputDir
const TString & GetOutputDir(Bool_t createDir=kTRUE) const
Return the output directory as set by SetOutputDir().
Definition: THtml.cxx:2170
THtml::TFileSysDir::TFileSysDir
TFileSysDir(const char *name, TFileSysDir *parent)
Definition: THtml.h:140
THtml::TFileSysEntry::GetName
const char * GetName() const
Returns name of object.
Definition: THtml.h:115
TClass
TClass instances represent classes, structs and namespaces in the ROOT type system.
Definition: TClass.h:80
THtml::Convert
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:1463
file
Definition: file.py:1
THtml::PathInfo_t::fIncludePath
TString fIncludePath
Definition: THtml.h:222
THtml::PathInfo_t
Definition: THtml.h:199
THtml::LinkInfo_t::fViewCVS
TString fViewCVS
Definition: THtml.h:376
THtml::fMakeClassMutex
TVirtualMutex * fMakeClassMutex
Definition: THtml.h:413
TObject
Mother of all ROOT objects.
Definition: TObject.h:37
THtml::TFileSysEntry::fName
TString fName
Definition: THtml.h:130
ClassDef
#define ClassDef(name, id)
Definition: Rtypes.h:325
THtml::fGClient
TGClient * fGClient
Definition: THtml.h:414
THtml::GetSearchStemURL
const TString & GetSearchStemURL() const
Definition: THtml.h:311
THtml::CopyFileFromEtcDir
Bool_t CopyFileFromEtcDir(const char *filename) const
Copy a file from $ROOTSYS/etc/html into GetOutputDir()
Definition: THtml.cxx:1908
THtml::LinkInfo_t::fLibURLs
std::map< std::string, TString > fLibURLs
Definition: THtml.h:372
THtml::TFileSysDir::fDirs
TList fDirs
Definition: THtml.h:150
THtml::kNoOutput
@ kNoOutput
Definition: THtml.h:234
name
char name[80]
Definition: TGX11.cxx:110
THtml::LinkInfo_t::fWikiURL
TString fWikiURL
Definition: THtml.h:377
THtml::TFileSysDB::fEntries
THashTable fEntries
Definition: THtml.h:190
THtml::SetPathDefinition
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:2445
THtml::GetModuleDocPath
const TString & GetModuleDocPath() const
Definition: THtml.h:298
THtml::TFileSysDB::Fill
void Fill()
Recursively fill entries by parsing the path specified in GetName(); can be a THtml::GetDirDelimiter(...
Definition: THtml.cxx:711
THtml::GetModuleMacroPath
void GetModuleMacroPath(const TString &module, TString &out_path) const
Definition: THtml.h:324
THtml::SetHomepage
void SetHomepage(const char *url)
Definition: THtml.h:282
THtml::TFileSysDir::Recurse
void Recurse(TFileSysDB *db, const char *path)
Recursively fill entries by parsing the contents of path.
Definition: THtml.cxx:661
TIter
Definition: TCollection.h:233
TExMap
This class stores a (key,value) pair using an external hash.
Definition: TExMap.h:33
THtml::fPathDef
TPathDefinition * fPathDef
Definition: THtml.h:420
THtml::TFileSysDB::fMapIno
TExMap fMapIno
Definition: THtml.h:189
R__EXTERN
#define R__EXTERN
Definition: DllImport.h:27
THtml::fPathInfo
PathInfo_t fPathInfo
Definition: THtml.h:418
THtml::GetListOfModules
const TList * GetListOfModules() const
Definition: THtml.h:340
THtml::PathInfo_t::PathInfo_t
PathInfo_t()
Definition: THtml.h:206
THtml::LinkInfo_t::fROOTURL
TString fROOTURL
Definition: THtml.h:371
THtml::TFileSysDB::GetIgnore
const TString & GetIgnore() const
Definition: THtml.h:182
ROOT::CallRecursiveRemoveIfNeeded
void CallRecursiveRemoveIfNeeded(TObject &obj)
call RecursiveRemove for obj if gROOT is valid and obj.TestBit(kMustCleanup) is true.
Definition: TROOT.h:395
THtml::GetCopyrightTag
const TString & GetCopyrightTag() const
Definition: THtml.h:307
THtml::DocSyntax_t
Definition: THtml.h:361
THtml::fLocalFiles
TFileSysDB * fLocalFiles
Definition: THtml.h:423
THtml::TFileDefinition::SplitClassIntoDirFile
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
THtml::TFileSysDir::GetSubDirs
const TList * GetSubDirs() const
Definition: THtml.h:144
THtml::THelperBase::THelperBase
THelperBase()
Definition: THtml.h:46
THtml::fOutputStyle
OutputStyle_t fOutputStyle
Definition: THtml.h:417
THtml::PathInfo_t::fInputPath
TString fInputPath
Definition: THtml.h:221
THtml::SetDocPath
void SetDocPath(const char *path)
Definition: THtml.h:268
THtml::PathInfo_t::fIgnorePath
TString fIgnorePath
Definition: THtml.h:223
THtml::OutputStyle_t
Definition: THtml.h:380
THtml::SetModuleDefinition
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:2421
TGClient
Definition: TGClient.h:46
THtml::TFileDefinition::NormalizePath
void NormalizePath(TString &path) const
Remove "/./" and collapse "/subdir/../" to "/".
Definition: THtml.cxx:289
THtml::DocEntityInfo_t::fClasses
THashList fClasses
Definition: THtml.h:389
TList
A doubly linked list.
Definition: TList.h:44
THtml::SortListOfModules
void SortListOfModules()
Definition: THtml.h:339
THtml::TFileSysEntry::fParent
TFileSysDir * fParent
Definition: THtml.h:131
TExMap.h
int
THtml::MakeClassThreaded
static void * MakeClassThreaded(void *info)
Entry point of worker threads for multi-threaded MakeAll().
Definition: THtml.cxx:2346
THtml::TFileDefinition
Definition: THtml.h:71
THtml::DocEntityInfo_t::fLibDeps
THashList fLibDeps
Definition: THtml.h:392
THtml::SetInputDir
void SetInputDir(const char *dir)
Set the directory containing the source files.
Definition: THtml.cxx:2462
THashTable.h
TClassDocInfo
Definition: TDocInfo.h:29