Logo ROOT   6.10/09
Reference Guide
TDocInfo.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_TDocInfo
13 #define ROOT_TDocInfo
14 
15 #include "TClass.h"
16 #include "THashList.h"
17 #include "TNamed.h"
18 #include <string>
19 #include <set>
20 
21 class TDictionary;
22 
23 class TModuleDocInfo;
24 //____________________________________________________________________
25 //
26 // Cache doc info for all known classes
27 //
28 class TClassDocInfo: public TObject {
29 public:
30  // initialize the object
32  const char* htmlfilename = "",
33  const char* fsdecl = "", const char* fsimpl = "",
34  const char* decl = 0, const char* impl = 0):
35  fClass(cl), fModule(0), fHtmlFileName(htmlfilename),
36  fDeclFileName(decl ? decl : cl->GetDeclFileName()),
37  fImplFileName(impl ? impl : cl->GetImplFileName()),
38  fDeclFileSysName(fsdecl), fImplFileSysName(fsimpl),
39  fSelected(kTRUE) { }
40 
42  const char* htmlfilename = "",
43  const char* fsdecl = "", const char* fsimpl = "",
44  const char* decl = 0, const char* impl = 0):
45  fClass(cl), fModule(0), fHtmlFileName(htmlfilename),
46  fDeclFileName(decl),
47  fImplFileName(impl),
48  fDeclFileSysName(fsdecl), fImplFileSysName(fsimpl),
49  fSelected(kTRUE) { }
50 
51  virtual ~TClassDocInfo() {}
52 
53  TDictionary* GetClass() const { return fClass; }
54  virtual const char* GetName() const;
55  const char* GetHtmlFileName() const { return fHtmlFileName; }
56  const char* GetDeclFileName() const { return fDeclFileName; }
57  const char* GetImplFileName() const { return fImplFileName; }
58  const char* GetDeclFileSysName() const { return fDeclFileSysName; }
59  const char* GetImplFileSysName() const { return fImplFileSysName; }
60 
61  void SetModule(TModuleDocInfo* module) { fModule = module; }
62  TModuleDocInfo* GetModule() const { return fModule; }
63 
64  void SetSelected(Bool_t sel = kTRUE) { fSelected = sel; }
65  Bool_t IsSelected() const { return fSelected; }
67  || (fClass && !dynamic_cast<TClass*>(fClass)); }
68 
69  void SetHtmlFileName(const char* name) { fHtmlFileName = name; }
70  void SetDeclFileName(const char* name) { fDeclFileName = name; }
71  void SetImplFileName(const char* name) { fImplFileName = name; }
72  void SetDeclFileSysName(const char* fsname) { fDeclFileSysName = fsname; }
73  void SetImplFileSysName(const char* fsname) { fImplFileSysName = fsname; }
74 
75  ULong_t Hash() const;
76 
78 
79  virtual Bool_t IsSortable() const { return kTRUE; }
80  virtual Int_t Compare(const TObject* obj) const;
81 
82 private:
83  TClassDocInfo();
84 
85  TDictionary* fClass; // class (or typedef) represented by this info object
86  TModuleDocInfo* fModule; // module this class is in
87  TString fHtmlFileName; // name of the HTML doc file
90  TString fDeclFileSysName; // file system's location of the header
91  TString fImplFileSysName; // file system's location of the source
92  TList fTypedefs; // typedefs to this class
93  Bool_t fSelected; // selected for doc output
94 
95  ClassDef(TClassDocInfo,0); // info cache for class documentation
96 };
97 
98 //____________________________________________________________________
99 //
100 // Cache doc info for all known modules
101 //
102 class TModuleDocInfo: public TNamed {
103 public:
104  TModuleDocInfo(const char* name, TModuleDocInfo* super, const char* doc = ""):
105  TNamed(name, doc), fSuper(super), fSub(0), fSelected(kTRUE) {
106  if (super) super->GetSub().Add(this);
107  }
108  virtual ~TModuleDocInfo() {}
109 
110  void SetDoc(const char* doc) { SetTitle(doc); }
111  const char* GetDoc() const { return GetTitle(); }
112 
113  void SetSelected(Bool_t sel = kTRUE) { fSelected = sel; }
114  Bool_t IsSelected() const { return fSelected; }
115 
116  void AddClass(TClassDocInfo* cl) { fClasses.Add(cl); }
117  TList* GetClasses() { return &fClasses; }
118 
119  TModuleDocInfo* GetSuper() const { return fSuper; }
120  THashList& GetSub() { return fSub; }
121 
122 private:
123  TModuleDocInfo* fSuper; // module containing this module
124  THashList fSub; // modules contained in this module
126  Bool_t fSelected; // selected for doc output
127 
128  ClassDef(TModuleDocInfo,0); // documentation for a group of classes
129 };
130 
131 //__________________________________________________________________________
132 //
133 // A library's documentation database:
134 // dependencies and sub-modules
135 //
136 class TLibraryDocInfo: public TNamed {
137  public:
139  TLibraryDocInfo(const char* lib): TNamed(lib, "") {}
140 
141  std::set<std::string>& GetDependencies() {return fDependencies;}
142  std::set<std::string>& GetModules() {return fModules;}
143  void AddDependency(const std::string& lib) {fDependencies.insert(lib);}
144  void AddModule(const std::string& module) {fModules.insert(module);}
145 
146  private:
147  std::set<std::string> fDependencies; // dependencies on other libraries
148  std::set<std::string> fModules; // modules in the library
149 
150  ClassDef(TLibraryDocInfo,0); // documentation for a library
151 };
152 
153 
154 #endif // ROOT_TDocInfo
std::set< std::string > fModules
Definition: TDocInfo.h:148
void SetSelected(Bool_t sel=kTRUE)
Definition: TDocInfo.h:113
void SetDoc(const char *doc)
Definition: TDocInfo.h:110
TDictionary * fClass
Definition: TDocInfo.h:85
virtual Int_t Compare(const TObject *obj) const
Compare abstract method.
Definition: TDocInfo.cxx:38
ULong_t Hash() const
Return hash value for this object.
Definition: TDocInfo.cxx:32
void AddDependency(const std::string &lib)
Definition: TDocInfo.h:143
void AddClass(TClassDocInfo *cl)
Definition: TDocInfo.h:116
virtual Bool_t IsSortable() const
Definition: TDocInfo.h:79
Bool_t IsSelected() const
Definition: TDocInfo.h:114
const char * GetImplFileSysName() const
Definition: TDocInfo.h:59
Basic string class.
Definition: TString.h:129
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
Bool_t IsSelected() const
Definition: TDocInfo.h:65
TString fDeclFileName
Definition: TDocInfo.h:88
std::set< std::string > & GetDependencies()
Definition: TDocInfo.h:141
TLibraryDocInfo(const char *lib)
Definition: TDocInfo.h:139
TModuleDocInfo(const char *name, TModuleDocInfo *super, const char *doc="")
Definition: TDocInfo.h:104
Bool_t fSelected
Definition: TDocInfo.h:126
#define ClassDef(name, id)
Definition: Rtypes.h:297
Bool_t HaveSource() const
Definition: TDocInfo.h:66
std::set< std::string > & GetModules()
Definition: TDocInfo.h:142
THashList implements a hybrid collection class consisting of a hash table and a list to store TObject...
Definition: THashList.h:34
The TNamed class is the base class for all named ROOT classes.
Definition: TNamed.h:29
const char * GetImplFileName() const
Definition: TDocInfo.h:57
TDictionary * GetClass() const
Definition: TDocInfo.h:53
Bool_t fSelected
Definition: TDocInfo.h:93
A doubly linked list.
Definition: TList.h:43
TClassDocInfo(TClass *cl, const char *htmlfilename="", const char *fsdecl="", const char *fsimpl="", const char *decl=0, const char *impl=0)
Definition: TDocInfo.h:31
TList & GetListOfTypedefs()
Definition: TDocInfo.h:77
virtual const char * GetName() const
Returns name of object.
Definition: TDocInfo.cxx:26
This class defines an abstract interface that must be implemented by all classes that contain diction...
Definition: TDictionary.h:158
TModuleDocInfo * GetModule() const
Definition: TDocInfo.h:62
TString fImplFileName
Definition: TDocInfo.h:89
Ssiz_t Length() const
Definition: TString.h:388
The ROOT global object gROOT contains a list of all defined classes.
Definition: TClass.h:71
THashList & GetSub()
Definition: TDocInfo.h:120
void SetImplFileName(const char *name)
Definition: TDocInfo.h:71
const char * GetHtmlFileName() const
Definition: TDocInfo.h:55
TString fDeclFileSysName
Definition: TDocInfo.h:90
TString fImplFileSysName
Definition: TDocInfo.h:91
TString fHtmlFileName
Definition: TDocInfo.h:87
unsigned long ULong_t
Definition: RtypesCore.h:51
void SetSelected(Bool_t sel=kTRUE)
Definition: TDocInfo.h:64
TList * GetClasses()
Definition: TDocInfo.h:117
TModuleDocInfo * fModule
Definition: TDocInfo.h:86
TClassDocInfo(TDictionary *cl, const char *htmlfilename="", const char *fsdecl="", const char *fsimpl="", const char *decl=0, const char *impl=0)
Definition: TDocInfo.h:41
const char * GetDoc() const
Definition: TDocInfo.h:111
void AddModule(const std::string &module)
Definition: TDocInfo.h:144
void SetImplFileSysName(const char *fsname)
Definition: TDocInfo.h:73
Mother of all ROOT objects.
Definition: TObject.h:37
virtual const char * GetTitle() const
Returns title of object.
Definition: TObject.cxx:408
THashList fSub
Definition: TDocInfo.h:124
void SetHtmlFileName(const char *name)
Definition: TDocInfo.h:69
virtual void Add(TObject *obj)
Definition: TList.h:77
void SetDeclFileSysName(const char *fsname)
Definition: TDocInfo.h:72
TModuleDocInfo * GetSuper() const
Definition: TDocInfo.h:119
virtual ~TModuleDocInfo()
Definition: TDocInfo.h:108
TList fTypedefs
Definition: TDocInfo.h:92
TList fClasses
Definition: TDocInfo.h:125
virtual ~TClassDocInfo()
Definition: TDocInfo.h:51
const char * GetDeclFileSysName() const
Definition: TDocInfo.h:58
const char * GetDeclFileName() const
Definition: TDocInfo.h:56
const Bool_t kTRUE
Definition: RtypesCore.h:91
std::set< std::string > fDependencies
Definition: TDocInfo.h:147
void SetDeclFileName(const char *name)
Definition: TDocInfo.h:70
TModuleDocInfo * fSuper
Definition: TDocInfo.h:123
void SetModule(TModuleDocInfo *module)
Definition: TDocInfo.h:61