Logo ROOT   master
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
const TString & GetCharset() const
Definition: THtml.h:315
TPathDefinition * fPathDef
Definition: THtml.h:420
static Bool_t IsNamespace(const TClass *cl)
Check whether cl is a namespace.
Definition: THtml.cxx:2194
void MakeIndex(const char *filter="*")
Create the index files for the product, modules, all types, etc.
Definition: THtml.cxx:2361
virtual bool GetDocDir(const TString &module, TString &doc_dir) const
Determine the module&#39;s documentation directory.
Definition: THtml.cxx:541
void SetFooter(const char *file)
Definition: THtml.h:281
const TList * GetSubDirs() const
Definition: THtml.h:144
static void * MakeClassThreaded(void *info)
Entry point of worker threads for multi-threaded MakeAll().
Definition: THtml.cxx:2345
void SetSearchEngine(const char *url)
Definition: THtml.h:284
void SetProductName(const char *product)
Definition: THtml.h:262
void SetHeader(const char *file)
Definition: THtml.h:280
virtual bool GetImplFileName(TClass *cl, Bool_t filesys, TString &out_name) const
Return implementation file name.
Definition: THtml.cxx:2105
TFileSysDB * fLocalFiles
Definition: THtml.h:423
TString fProductName
Definition: THtml.h:410
Int_t fThreadedClassCount
Definition: THtml.h:412
Bool_t HaveDot()
Check whether dot is available in $PATH or in the directory set by SetDotPath()
Definition: THtml.cxx:1403
const TString & GetInputPath() const
Definition: THtml.h:295
void SetEscape(char='\\')
Definition: THtml.h:358
const TFileDefinition & GetFileDefinition() const
Return the TFileDefinition (or derived) object as set by SetFileDefinition(); create and return a TFi...
Definition: THtml.cxx:1317
void SetDocPath(const char *path)
Definition: THtml.h:268
const TString & GetWikiURL() const
Definition: THtml.h:314
virtual void CreateJavascript() const
Write the default ROOT style sheet.
Definition: THtml.cxx:1937
void CallRecursiveRemoveIfNeeded(TObject &obj)
call RecursiveRemove for obj if gROOT is valid and obj.TestBit(kMustCleanup) is true.
Definition: TROOT.h:404
TString fFooter
Definition: THtml.h:382
void SetLastUpdateTag(const char *tag)
Definition: THtml.h:278
virtual void SetOwner(Bool_t enable=kTRUE)
Set whether this collection is the owner (enable==true) of its content.
void SetViewCVS(const char *url)
Definition: THtml.h:285
LinkInfo_t fLinkInfo
Definition: THtml.h:416
virtual bool GetImplFileName(const TClass *cl, TString &out_filename, TString &out_fsys, TFileSysEntry **fse=0) const
Determine cl&#39;s implementation file name.
Definition: THtml.cxx:278
EConvertOutput
Definition: THtml.h:233
static const char * GetDirDelimiter()
Definition: THtml.h:327
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:337
TFileSysDir * fParent
Definition: THtml.h:131
TString fClassDocTag
Definition: THtml.h:362
const TString & GetDotDir() const
Definition: THtml.h:299
TFileDefinition * fFileDef
Definition: THtml.h:422
void SetMacroPath(const char *path)
Definition: THtml.h:273
Int_t GetMaxLevel() const
Definition: THtml.h:183
void SetOwner(THtml *html)
Set the THtml object owning this object; if it&#39;s already set to a different THtml object than issue a...
Definition: THtml.cxx:73
THashList fClasses
Definition: THtml.h:389
static void LoadAllLibs()
Load all libraries known to ROOT via the rootmap system.
Definition: THtml.cxx:2202
This class implements a mutex interface.
Definition: TVirtualMutex.h:34
const TString & GetLastUpdateTag() const
Definition: THtml.h:306
const TString & GetProductName() const
Definition: THtml.h:294
THtml * fHtml
Definition: THtml.h:51
TString fHomepage
Definition: THtml.h:373
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:233
virtual ~THtml()
Default destructor.
Definition: THtml.cxx:1255
TString fViewCVS
Definition: THtml.h:376
const TString & GetViewCVS() const
Definition: THtml.h:313
Basic string class.
Definition: TString.h:131
TIter * fThreadedClassIter
Definition: THtml.h:411
int Int_t
Definition: RtypesCore.h:41
void SetDocStyle(const char *style)
Definition: THtml.h:288
bool Bool_t
Definition: RtypesCore.h:59
const TString & GetIgnore() const
Definition: THtml.h:182
TString fCounterFormat
Definition: THtml.h:409
virtual bool GetDeclImplFileName(TClass *cl, bool filesys, bool decl, TString &out_name) const
Combined implementation for GetDeclFileName(), GetImplFileName(): Return declaration / implementation...
Definition: THtml.cxx:2115
const TString & GetDocStyle() const
Definition: THtml.h:316
void SetWikiURL(const char *url)
Definition: THtml.h:286
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:2218
TString fAuthorTag
Definition: THtml.h:363
void MakeTree(const char *className, Bool_t force=kFALSE)
Make an inheritance tree.
Definition: THtml.cxx:2385
virtual void GetFullName(TString &fullname, Bool_t asIncluded) const
Definition: THtml.h:117
void SetCounterFormat(const char *format)
Definition: THtml.h:275
Int_t fMaxLevel
Definition: THtml.h:192
TString fDocPath
Definition: THtml.h:224
void SetDeclFileName(TClass *cl, const char *filename)
Explicitly set a decl file name for TClass cl.
Definition: THtml.cxx:2486
const char * GetCounter() const
Definition: THtml.h:323
THashTable fEntries
Definition: THtml.h:190
void SetOutputDir(const char *dir)
Set the directory where the HTML pages shuold be written to.
Definition: THtml.cxx:2475
TString fOutputDir
Definition: THtml.h:228
UInt_t Hash(ECaseCompare cmp=kExact) const
Return hash value.
Definition: TString.cxx:638
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:1956
const TString & GetClassDocTag() const
Definition: THtml.h:304
const TList * GetListOfClasses() const
Definition: THtml.h:341
void SetClassDocTag(const char *tag)
Definition: THtml.h:276
virtual void CreateStyleSheet() const
Write the default ROOT style sheet.
Definition: THtml.cxx:1944
virtual void Sort(Bool_t order=kSortAscending)
Sort linked list.
Definition: TList.cxx:934
void SetCopyrightTag(const char *tag)
Definition: THtml.h:279
Int_t GetLevel() const
Definition: THtml.h:128
TString fHeader
Definition: THtml.h:381
void SetImplFileName(TClass *cl, const char *filename)
Explicitly set a impl file name for TClass cl.
Definition: THtml.cxx:2499
void MakeClass(const char *className, Bool_t force=kFALSE)
Make HTML files for a single class.
Definition: THtml.cxx:2284
TString fIgnorePath
Definition: THtml.h:223
TExMap & GetMapIno()
Definition: THtml.h:180
THashTable implements a hash table to store TObject&#39;s.
Definition: THashTable.h:35
TString fCopyrightTag
Definition: THtml.h:365
#define ClassDef(name, id)
Definition: Rtypes.h:326
virtual const char * GetEtcDir() const
Get the directory containing THtml&#39;s auxiliary files ($ROOTSYS/etc/html)
Definition: THtml.cxx:1344
virtual void CreateAuxiliaryFiles() const
copy CSS, javascript file, etc to the output dir
Definition: THtml.cxx:1291
THashList implements a hybrid collection class consisting of a hash table and a list to store TObject...
Definition: THashList.h:34
TList * GetLibraryDependencies()
Definition: THtml.h:338
THtml()
Create a THtml object.
Definition: THtml.cxx:1213
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:307
void GetFullName(TString &fullname, Bool_t asIncluded) const
Definition: THtml.h:161
void CreateListOfClasses(const char *filter)
Create the list of all known classes.
Definition: THtml.cxx:1547
TFileSysDir * GetParent() const
Definition: THtml.h:127
TString fSearchEngine
Definition: THtml.h:375
void SetAuthorTag(const char *tag)
Definition: THtml.h:277
const TString & GetFooter() const
Definition: THtml.h:309
TString fInputPath
Definition: THtml.h:221
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:620
TString fDotDir
Definition: THtml.h:226
R__EXTERN THtml * gHtml
Definition: THtml.h:429
void SetLocalFiles() const
Fill the files available in the file system below fPathInfo.fInputPath.
Definition: THtml.cxx:2410
void ReplaceSpecialChars(std::ostream &, const char *)
Definition: THtml.h:355
const PathInfo_t & GetPathInfo() const
Definition: THtml.h:345
void HelperDeleted(THelperBase *who)
Inform the THtml object that one of its helper objects was deleted.
Definition: THtml.cxx:1430
const TString & GetHeader() const
Definition: THtml.h:308
const TString & GetMacroPath() const
Definition: THtml.h:302
TFileSysEntry(const char *name, TFileSysDir *parent)
Definition: THtml.h:108
TFileSysDB(const char *path, const char *ignorePath, Int_t maxdirlevel)
Definition: THtml.h:176
virtual void GetModuleNameForClass(TString &module, TClass *cl) const
Return the module name for a given class.
Definition: THtml.cxx:1532
TString fROOTURL
Definition: THtml.h:371
void SetBatch(Bool_t batch=kTRUE)
Definition: THtml.h:352
A doubly linked list.
Definition: TList.h:44
THashTable & GetEntries()
Definition: THtml.h:181
DocEntityInfo_t fDocEntityInfo
Definition: THtml.h:419
TFileSysRoot(const char *name, TFileSysDB *parent)
Definition: THtml.h:159
TExMap fMapIno
Definition: THtml.h:189
void NormalizePath(TString &path) const
Remove "/./" and collapse "/subdir/../" to "/".
Definition: THtml.cxx:288
const TString & GetAuthorTag() const
Definition: THtml.h:305
const TString & GetSearchEngine() const
Definition: THtml.h:312
TString fClassFilter
Definition: THtml.h:388
TFileSysDB * GetLocalFiles() const
Definition: THtml.h:342
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:571
Bool_t fBatch
Definition: THtml.h:424
void SetEtcDir(const char *dir)
Definition: THtml.h:267
std::map< std::string, TString > fLibURLs
Definition: THtml.h:372
TString fCounter
Definition: THtml.h:408
const TModuleDefinition & GetModuleDefinition() const
Return the TModuleDefinition (or derived) object as set by SetModuleDefinition(); create and return a...
Definition: THtml.cxx:1303
THashList fModules
Definition: THtml.h:391
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
Definition: TObject.cxx:887
const char * ShortType(const char *name) const
Get short type name, i.e. with default templates removed.
Definition: THtml.cxx:2512
const char * GetURL(const char *lib=0) const
Get the documentation URL for library lib.
Definition: THtml.cxx:1387
void SetLibURL(const char *lib, const char *url)
Definition: THtml.h:271
TVirtualMutex * GetMakeClassMutex() const
Definition: THtml.h:343
const TString & GetOutputDir(Bool_t createDir=kTRUE) const
Return the output directory as set by SetOutputDir().
Definition: THtml.cxx:2169
void ExpandSearchPath(TString &path) const
Create all permutations of path and THtml&#39;s input path: path being PP/ and THtml&#39;s input being ...
Definition: THtml.cxx:205
TClass instances represent classes, structs and namespaces in the ROOT type system.
Definition: TClass.h:75
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:1462
TString fSearchStemURL
Definition: THtml.h:374
virtual bool GetModule(TClass *cl, TFileSysEntry *fse, TString &out_modulename) const
Set out_modulename to cl&#39;s module name; return true if it&#39;s valid.
Definition: THtml.cxx:103
void SetSourceDir(const char *dir)
Definition: THtml.h:265
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:2097
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:2432
const Bool_t kFALSE
Definition: RtypesCore.h:88
TString fLastUpdateTag
Definition: THtml.h:364
THashList fLibDeps
Definition: THtml.h:392
void SetSearchStemURL(const char *url)
Definition: THtml.h:283
void CreateListOfTypes()
Create index of all data types and a page for each typedef-to-class.
Definition: THtml.cxx:1897
const char * GetCounterFormat() const
Definition: THtml.h:303
Bool_t IsBatch() const
Definition: THtml.h:353
void SetRootURL(const char *url)
Definition: THtml.h:270
void SetCharset(const char *charset)
Definition: THtml.h:287
void SetXwho(const char *xwho)
Definition: THtml.h:272
TString fIgnorePath
Definition: THtml.h:191
void SetDotDir(const char *dir)
Definition: THtml.h:269
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:512
void CreateHierarchy()
Create the inheritance hierarchy diagram for all classes.
Definition: THtml.cxx:1928
virtual ~THelperBase()
Helper&#39;s destructor.
Definition: THtml.cxx:60
TString fDocStyle
Definition: THtml.h:366
unsigned long ULong_t
Definition: RtypesCore.h:51
TVirtualMutex * fMakeClassMutex
Definition: THtml.h:413
TCanvas * style()
Definition: style.C:1
TGClient * fGClient
Definition: THtml.h:414
const TList * GetFiles() const
Definition: THtml.h:143
TModuleDefinition * fModuleDef
Definition: THtml.h:421
Bool_t CopyFileFromEtcDir(const char *filename) const
Copy a file from $ROOTSYS/etc/html into GetOutputDir()
Definition: THtml.cxx:1907
virtual void GetHtmlFileName(TClass *classPtr, TString &filename) const
Return real HTML filename.
Definition: THtml.cxx:1993
void SetIncludePath(const char *dir)
Definition: THtml.h:266
TString fMacroPath
Definition: THtml.h:225
DocSyntax_t fDocSyntax
Definition: THtml.h:415
TString fEtcDir
Definition: THtml.h:227
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:2444
const TString & GetHomepage() const
Definition: THtml.h:310
void GetModuleMacroPath(const TString &module, TString &out_path) const
Definition: THtml.h:324
void SetFoundDot(Bool_t found=kTRUE)
Set whether "dot" (a GraphViz utility) is available.
Definition: THtml.cxx:2402
void SetHomepage(const char *url)
Definition: THtml.h:282
Mother of all ROOT objects.
Definition: TObject.h:37
virtual TClass * GetClass(const char *name) const
Return pointer to class with name.
Definition: THtml.cxx:2068
#define R__EXTERN
Definition: DllImport.h:27
PathInfo_t fPathInfo
Definition: THtml.h:418
void Fill()
Recursively fill entries by parsing the path specified in GetName(); can be a THtml::GetDirDelimiter(...
Definition: THtml.cxx:710
void SortListOfModules()
Definition: THtml.h:339
TString fIncludePath
Definition: THtml.h:222
void SetInputDir(const char *dir)
Set the directory containing the source files.
Definition: THtml.cxx:2461
const TString & GetCopyrightTag() const
Definition: THtml.h:307
Definition: file.py:1
const TString & GetSearchStemURL() const
Definition: THtml.h:311
void Recurse(TFileSysDB *db, const char *path)
Recursively fill entries by parsing the contents of path.
Definition: THtml.cxx:660
TFileSysDir(const char *name, TFileSysDir *parent)
Definition: THtml.h:140
OutputStyle_t fOutputStyle
Definition: THtml.h:417
THashList fShortClassNames
Definition: THtml.h:390
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:2420
const char * GetName() const
Returns name of object.
Definition: THtml.h:115
TString fCharset
Definition: THtml.h:383
THtml * GetOwner() const
Definition: THtml.h:49
virtual ULong_t Hash() const
Return hash value for this object.
Definition: THtml.h:116
const TList * GetListOfModules() const
Definition: THtml.h:340
const TPathDefinition & GetPathDefinition() const
Return the TModuleDefinition (or derived) object as set by SetModuleDefinition(); create and return a...
Definition: THtml.cxx:1331
virtual bool GetDeclFileName(const TClass *cl, TString &out_filename, TString &out_fsys, TFileSysEntry **fse=0) const
Determine cl&#39;s declaration file name.
Definition: THtml.cxx:261
TString fXwho
Definition: THtml.h:370
TString fWikiURL
Definition: THtml.h:377
const Bool_t kTRUE
Definition: RtypesCore.h:87
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:1275
const TString & GetXwho() const
Definition: THtml.h:301
Definition: THtml.h:40
char name[80]
Definition: TGX11.cxx:109
This class stores a (key,value) pair using an external hash.
Definition: TExMap.h:33
EDotAccess fFoundDot
Definition: THtml.h:220
const TString & GetModuleDocPath() const
Definition: THtml.h:298
TClassDocInfo * GetNextClass()
Return the next class to be generated for MakeClassThreaded.
Definition: THtml.cxx:1361