ROOT  6.06/09
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 #ifndef ROOT_THashList
26 #include "THashList.h"
27 #endif
28 
29 #ifndef ROOT_THashTable
30 #include "THashTable.h"
31 #endif
32 
33 #ifndef ROOT_TExMap
34 #include "TExMap.h"
35 #endif
36 
37 #include <map>
38 
39 class TClass;
40 class TClassDocInfo;
41 class TGClient;
42 class TVirtualMutex;
43 
44 class THtml: public TObject {
45 public:
46  //______________________________________________________________
47  // Helper base class.
48  class THelperBase: public TObject {
49  public:
50  THelperBase(): fHtml(0) {}
51  virtual ~THelperBase();
52  void SetOwner(THtml* html);
53  THtml* GetOwner() const { return fHtml; }
54  private:
55  THtml* fHtml; // object owning the helper
56  ClassDef(THelperBase, 0); // a helper object's base class
57  };
58 
59  class TFileSysEntry;
60 
61  //______________________________________________________________
62  // Helper class to translate between classes and their
63  // modules. Can be derived from and thus replaced by
64  // the user; see THtml::SetModuleDefinition().
66  public:
67  virtual bool GetModule(TClass* cl, TFileSysEntry* fse, TString& out_modulename) const;
68  ClassDef(TModuleDefinition, 0); // helper class to determine a class's module
69  };
70 
71  //______________________________________________________________
72  // Helper class to translate between classes and their
73  // filenames. Can be derived from and thus replaced by
74  // the user; see THtml::SetFileDefinition().
75  class TFileDefinition: public THelperBase {
76  public:
77  virtual bool GetDeclFileName(const TClass* cl, TString& out_filename, TString& out_fsys,
78  TFileSysEntry** fse = 0) const;
79  virtual bool GetImplFileName(const TClass* cl, TString& out_filename, TString& out_fsys,
80  TFileSysEntry** fse = 0) const;
81  protected:
82  virtual bool GetFileName(const TClass* cl, bool decl, TString& out_filename, TString& out_fsys,
83  TFileSysEntry** fse = 0) const;
85 
86  void SplitClassIntoDirFile(const TString& clname, TString& dir, TString& filename) const;
87  void NormalizePath(TString& path) const;
88  void ExpandSearchPath(TString& path) const;
89  ClassDef(TFileDefinition, 0); // helper class to determine a class's source files
90  };
91 
92  //______________________________________________________________
93  // Helper class to translate between file names and their
94  // version used for documentation. Can be derived from and thus
95  // replaced by the user; see THtml::SetPathDefinition().
96  class TPathDefinition: public THelperBase {
97  public:
98  virtual bool GetMacroPath(const TString& module, TString& out_dir) const;
99  virtual bool GetIncludeAs(TClass* cl, TString& out_include_as) const;
100  virtual bool GetFileNameFromInclude(const char* included, TString& out_fsname) const;
101  virtual bool GetDocDir(const TString& module, TString& doc_dir) const;
102  protected:
103  ClassDef(TPathDefinition, 0); // helper class to determine directory layouts
104  };
105 
106  class TFileSysDir;
107  class TFileSysDB;
108  //______________________________________________________________
109  // Utility class representing a directory entry
110  class TFileSysEntry: public TObject {
111  public:
112  TFileSysEntry(const char* name, TFileSysDir* parent):
113  fName(name), fParent(parent), fLevel(parent ? parent->GetLevel() + 1 : 0) {}
114  const char* GetName() const { return fName; }
115  virtual ULong_t Hash() const { return fName.Hash(); }
116  virtual void GetFullName(TString& fullname, Bool_t asIncluded) const {
117  if (fParent) {
118  fParent->GetFullName(fullname, asIncluded);
119  if (fullname[0])
120  fullname += "/";
121  } else
122  fullname = "";
123  fullname += fName;
124  }
125 
126  TFileSysDir* GetParent() const { return fParent; }
127  Int_t GetLevel() const { return fLevel; }
128  protected:
129  TString fName; // name of the element
130  TFileSysDir* fParent; // parent directory
131  Int_t fLevel; // level of directory
132  ClassDef(TFileSysEntry, 0); // an entry of the local file system
133  };
134 
135  //______________________________________________________________
136  // Utility class representing a directory
137  class TFileSysDir: public TFileSysEntry {
138  public:
139  TFileSysDir(const char* name, TFileSysDir* parent):
140  TFileSysEntry(name, parent)
141  { fFiles.SetOwner(); fDirs.SetOwner(); }
142  const TList* GetFiles() const { return &fFiles; }
143  const TList* GetSubDirs() const { return &fDirs; }
144 
145  void Recurse(TFileSysDB* db, const char* path);
146 
147  protected:
150  ClassDef(TFileSysDir, 0); // an directory of the local file system
151  };
152 
153  //______________________________________________________________
154  // Utility class representing a root directory as specified in
155  // THtml::GetInputPath()
156  class TFileSysRoot: public TFileSysDir {
157  public:
158  TFileSysRoot(const char* name, TFileSysDB* parent):
159  TFileSysDir(name, parent) {}
160  void GetFullName(TString& fullname, Bool_t asIncluded) const {
161  // prepend directory part of THtml::GetInputPath() only
162  // if !asIncluded
163  fullname = "";
164  if (!asIncluded)
165  fullname += fName;
166  }
167 
168  ClassDef(TFileSysRoot, 0); // an root directory of the local file system
169  };
170 
171  //______________________________________________________________
172  // Utility class representing a directory
173  class TFileSysDB: public TFileSysDir {
174  public:
175  TFileSysDB(const char* path, const char* ignorePath, Int_t maxdirlevel):
176  TFileSysDir(path, 0), fEntries(1009, 5), fIgnorePath(ignorePath), fMaxLevel(maxdirlevel)
177  { Fill(); }
178 
179  TExMap& GetMapIno() { return fMapIno; }
181  const TString& GetIgnore() const { return fIgnorePath; }
182  Int_t GetMaxLevel() const { return fMaxLevel; }
183 
184  protected:
185  void Fill();
186 
187  private:
188  TExMap fMapIno; // inode to TFileSysDir map, to detect softlinks
189  THashTable fEntries; // hash map of all filenames without paths
190  TString fIgnorePath; // regexp of path to ignore while building entry tree
191  Int_t fMaxLevel; // maximum level of directory nesting
192  ClassDef(TFileSysDB, 0); // instance of file system data
193  };
194 
195 
196  //______________________________________________________________
197  // Configuration holder for path related settings
198  struct PathInfo_t {
199  enum EDotAccess {
203  };
204 
207 #ifdef R__WIN32
208  fInputPath("./;src/;include/"),
209 #else
210  fInputPath("./:src/:include/"),
211 #endif
212  fIncludePath("include"),
213  // .whatever implicitly ignored, no need to add .svn!
214  fIgnorePath("\\b(include|CVS|test|tutorials|doc|lib|python|demo|freetype-|gdk|libAfterImage|etc|config|build|bin)\\b"),
215  fDocPath("doc"),
216  fMacroPath("macros:."),
217  fOutputDir("htmldoc") {}
218 
219  EDotAccess fFoundDot; // whether dot is accessible
220  TString fInputPath; // directories to look for classes; prepended to Decl/ImplFileName()
221  TString fIncludePath; // directory prefixes (":" delimited) to remove when quoting include files
222  TString fIgnorePath; // regexp pattern for directories to ignore ("\b(CVS|\.svn)\b") for ROOT
223  TString fDocPath; // subdir to check for module documentation ("doc" for ROOT)
224  TString fMacroPath; // subdir of fDocPath for macros run via the Begin/End Macro directive; ("macros" for ROOT)
225  TString fDotDir; // directory of GraphViz's dot binary
226  TString fEtcDir; // directory containing auxiliary files
227  TString fOutputDir; // output directory
228  };
229 
230 
231 public:
233  kNoOutput, // do not run the source, do not show its output
234  kInterpretedOutput, // interpret the source and show output
235  kCompiledOutput, // run the source through ACLiC and show output
236  kForceOutput = 0x10, // re-generate the output files (canvas PNGs)
237  kSeparateProcessOutput = 0x20 // run the script in a separate process
238  };
239 
240  THtml();
241  virtual ~THtml();
242 
243  static void LoadAllLibs();
244 
245  // Functions to generate documentation
246  void Convert(const char *filename, const char *title,
247  const char *dirname = "", const char *relpath="../",
248  Int_t includeOutput = kNoOutput,
249  const char* context = "");
250  void CreateHierarchy();
251  void MakeAll(Bool_t force=kFALSE, const char *filter="*",
252  int numthreads = 1);
253  void MakeClass(const char *className, Bool_t force=kFALSE);
254  void MakeIndex(const char *filter="*");
255  void MakeTree(const char *className, Bool_t force=kFALSE);
256 
257  // Configuration setters
258  void SetModuleDefinition(const TModuleDefinition& md);
259  void SetFileDefinition(const TFileDefinition& fd);
260  void SetPathDefinition(const TPathDefinition& pd);
261  void SetProductName(const char* product) { fProductName = product; }
262  void SetOutputDir(const char *dir);
263  void SetInputDir(const char *dir);
264  void SetSourceDir(const char *dir) { SetInputDir(dir); }
265  void SetIncludePath(const char* dir) { fPathInfo.fIncludePath = dir; }
266  void SetEtcDir(const char* dir) { fPathInfo.fEtcDir = dir; }
267  void SetDocPath(const char* path) { fPathInfo.fDocPath = path; }
269  void SetRootURL(const char* url) { fLinkInfo.fROOTURL = url; }
270  void SetLibURL(const char* lib, const char* url) { fLinkInfo.fLibURLs[lib] = url; }
271  void SetXwho(const char *xwho) { fLinkInfo.fXwho = xwho; }
272  void SetMacroPath(const char* path) {fPathInfo.fMacroPath = path;}
273  void AddMacroPath(const char* path);
274  void SetCounterFormat(const char* format) { fCounterFormat = format; }
275  void SetClassDocTag(const char* tag) { fDocSyntax.fClassDocTag = tag; }
276  void SetAuthorTag(const char* tag) { fDocSyntax.fAuthorTag = tag; }
277  void SetLastUpdateTag(const char* tag) { fDocSyntax.fLastUpdateTag = tag; }
278  void SetCopyrightTag(const char* tag) { fDocSyntax.fCopyrightTag = tag; }
279  void SetHeader(const char* file) { fOutputStyle.fHeader = file; }
280  void SetFooter(const char* file) { fOutputStyle.fFooter = file; }
281  void SetHomepage(const char* url) { fLinkInfo.fHomepage = url; }
282  void SetSearchStemURL(const char* url) { fLinkInfo.fSearchStemURL = url; }
283  void SetSearchEngine(const char* url) { fLinkInfo.fSearchEngine = url; }
284  void SetViewCVS(const char* url) { fLinkInfo.fViewCVS = url; }
285  void SetWikiURL(const char* url) { fLinkInfo.fWikiURL = url; }
286  void SetCharset(const char* charset) { fOutputStyle.fCharset = charset; }
287  void SetDocStyle(const char* style) { fDocSyntax.fDocStyle = style; }
288 
289  // Configuration getters
290  const TModuleDefinition& GetModuleDefinition() const;
291  const TFileDefinition& GetFileDefinition() const;
292  const TPathDefinition& GetPathDefinition() const;
293  const TString& GetProductName() const { return fProductName; }
294  const TString& GetInputPath() const { return fPathInfo.fInputPath; }
295  const TString& GetOutputDir(Bool_t createDir = kTRUE) const;
296  virtual const char* GetEtcDir() const;
297  const TString& GetModuleDocPath() const { return fPathInfo.fDocPath; }
298  const TString& GetDotDir() const { return fPathInfo.fDotDir; }
299  const char* GetURL(const char* lib = 0) const;
300  const TString& GetXwho() const { return fLinkInfo.fXwho; }
301  const TString& GetMacroPath() const { return fPathInfo.fMacroPath; }
302  const char* GetCounterFormat() const { return fCounterFormat; }
303  const TString& GetClassDocTag() const { return fDocSyntax.fClassDocTag; }
304  const TString& GetAuthorTag() const { return fDocSyntax.fAuthorTag; }
306  const TString& GetCopyrightTag() const { return fDocSyntax.fCopyrightTag; }
307  const TString& GetHeader() const { return fOutputStyle.fHeader; }
308  const TString& GetFooter() const { return fOutputStyle.fFooter; }
309  const TString& GetHomepage() const { return fLinkInfo.fHomepage; }
311  const TString& GetSearchEngine() const { return fLinkInfo.fSearchEngine; }
312  const TString& GetViewCVS() const { return fLinkInfo.fViewCVS; }
313  const TString& GetWikiURL() const { return fLinkInfo.fWikiURL; }
314  const TString& GetCharset() const { return fOutputStyle.fCharset; }
315  const TString& GetDocStyle() const { return fDocSyntax.fDocStyle; }
316 
317  // Functions that should only be used by TDocOutput etc.
318  Bool_t CopyFileFromEtcDir(const char* filename) const;
319  virtual void CreateAuxiliaryFiles() const;
320  virtual TClass* GetClass(const char *name) const;
321  const char* ShortType(const char *name) const;
322  const char* GetCounter() const { return fCounter; }
323  void GetModuleMacroPath(const TString& module, TString& out_path) const { GetPathDefinition().GetMacroPath(module, out_path); }
324  virtual bool GetDeclFileName(TClass* cl, Bool_t filesys, TString& out_name) const;
325  void GetDerivedClasses(TClass* cl, std::map<TClass*, Int_t>& derived) const;
326  static const char* GetDirDelimiter() {
327  // ";" on windows, ":" everywhere else
328 #ifdef R__WIN32
329  return ";";
330 #else
331  return ":";
332 #endif
333  }
334  virtual bool GetImplFileName(TClass* cl, Bool_t filesys, TString& out_name) const;
335  virtual void GetHtmlFileName(TClass *classPtr, TString& filename) const;
336  virtual const char* GetHtmlFileName(const char* classname) const;
339  const TList* GetListOfModules() const { return &fDocEntityInfo.fModules; }
340  const TList* GetListOfClasses() const { return &fDocEntityInfo.fClasses; }
343  virtual void GetModuleNameForClass(TString& module, TClass* cl) const;
344  const PathInfo_t& GetPathInfo() const { return fPathInfo; }
345  Bool_t HaveDot();
346  void HelperDeleted(THelperBase* who);
347  static Bool_t IsNamespace(const TClass*cl);
348  void SetDeclFileName(TClass* cl, const char* filename);
349  void SetFoundDot(Bool_t found = kTRUE);
350  void SetImplFileName(TClass* cl, const char* filename);
351  void SetBatch(Bool_t batch = kTRUE) { fBatch = batch; }
352  Bool_t IsBatch() const { return fBatch; }
353  // unused
354  void ReplaceSpecialChars(std::ostream&, const char*) {
355  Error("ReplaceSpecialChars",
356  "Removed, call TDocOutput::ReplaceSpecialChars() instead!"); }
357  void SetEscape(char /*esc*/ ='\\') {} // for backward comp
358 
359 protected:
360  struct DocSyntax_t {
361  TString fClassDocTag; // tag for class documentation
362  TString fAuthorTag; // tag for author
363  TString fLastUpdateTag; // tag for last update
364  TString fCopyrightTag; // tag for copyright
365  TString fDocStyle; // doc style (only "Doc++" has special treatment)
366  };
367 
368  struct LinkInfo_t {
369  TString fXwho; // URL for name lookup
370  TString fROOTURL; // Root URL for ROOT's reference guide for libs that are not in fLibURLs
371  std::map<std::string, TString> fLibURLs; // URL for documentation of external libraries
372  TString fHomepage; // URL of homepage
373  TString fSearchStemURL; // URL stem used to build search URL
374  TString fSearchEngine; // link to search engine
375  TString fViewCVS; // link to ViewCVS; %f is replaced by the filename (no %f: it's appended)
376  TString fWikiURL; // URL stem of class's wiki page, %c replaced by mangled class name (no %c: appended)
377  };
378 
379  struct OutputStyle_t {
380  TString fHeader; // header file name
381  TString fFooter; // footerer file name
382  TString fCharset; // Charset for doc pages
383  };
384 
386  DocEntityInfo_t(): fClasses(503, 3) {}
387  TString fClassFilter; // filter used for buidling known classes
388  THashList fClasses; // known classes
389  mutable THashList fShortClassNames; // class names with default template args replaced
390  THashList fModules; // known modules
391  THashList fLibDeps; // Library dependencies
392  };
393 
394 protected:
395  virtual void CreateJavascript() const;
396  virtual void CreateStyleSheet() const;
397  void CreateListOfTypes();
398  void CreateListOfClasses(const char* filter);
399  virtual bool GetDeclImplFileName(TClass* cl, bool filesys, bool decl, TString& out_name) const;
400  void MakeClass(void* cdi, Bool_t force=kFALSE);
402  void SetLocalFiles() const;
403 
404  static void *MakeClassThreaded(void* info);
405 
406 protected:
407  TString fCounter; // counter string
408  TString fCounterFormat; // counter printf-like format
409  TString fProductName; // name of the product to document
410  TIter *fThreadedClassIter; // fClasses iterator for MakeClassThreaded
411  Int_t fThreadedClassCount; // counter of processed classes for MakeClassThreaded
412  TVirtualMutex *fMakeClassMutex; // Mutex for MakeClassThreaded
413  TGClient *fGClient; // gClient, cached and queried through CINT
414  DocSyntax_t fDocSyntax; // doc syntax configuration
415  LinkInfo_t fLinkInfo; // link (URL) configuration
416  OutputStyle_t fOutputStyle; // output style configuration
417  mutable PathInfo_t fPathInfo; // path configuration
418  DocEntityInfo_t fDocEntityInfo; // data for documented entities
419  mutable TPathDefinition *fPathDef; // object translating classes to module names
420  mutable TModuleDefinition *fModuleDef; // object translating classes to module names
421  mutable TFileDefinition* fFileDef; // object translating classes to file names
422  mutable TFileSysDB *fLocalFiles; // files found locally for a given source path
423  Bool_t fBatch; // Whether to enable GUI output
424 
425  ClassDef(THtml,0) //Convert class(es) into HTML file(s)
426 };
427 
429 
430 #endif
TPathDefinition * fPathDef
Definition: THtml.h:419
const char * GetName() const
Returns name of object.
Definition: THtml.h:114
static Bool_t IsNamespace(const TClass *cl)
Check whether cl is a namespace.
Definition: THtml_001.C:935
void MakeIndex(const char *filter="*")
Create the index files for the product, modules, all types, etc.
Definition: THtml_001.C:1134
void SetFooter(const char *file)
Definition: THtml.h:280
void SetLocalFiles() const
Fill the files available in the file system below fPathInfo.fInputPath.
Definition: THtml_001.C:1183
static void * MakeClassThreaded(void *info)
Entry point of worker threads for multi-threaded MakeAll().
Definition: THtml_001.C:1118
void SetSearchEngine(const char *url)
Definition: THtml.h:283
void SetProductName(const char *product)
Definition: THtml.h:261
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:103
void SetHeader(const char *file)
Definition: THtml.h:279
TFileSysDB * fLocalFiles
Definition: THtml.h:422
TString fProductName
Definition: THtml.h:409
Bool_t CopyFileFromEtcDir(const char *filename) const
Copy a file from $ROOTSYS/etc/html into GetOutputDir()
Definition: THtml_001.C:645
Int_t fThreadedClassCount
Definition: THtml.h:411
Bool_t HaveDot()
Check whether dot is available in $PATH or in the directory set by SetDotPath()
Definition: THtml_001.C:142
void SetEscape(char='\\')
Definition: THtml.h:357
TFileSysDir * GetParent() const
Definition: THtml.h:126
void SetDocPath(const char *path)
Definition: THtml.h:267
virtual void CreateAuxiliaryFiles() const
copy CSS, javascript file, etc to the output dir
Definition: THtml_001.C:19
ClassDef(TFileSysDir, 0)
TString fFooter
Definition: THtml.h:381
const PathInfo_t & GetPathInfo() const
Definition: THtml.h:344
void SetLastUpdateTag(const char *tag)
Definition: THtml.h:277
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:284
LinkInfo_t fLinkInfo
Definition: THtml.h:415
EConvertOutput
Definition: THtml.h:232
static const char * GetDirDelimiter()
Definition: THtml.h:326
virtual void GetFullName(TString &fullname, Bool_t asIncluded) const
Definition: THtml.h:116
TFileSysDir * fParent
Definition: THtml.h:130
TString fClassDocTag
Definition: THtml.h:361
TFileDefinition * fFileDef
Definition: THtml.h:421
void SetMacroPath(const char *path)
Definition: THtml.h:272
void GetFullName(TString &fullname, Bool_t asIncluded) const
Definition: THtml.h:160
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:73
THashList fClasses
Definition: THtml.h:388
static void LoadAllLibs()
Load all libraries known to ROOT via the rootmap system.
Definition: THtml_001.C:943
This class implements a mutex interface.
Definition: TVirtualMutex.h:34
static const char * filename()
THtml * fHtml
Definition: THtml.h:55
TString fHomepage
Definition: THtml.h:372
virtual ~THtml()
Default destructor.
Definition: THtml.cxx:1254
TString fViewCVS
Definition: THtml.h:375
Basic string class.
Definition: TString.h:137
const TPathDefinition & GetPathDefinition() const
Return the TModuleDefinition (or derived) object as set by SetModuleDefinition(); create and return a...
Definition: THtml_001.C:59
TIter * fThreadedClassIter
Definition: THtml.h:410
const TString & GetInputPath() const
Definition: THtml.h:294
int Int_t
Definition: RtypesCore.h:41
Int_t GetMaxLevel() const
Definition: THtml.h:182
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 SetDocStyle(const char *style)
Definition: THtml.h:287
bool Bool_t
Definition: RtypesCore.h:59
const Bool_t kFALSE
Definition: Rtypes.h:92
TString fCounterFormat
Definition: THtml.h:408
void SetWikiURL(const char *url)
Definition: THtml.h:285
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_001.C:991
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
TString fAuthorTag
Definition: THtml.h:362
void MakeTree(const char *className, Bool_t force=kFALSE)
Make an inheritance tree.
Definition: THtml_001.C:1158
static std::string format(double x, double y, int digits, int width)
void GetModuleMacroPath(const TString &module, TString &out_path) const
Definition: THtml.h:323
const char * ShortType(const char *name) const
Get short type name, i.e. with default templates removed.
Definition: THtml_001.C:1285
void SetCounterFormat(const char *format)
Definition: THtml.h:274
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 bool GetDeclImplFileName(TClass *cl, bool filesys, bool decl, TString &out_name) const
Combined implementation for GetDeclFileName(), GetImplFileName(): Return declaration / implementation...
Definition: THtml_001.C:856
Int_t fMaxLevel
Definition: THtml.h:191
const TString & GetLastUpdateTag() const
Definition: THtml.h:305
TString fDocPath
Definition: THtml.h:223
const TList * GetSubDirs() const
Definition: THtml.h:143
void SetDeclFileName(TClass *cl, const char *filename)
Explicitly set a decl file name for TClass cl.
Definition: THtml_001.C:1259
THashTable fEntries
Definition: THtml.h:189
void SetOutputDir(const char *dir)
Set the directory where the HTML pages shuold be written to.
Definition: THtml_001.C:1248
TString fOutputDir
Definition: THtml.h:227
const char * GetCounterFormat() const
Definition: THtml.h:302
virtual bool GetDocDir(const TString &module, TString &doc_dir) const
Determine the module's documentation directory.
Definition: THtml.cxx:541
void SetClassDocTag(const char *tag)
Definition: THtml.h:275
virtual void Sort(Bool_t order=kSortAscending)
Sort linked list.
Definition: TList.cxx:770
void SetCopyrightTag(const char *tag)
Definition: THtml.h:278
TString fHeader
Definition: THtml.h:380
ClassDef(TModuleDefinition, 0)
THtml * GetOwner() const
Definition: THtml.h:53
void SetImplFileName(TClass *cl, const char *filename)
Explicitly set a impl file name for TClass cl.
Definition: THtml_001.C:1272
void MakeClass(const char *className, Bool_t force=kFALSE)
Make HTML files for a single class.
Definition: THtml_001.C:1057
TString fIgnorePath
Definition: THtml.h:222
TExMap & GetMapIno()
Definition: THtml.h:179
const TFileDefinition & GetFileDefinition() const
Return the TFileDefinition (or derived) object as set by SetFileDefinition(); create and return a TFi...
Definition: THtml_001.C:45
THashTable implements a hash table to store TObject's.
Definition: THashTable.h:39
TString fCopyrightTag
Definition: THtml.h:364
Bool_t IsBatch() const
Definition: THtml.h:352
#define ClassDef(name, id)
Definition: Rtypes.h:254
virtual void GetModuleNameForClass(TString &module, TClass *cl) const
Return the module name for a given class.
Definition: THtml_001.C:269
THashList implements a hybrid collection class consisting of a hash table and a list to store TObject...
Definition: THashList.h:36
TList * GetLibraryDependencies()
Definition: THtml.h:337
virtual ULong_t Hash() const
Return hash value for this object.
Definition: THtml.h:115
void CreateListOfClasses(const char *filter)
Create the list of all known classes.
Definition: THtml_001.C:284
ClassDef(TFileSysRoot, 0)
virtual void CreateJavascript() const
Write the default ROOT style sheet.
Definition: THtml_001.C:675
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
TString fSearchEngine
Definition: THtml.h:374
void SetAuthorTag(const char *tag)
Definition: THtml.h:276
const TString & GetAuthorTag() const
Definition: THtml.h:304
TString fInputPath
Definition: THtml.h:220
TString fDotDir
Definition: THtml.h:225
R__EXTERN THtml * gHtml
Definition: THtml.h:428
void ReplaceSpecialChars(std::ostream &, const char *)
Definition: THtml.h:354
void HelperDeleted(THelperBase *who)
Inform the THtml object that one of its helper objects was deleted.
Definition: THtml_001.C:169
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
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
Definition: TObject.cxx:918
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:261
const char * GetCounter() const
Definition: THtml.h:322
TFileSysEntry(const char *name, TFileSysDir *parent)
Definition: THtml.h:112
TFileSysDB(const char *path, const char *ignorePath, Int_t maxdirlevel)
Definition: THtml.h:175
const TList * GetListOfClasses() const
Definition: THtml.h:340
TString fROOTURL
Definition: THtml.h:370
const char * GetURL(const char *lib=0) const
Get the documentation URL for library lib.
Definition: THtml_001.C:126
void SetBatch(Bool_t batch=kTRUE)
Definition: THtml.h:351
const TString & GetXwho() const
Definition: THtml.h:300
Int_t GetLevel() const
Definition: THtml.h:127
A doubly linked list.
Definition: TList.h:47
THashTable & GetEntries()
Definition: THtml.h:180
const TList * GetFiles() const
Definition: THtml.h:142
DocEntityInfo_t fDocEntityInfo
Definition: THtml.h:418
TFileSysRoot(const char *name, TFileSysDB *parent)
Definition: THtml.h:158
TExMap fMapIno
Definition: THtml.h:188
const TString & GetModuleDocPath() const
Definition: THtml.h:297
TString fClassFilter
Definition: THtml.h:387
const TString & GetHomepage() const
Definition: THtml.h:309
Bool_t fBatch
Definition: THtml.h:423
void SetEtcDir(const char *dir)
Definition: THtml.h:266
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_001.C:694
std::map< std::string, TString > fLibURLs
Definition: THtml.h:371
const TString & GetFooter() const
Definition: THtml.h:308
TString fCounter
Definition: THtml.h:407
virtual void CreateStyleSheet() const
Write the default ROOT style sheet.
Definition: THtml_001.C:682
THashList fModules
Definition: THtml.h:390
ClassDef(TPathDefinition, 0)
const TString & GetWikiURL() const
Definition: THtml.h:313
void SetLibURL(const char *lib, const char *url)
Definition: THtml.h:270
The ROOT global object gROOT contains a list of all defined classes.
Definition: TClass.h:81
TFileSysDB * GetLocalFiles() const
Definition: THtml.h:341
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_001.C:201
const TModuleDefinition & GetModuleDefinition() const
Return the TModuleDefinition (or derived) object as set by SetModuleDefinition(); create and return a...
Definition: THtml_001.C:31
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
void NormalizePath(TString &path) const
Remove "/./" and collapse "/subdir/../" to "/".
Definition: THtml.cxx:288
TString fSearchStemURL
Definition: THtml.h:373
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:205
void SetSourceDir(const char *dir)
Definition: THtml.h:264
TVirtualMutex * GetMakeClassMutex() const
Definition: THtml.h:342
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_001.C:1205
const TString & GetDocStyle() const
Definition: THtml.h:315
TString fLastUpdateTag
Definition: THtml.h:363
THashList fLibDeps
Definition: THtml.h:391
void SetSearchStemURL(const char *url)
Definition: THtml.h:282
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_001.C:838
void CreateListOfTypes()
Create index of all data types and a page for each typedef-to-class.
Definition: THtml_001.C:635
void SetRootURL(const char *url)
Definition: THtml.h:269
void SetCharset(const char *charset)
Definition: THtml.h:286
void SetXwho(const char *xwho)
Definition: THtml.h:271
TString fIgnorePath
Definition: THtml.h:190
ClassDef(TFileSysEntry, 0)
void SetDotDir(const char *dir)
Definition: THtml.h:268
const TString & GetMacroPath() const
Definition: THtml.h:301
virtual TClass * GetClass(const char *name) const
*-*-*-*-*Return pointer to class with name*-*-*-*-*-*-*-*-*-*-*-*-* *-* =============================...
Definition: THtml_001.C:807
ClassDef(THelperBase, 0)
const TList * GetListOfModules() const
Definition: THtml.h:339
void CreateHierarchy()
Create the inheritance hierarchy diagram for all classes.
Definition: THtml_001.C:666
virtual ~THelperBase()
Helper's destructor.
Definition: THtml.cxx:60
TString fDocStyle
Definition: THtml.h:365
unsigned long ULong_t
Definition: RtypesCore.h:51
TVirtualMutex * fMakeClassMutex
Definition: THtml.h:412
const TString & GetHeader() const
Definition: THtml.h:307
TCanvas * style()
Definition: style.C:1
TGClient * fGClient
Definition: THtml.h:413
TModuleDefinition * fModuleDef
Definition: THtml.h:420
void SetIncludePath(const char *dir)
Definition: THtml.h:265
TString fMacroPath
Definition: THtml.h:224
DocSyntax_t fDocSyntax
Definition: THtml.h:414
TString fEtcDir
Definition: THtml.h:226
virtual const char * GetEtcDir() const
Get the directory containing THtml's auxiliary files ($ROOTSYS/etc/html)
Definition: THtml_001.C:72
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_001.C:1217
const TString & GetSearchEngine() const
Definition: THtml.h:311
void SetFoundDot(Bool_t found=kTRUE)
Set whether "dot" (a GraphViz utility) is available.
Definition: THtml_001.C:1175
const TString & GetProductName() const
Definition: THtml.h:293
#define name(a, b)
Definition: linkTestLib0.cpp:5
void SetHomepage(const char *url)
Definition: THtml.h:281
Mother of all ROOT objects.
Definition: TObject.h:58
const TString & GetViewCVS() const
Definition: THtml.h:312
const TString & GetCharset() const
Definition: THtml.h:314
#define R__EXTERN
Definition: DllImport.h:27
PathInfo_t fPathInfo
Definition: THtml.h:417
else
Definition: TBase64.cxx:55
ClassDef(TFileSysDB, 0)
void Fill()
Recursively fill entries by parsing the path specified in GetName(); can be a THtml::GetDirDelimiter(...
Definition: THtml.cxx:709
void SortListOfModules()
Definition: THtml.h:338
TString fIncludePath
Definition: THtml.h:221
ClassDef(TFileDefinition, 0)
void SetInputDir(const char *dir)
Set the directory containing the source files.
Definition: THtml_001.C:1234
void Recurse(TFileSysDB *db, const char *path)
Recursively fill entries by parsing the contents of path.
Definition: THtml.cxx:660
const TString & GetIgnore() const
Definition: THtml.h:181
const TString & GetOutputDir(Bool_t createDir=kTRUE) const
Return the output directory as set by SetOutputDir().
Definition: THtml_001.C:910
TFileSysDir(const char *name, TFileSysDir *parent)
Definition: THtml.h:139
OutputStyle_t fOutputStyle
Definition: THtml.h:416
THashList fShortClassNames
Definition: THtml.h:389
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_001.C:1193
TString fCharset
Definition: THtml.h:382
const TString & GetSearchStemURL() const
Definition: THtml.h:310
const Bool_t kTRUE
Definition: Rtypes.h:91
TString fXwho
Definition: THtml.h:369
virtual bool GetImplFileName(TClass *cl, Bool_t filesys, TString &out_name) const
Return implementation file name.
Definition: THtml_001.C:846
TString fWikiURL
Definition: THtml.h:376
void AddMacroPath(const char *path)
that the directive is run on.
Definition: THtml_001.C:3
const TString & GetDotDir() const
Definition: THtml.h:298
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:278
Definition: THtml.h:44
This class stores a (key,value) pair using an external hash.
Definition: TExMap.h:35
EDotAccess fFoundDot
Definition: THtml.h:219
const TString & GetCopyrightTag() const
Definition: THtml.h:306
virtual void GetHtmlFileName(TClass *classPtr, TString &filename) const
Return real HTML filename.
Definition: THtml_001.C:731
const TString & GetClassDocTag() const
Definition: THtml.h:303
TClassDocInfo * GetNextClass()
Return the next class to be generated for MakeClassThreaded.
Definition: THtml_001.C:100
UInt_t Hash(ECaseCompare cmp=kExact) const
Return hash value.
Definition: TString.cxx:605