library: libHtml #include "THtml.h" |
THtml() | |
virtual | ~THtml() |
void | TObject::AbstractMethod(const char* method) const |
virtual void | TObject::AppendPad(Option_t* option = "") |
virtual void | TObject::Browse(TBrowser* b) |
static TClass* | Class() |
virtual const char* | TObject::ClassName() const |
virtual void | TObject::Clear(Option_t* = "") |
virtual TObject* | TObject::Clone(const char* newname = "") const |
virtual Int_t | TObject::Compare(const TObject* obj) const |
void | Convert(const char* filename, const char* title, const char* dirname = "", const char* relpath = "../") |
virtual void | TObject::Copy(TObject& object) const |
void | CreateJavascript() |
void | CreateStyleSheet() |
virtual void | TObject::Delete(Option_t* option = "") |
virtual Int_t | TObject::DistancetoPrimitive(Int_t px, Int_t py) |
virtual void | TObject::Draw(Option_t* option = "") |
virtual void | TObject::DrawClass() const |
virtual TObject* | TObject::DrawClone(Option_t* option = "") const |
virtual void | TObject::Dump() const |
virtual void | TObject::Error(const char* method, const char* msgfmt) const |
virtual void | TObject::Execute(const char* method, const char* params, Int_t* error = 0) |
virtual void | TObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0) |
virtual void | TObject::ExecuteEvent(Int_t event, Int_t px, Int_t py) |
virtual void | TObject::Fatal(const char* method, const char* msgfmt) const |
virtual TObject* | TObject::FindObject(const char* name) const |
virtual TObject* | TObject::FindObject(const TObject* obj) const |
const char* | GetDeclFileName(TClass* cl) const |
virtual Option_t* | TObject::GetDrawOption() const |
static Long_t | TObject::GetDtorOnly() |
virtual const char* | TObject::GetIconName() const |
const char* | GetImplFileName(TClass* cl) const |
virtual const char* | TObject::GetName() const |
virtual char* | TObject::GetObjectInfo(Int_t px, Int_t py) const |
static Bool_t | TObject::GetObjectStat() |
virtual Option_t* | TObject::GetOption() const |
const char* | GetOutputDir() |
const char* | GetSourceDir() |
virtual const char* | TObject::GetTitle() const |
virtual UInt_t | TObject::GetUniqueID() const |
const char* | GetXwho() const |
virtual Bool_t | TObject::HandleTimer(TTimer* timer) |
virtual ULong_t | TObject::Hash() const |
virtual void | TObject::Info(const char* method, const char* msgfmt) const |
virtual Bool_t | TObject::InheritsFrom(const char* classname) const |
virtual Bool_t | TObject::InheritsFrom(const TClass* cl) const |
virtual void | TObject::Inspect() const |
void | TObject::InvertBit(UInt_t f) |
virtual TClass* | IsA() const |
virtual Bool_t | TObject::IsEqual(const TObject* obj) const |
virtual Bool_t | TObject::IsFolder() const |
Bool_t | TObject::IsOnHeap() const |
virtual Bool_t | TObject::IsSortable() const |
Bool_t | TObject::IsZombie() const |
virtual void | TObject::ls(Option_t* option = "") const |
void | MakeAll(Bool_t force = kFALSE, const char* filter = "*") |
void | MakeClass(const char* className, Bool_t force = kFALSE) |
void | MakeIndex(const char* filter = "*") |
void | MakeTree(const char* className, Bool_t force = kFALSE) |
void | TObject::MayNotUse(const char* method) const |
virtual Bool_t | TObject::Notify() |
static void | TObject::operator delete(void* ptr) |
static void | TObject::operator delete(void* ptr, void* vp) |
static void | TObject::operator delete[](void* ptr) |
static void | TObject::operator delete[](void* ptr, void* vp) |
void* | TObject::operator new(size_t sz) |
void* | TObject::operator new(size_t sz, void* vp) |
void* | TObject::operator new[](size_t sz) |
void* | TObject::operator new[](size_t sz, void* vp) |
TObject& | TObject::operator=(const TObject& rhs) |
virtual void | TObject::Paint(Option_t* option = "") |
virtual void | TObject::Pop() |
virtual void | TObject::Print(Option_t* option = "") const |
virtual Int_t | TObject::Read(const char* name) |
virtual void | TObject::RecursiveRemove(TObject* obj) |
void | TObject::ResetBit(UInt_t f) |
virtual void | TObject::SaveAs(const char* filename = "", Option_t* option = "") const |
virtual void | TObject::SavePrimitive(ostream& out, Option_t* option = "") |
void | TObject::SetBit(UInt_t f) |
void | TObject::SetBit(UInt_t f, Bool_t set) |
void | SetDeclFileName(TClass* cl, const char* filename) |
void | SetDotDir(const char* dir) |
virtual void | TObject::SetDrawOption(Option_t* option = "") |
static void | TObject::SetDtorOnly(void* obj) |
void | SetEscape(char esc = \\) |
void | SetImplFileName(TClass* cl, const char* filename) |
static void | TObject::SetObjectStat(Bool_t stat) |
void | SetOutputDir(const char* dir) |
void | SetSourceDir(const char* dir) |
void | SetSourcePrefix(const char* prefix) |
virtual void | TObject::SetUniqueID(UInt_t uid) |
void | SetXwho(const char* xwho) |
virtual void | ShowMembers(TMemberInspector& insp, char* parent) |
virtual void | Streamer(TBuffer& b) |
void | StreamerNVirtual(TBuffer& b) |
virtual void | TObject::SysError(const char* method, const char* msgfmt) const |
Bool_t | TObject::TestBit(UInt_t f) const |
Int_t | TObject::TestBits(UInt_t f) const |
virtual void | TObject::UseCurrentStyle() |
virtual void | TObject::Warning(const char* method, const char* msgfmt) const |
virtual Int_t | TObject::Write(const char* name = "0", Int_t option = 0, Int_t bufsize = 0) |
virtual Int_t | TObject::Write(const char* name = "0", Int_t option = 0, Int_t bufsize = 0) const |
virtual void | WriteHtmlFooter(ofstream& out, const char* dir = "", const char* lastUpdate = "", const char* author = "", const char* copyright = "") |
virtual void | WriteHtmlHeader(ofstream& out, const char* title, const char* dir = "", TClass* cls = 0) |
void | AddClassDataMembersRecursive(TBaseClass* bc, TList* datamembers) |
void | AddClassMethodsRecursive(TBaseClass* bc, TList* methodNames) |
void | AnchorFromLine(TString& anchor) |
virtual void | BeautifyLine(ostream& srcOut, const char* relpath = "../") |
void | Class2Html(Bool_t force = kFALSE) |
void | ClassDescription(ofstream& out) |
Bool_t | ClassDotCharts(ofstream& out) |
void | ClassHtmlTree(ofstream& out, TClass* classPtr, THtml::ETraverse dir = kBoth, int depth = 1) |
void | ClassTree(TVirtualPad* canvas, TClass* classPtr, Bool_t force = kFALSE) |
Bool_t | CopyHtmlFile(const char* sourceName, const char* destName = "") |
Bool_t | CreateDotClassChartIncl(const char* filename) |
Bool_t | CreateDotClassChartInh(const char* filename) |
Bool_t | CreateDotClassChartInhMem(const char* filename) |
Bool_t | CreateDotClassChartLib(const char* filename) |
void | CreateHierarchy() |
Bool_t | CreateHierarchyDot() |
void | CreateIndex() |
void | CreateIndexByTopic() |
void | CreateListOfClasses(const char* filter) |
void | CreateListOfTypes() |
void | CreateSourceOutputStream(ofstream& out, const char* extension, TString& filename) |
void | DescendHierarchy(ofstream& out, TClass* basePtr, Int_t maxLines = 0, Int_t depth = 1) |
virtual void | TObject::DoError(int level, const char* location, const char* fmt, va_list va) const |
void | ExpandKeywords(TString& text) |
void | ExpandKeywords(ostream& out, const char* line) |
void | ExpandPpLine(ostream& out) |
Bool_t | ExtractComments(const TString& lineExpandedStripped, Bool_t& foundClassDescription, const char* classDescrTag, TString& comment) |
TClass* | GetClass(const char* name) |
const char* | GetFileName(const char* filename) |
void | GetHtmlFileName(TClass* classPtr, TString& filename) |
virtual void | GetModuleName(TString& module, const char* filename) const |
void | GetSourceFileName(TString& filename) |
Bool_t | HaveDot() |
Bool_t | IsModified(TClass* classPtr, const Int_t type) |
static Bool_t | IsName(UChar_t c) |
static Bool_t | IsWord(UChar_t c) |
TMethod* | LocateMethodInCurrentLine(Ssiz_t& posMethodName, TString& ret, TString& name, TString& params, ostream& srcOut, TString& anchor, ifstream& sourcefile, Bool_t allowPureVirtual) |
void | LocateMethods(ofstream& out, const char* filename, Bool_t lookForSourceInfo = kTRUE, Bool_t useDocxxStyle = kFALSE, Bool_t lookForClassDescr = kTRUE, Bool_t allowPureVirtual = kFALSE, const char* methodPattern = "0", const char* sourceExt = "0") |
void | LocateMethodsInHeaderClassDecl(ofstream& out) |
void | LocateMethodsInHeaderInline(ofstream& out) |
void | LocateMethodsInSource(ofstream& out) |
void | MakeClass(void* cdi, Bool_t force = kFALSE) |
void | TObject::MakeZombie() |
void | NameSpace2FileName(TString& name) |
void | ReplaceSpecialChars(ostream& out, const char c) |
void | ReplaceSpecialChars(ostream& out, const char* string) |
void | ReplaceSpecialChars(TString& text, Ssiz_t& pos) |
Bool_t | RunDot(const char* filename, ostream* outMap = 0) |
void | SortNames(const char** strings, Int_t num, Bool_t type = 0) |
char* | StrDup(const char* s1, Int_t n = 1) |
static Bool_t | Strip(TString& s) |
virtual void | WriteMethod(ostream& out, TString& ret, TString& name, TString& params, const char* file, TString& anchor, TString& comment, TString& codeOneLiner) |
enum ETraverse { | kUp | |
kDown | ||
kBoth | ||
}; | ||
enum EParseContext { | kCode | |
kCComment | ||
kBeginEndHtml | ||
kBeginEndHtmlInCComment | ||
kString | ||
kNumParseContexts | ||
}; | ||
enum EDocContext { | kIgnore | |
kDocFunc | ||
kDocClass | ||
kNumDocContexts | ||
}; | ||
enum ESourceInfo { | kInfoLastUpdate | |
kInfoAuthor | ||
kInfoCopyright | ||
kNumSourceInfos | ||
}; | ||
enum TObject::EStatusBits { | kCanDelete | |
kMustCleanup | ||
kObjInCanvas | ||
kIsReferenced | ||
kHasUUID | ||
kCannotPick | ||
kNoContextMenu | ||
kInvalidObject | ||
}; | ||
enum TObject::[unnamed] { | kIsOnHeap | |
kNotDeleted | ||
kZombie | ||
kBitMask | ||
kSingleKey | ||
kOverwrite | ||
kWriteDelete | ||
}; |
TString | fXwho | URL for name lookup |
TString | fSourcePrefix | prefix to relative source path |
TString | fSourceDir | source path |
TString | fOutputDir | output directory |
TString | fDotDir | directory of GraphViz's dot binary |
Int_t | fFoundDot | whether dot is accessible (-1 dunno, 1 yes, 0 no) |
TString | fLine | current line |
UInt_t | fLineNo | current line number |
TString | fLineExpanded | current line with links |
TString | fLineStripped | current line without surrounding spaces |
TClass* | fCurrentClass | current class context of sources being parsed |
TString | fCurrentFile | current source / header file name |
map<std::string,Int_t> | fMethodNames | current class's method names |
THtml::EDocContext | fDocContext | current context of parsed sources for documenting |
list<EParseContext> | fParseContext | current context of parsed sources |
set<UInt_t> | fExtraLinesWithAnchor | lines that need an additional anchor |
TString | fSourceInfo[3] | author, last changed, ... |
TString | fCounter | counter string |
Bool_t | fEscFlag | state flag to mark the next character must be written "as is" |
char | fEsc | char to mark the next character must be written "as is" |
Int_t | fHierarchyLines | counter for no. lines in hierarchy |
TString | fClassFilter | filter used for buidling known classes |
THashList | fClasses | known classes |
THashList | fModules | known modules |
map<TClass*,std::string> | fGuessedDeclFileNames | names of additional decl file names |
map<TClass*,std::string> | fGuessedImplFileNames | names of additional impl file names |
static set<std::string> | fgKeywords | C++ keywords |
The THtml class is designed to easily document classes, code, and code related text files (like change logs). It generates HTML pages conforming to the XHTML 1.0 transitional specifications; an example of these pages is ROOT's own reference guide. This page was verified to be valid XHTML 1.0 transitional, which proves that all pages generated by THtml can be valid, as long as the user provided XHTML (documentation, header, etc) is valid. You can check the current THtml by clicking this icon:
Overview:In your .rootrc, define Root.Html.SourceDir to point to directories containing .cxx and .h files (see: TEnv) of the classes you want to document.
Example:
Root.Html.SourceDir: .:src:include Root.Html.Root: http://root.cern.ch/root/html
The output directory can be specified using the Root.Html.OutputDir configuration variable (default value: "htmldoc"). If that directory doesn't exist THtml will create it.
Example:
Root.Html.OutputDir: htmldoc
When trying to document a class, THtml searches for a source file in the directories set via SetSourceDir(). If it cannot find it, it assumes that this class must have been documented before. Based on the library this class is defined in, it checks the configuration variable Root.Html.LibName, and creates a link using its value.
Example:
If a class MyClass is defined in class mylibs/libMyLib.so, and .rootrc
contains
Root.Html.MyLib: ../mylib/
THtml will create a link to "../mylib/MyClass.html".
The library name association can be set up using the rootmap facility. For the library in the example above, which contains a dictionary generated from the linkdef MyLinkdef.h, the command to generate the rootmap file is
$ rlibmap -f -r rootmap -l mylib/libMyLib.so -d libCore.so -c MyLinkdef.h
Here, -r specifies that the entries for libMyLib should be updated, -l specifies the library we're dealing with, -d its dependencies, and -c its linkdef. The rootmap file must be within one of the LD_LIBRARY_PATH (or PATH for Windows) directories when ROOT is started, otherwise ROOT will not use it.
The class documentation has to appear in the header file containing the class, right in front of its declaration. It is introduced by a string defined by Root.Html.Description. See the section on documentation syntax for further details.
Example:
Root.Html.Description: //____________________
During the conversion, THtml will look for some strings ("tags") in the source file, which have to appear right in front of e.g. the author's name, copyright notice, etc. These tags can be defined with the following environment variables: Root.Html.Author, Root.Html.LastUpdate and Root.Html.Copyright.
If the LastUpdate tag is not found, the current date and time are used. This is useful when using THtml::MakeAll()'s default option force=kFALSE, in which case THtml generates documentation only for changed classes.
Authors can be a comma separated list of author entries. Each entry has one of the following two formatsTHtml will generate an HTML link for Name, taking the Root.Html.XWho configuration variable (defaults to "http://consult.cern.ch/xwho/people?") and adding all parts of the name with spaces replaces by '+'. Non-alphanumerical characters are printed out behind Name.
Example:
// Author: Enrico Fermi appears in the source file. THtml will generate the link http://consult.cern.ch/xwho/people?Enrico+Fermi. This works well for people at CERN.THtml will generate an HTML link for Name as specified by link and print Info behind Name.
Example:
// Author: Enrico Fermi <http://www.enricos-home.it> orExample (with defaults given):
Root.Html.Author: // Author: Root.Html.LastUpdate: // @(#) Root.Html.Copyright: * Copyright Root.Html.XWho: http://consult.cern.ch/xwho/people?
THtml generates a default header and footer for all pages. You can specify your own versions with the configuration variables Root.Html.Header and Root.Html.Footer. Both variables default to "", using the standard Root versions. If it has a "+" appended, THtml will write both versions (user and root) to a file, for the header in the order 1st root, 2nd user, and for the footer 1st user, 2nd root (the root versions containing "<html>" and </html> tags, resp).
If you want to replace root's header you have to write a file containing all HTML elements necessary starting with the <doctype> tag and ending with (and including) the <body> tag. If you add your header it will be added directly after Root's <body> tag. Any occurrence of the string %TITLE% in the user's header file will be replaced by a sensible, automatically generated title. If the header is generated for a class, occurrences of %CLASS% will be replaced by the current class's name, %SRCFILE% and %INCFILE% by the name of the source and header file, resp. (as given by TClass::GetImplFileName(), TClass::GetDeclFileName()). If the header is not generated for a class, they will be replaced by "".
Root's footer starts with the tag <!--SIGNATURE-->. It includes the author(s), last update, copyright, the links to the Root home page, to the user home page, to the index file (ClassIndex.html), to the top of the page and this page is automatically generated infomation. It ends with the tags </body></html>. If you want to replace it, THtml will search for some tags in your footer: Occurrences of the strings %AUTHOR%, %UPDATE%, and %COPYRIGHT% are replaced by their corresponding values before writing the html file. The %AUTHOR% tag will be replaced by the exact string that follows Root.Html.Author, no link generation will occur.
Additional parameters can be set by Root.Html.Homepage (address of the user's home page), Root.Html.SearchEngine (search engine for the class documentation), Root.Html.Search (search URL), and a ViewCVS base URL Root.Html.ViewCVS. All default to "".
Examples:
Root.Html.Homepage: http://www.enricos-home.it Root.Html.SearchEngine: http://root.cern.ch/root/Search.phtml Root.Html.Search: http://www.google.com/search?q=%s+site%3Aroot.cern.ch%2Froot%2Fhtml
XHTML 1.0 transitional recommends the specification of the charset in the content type meta tag, see e.g. http://www.w3.org/TR/2002/REC-xhtml1-20020801/ THtml generates it for the HTML output files. It defaults to ISO-8859-1, and can be changed using Root.Html.Charset.
Example:
Root.Html.Charset: EUC-JP
A class description block, which must be placed before the first member function, has a following form:
//////////////////////////////////////////////////////////////// // // // TMyClass // // // // This is the description block. // // // ////////////////////////////////////////////////////////////////
The environment variable Root.Html.Description (see: TEnv) contains the delimiter string (default value: //_________________). It means that you can also write your class description block like this:
//_____________________________________________________________ // A description of the class starts with the line above, and // will take place here ! //
Note that everything until the first non-commented line is considered as a valid class description block.
All classes to be documented will have an entry in the ClassIndex.html, showing their name with a link to their documentation page and a miniature description. This discription for e.g. the class MyClass has to be given in MyClass's header as a comment right after ClassDef(MyClass, n).
A member function description block starts immediately after '{' and looks like this:
void TWorld::HelloWorldFunc(string *text) { // This is an example of description for the // TWorld member function helloWorld.Print( text ); }Like in a class description block, everything until the first non-commented line is considered as a valid member function description block.
Data members are documented by putting a C++ comment behind their declaration in the header file, e.g.
int fIAmADataMember; // this is a data member
You can insert pure html code into your documentation comments. During the generation of the documentation, this code will be inserted as is into the html file.
Pure html code must be surrounded by the keywords BEGIN_HTML and END_HTML, where the case is ignored. Examples of pure html code are given e.g. in TDataMember and TMinuit. The following trick can be used to hide the surrounding /* */ from the documentation:
// start doc // BEGIN_HTML <!-- /* --> We can now write HTML code, like <a href="something">something</a> <!-- */ // --> END_HTML // end doc
The documentation pages share a common set of javascript and CSS files. They are generated automatically when running MakeAll(); they can be generated on demand by calling CreateJavascript() and CreateStyleSheet(), respectively.
root[] THtml html; // create a THtml object root[] html.MakeAll() // generate documentation for all changed classes root[] html.MakeClass("TMyClass") // create documentation for TMyClass onlyTo "beautify" (i.e. create links to documentation for class names etc) some text file or macro, use:
root[] html.Convert( "hsimple.C", "Histogram example" )
Here is a list of all configuration variables that are known to THtml. You can set them in your .rootrc file, see TEnv.
Root.Html.OutputDir (default: htmldoc) Root.Html.SourceDir (default: .:src/:include/) Root.Html.Author (default: // Author:) - start tag for authors Root.Html.LastUpdate (default: // @(#)) - start tag for last update Root.Html.Copyright (default: * Copyright) - start tag for copyright notice Root.Html.Description (default: //____________________ ) - start tag for class descr Root.Html.HomePage (default: ) - URL to the user defined home page Root.Html.Header (default: ) - location of user defined header Root.Html.Footer (default: ) - location of user defined footer Root.Html.Root (default: ) - URL of Root's class documentation Root.Html.SearchEngine (default: ) - link to the search engine Root.Html.Search (defualt: ) - link to search by replacing "%s" with user input Root.Html.ViewCVS (default: ) - URL of ViewCVS base Root.Html.XWho (default: http://consult.cern.ch/xwho/people?) - URL of CERN's xWho Root.Html.Charset (default: ISO-8859-1) - HTML character set
Create a THtml object. In case output directory does not exist an error will be printed and gHtml stays 0 also zombie bit will be set.
Add accessible (i.e. non-private) methods of base class bc and its base classes' methods to methodNames. If bc==0, we add fCurrentClass's methods (and also private functions).
Add data members of fCurrentClass and of bc to datamembers, recursively. Real data members are in idx 0..2 (public, protected, private access), enum constants in idx 3..5.
Open a Class.cxx.html file, where Class is defined by classPtr, and .cxx.html by extension It's created in fOutputDir/src. If successful, the HTML header is written to out.
Create an anchor from the given line, by hashing it and convertig the hash into a custom base64 string.
Put colors around tags, create links, escape characters. In short: make a nice HTML page out of C++ code, and put it into srcOut. Create an anchor at the beginning of the line, and put its name into anchor, if set.
Search for a method starting at posMethodName, and return its return type, its name, and its arguments. If the end of arguments is not found in the current line, get a new line from sourceFile, beautify it to srcOut, creating an anchor as necessary. When this function returns, posMethodName points to the end of the function declaration, i.e. right after the arguments' closing bracket. If posMethodName == kNPOS, we look for the first matching method in fMethodNames.
Write method name with return type ret and parameters param to out. Build a link using file and anchor. Cooment it with comment, and show the code codeOneLiner (set if the func consists of only one line of code, immediately surrounded by "{","}"). Also updates fMethodNames's count of method names.
Extracts comments from the current line into comment, updating whether a class description was found (foundClassDescription). Returns kTRUE if comment found.
Collect methods from the source or header file called filename. It generates a beautified version of the source file on the fly; the output file is given by the fCurrentClass's name, and sourceExt. Documentation is extracted to out. lookForSourceInfo: if set, author, lastUpdate, and copyright are extracted (i.e. the values contained in fSourceInfo) useDocxxStyle: if set, documentation can be in front of the method name, not only inside the method. Useful doc Doc++/Doxygen style, and inline methods. lookForClassDescr: if set, the first line matching the class description rules is assumed to be the class description for fCurrentClass; the description is written to out. methodPattern: if set, methods have to be prepended by this tag. Usually the class name + "::". In header files, looking for in-place function definitions, this should be 0. In that case, only functions in fMethodNames are searched for.
Given fCurrentClass, look for methods in its source file, and extract documentation to out, while beautifying the source file in parallel.
Given fCurrentClass, look for methods in its header file, and extract documentation to out.
Given fCurrentClass, look for methods in its header file's class declaration block, and extract documentation to out, while beautifying the header file in parallel.
This function builds the description of the class Input: out - output file stream
Run filename".dot", creating filename".gif", and - if outMap is !=0, filename".map", which gets then included literally into outMap.
Build the class tree for one class in GraphViz/Dot format Input: filename - output dot file incl. path
Build the class tree of inherited members for one class in GraphViz/Dot format Input: filename - output dot file incl. path
Build the include dependency graph for one class in GraphViz/Dot format Input: filename - output dot file incl. path
Build the library dependency graph for one class in GraphViz/Dot format Input: filename - output dot file incl. path
This function builds the class charts for one class in GraphViz/Dot format, i.e. the inheritance diagram, the include dependencies, and the library dependency. Input: out - output file stream
This function builds the class tree for one class in HTML (inherited and succeeding classes, called recursively) Input: out - output file stream classPtr - pointer to the class dir - direction to traverse tree: up, down or both
It makes a graphical class tree Input: psCanvas - pointer to the current canvas classPtr - pointer to the class
It converts a single text file to HTML Input: filename - name of the file to convert title - title which will be placed at the top of the HTML file dirname - optional parameter, if it's not specified, output will be placed in htmldoc/examples directory. relpath - optional parameter pointing to the THtml generated doc on the server, relative to the current page. NOTE: Output file name is the same as filename, but with extension .html
Copy file to HTML directory Input: sourceName - source file name destName - optional destination name, if not specified it would be the same as the source file name Output: TRUE if file is successfully copied, or FALSE if it's not NOTE: The destination directory is always fOutputDir
Create an index Input: classNames - pointer to an array of class names numberOfClasses - number of elements
It creates several index files Input: fileNames - pointer to an array of file names numberOfNames - number of elements in the fileNames array maxLen - maximum length of a single name
Create a hierarchical class list The algorithm descends from the base classes and branches into all derived classes. Mixing classes are displayed several times.
Create a hierarchical class list The algorithm descends from the base classes and branches into all derived classes. Mixing classes are displayed several times.
Descend hierarchy recursively loop over all classes and look for classes with base class basePtr
Returns the module a class with filename belongs to. For ROOT, this is determined by MODULE/src/*.cxx or MODULE/inc/*.h. Math/GenVector (MATHCORE) and Math/Matrix (SMATRIX) get special treatment. All classes not fitting into this layout are assigned to the module USER.
Find keywords in keyword and create URLs around them. Escape characters with a special meaning for HTML. Protect "Begin_Html"/"End_Html" pairs, and set the parsing context. Evaluate sequences like a::b->c.
Expand preprocessor statements Input: out - output file stream NOTE: Looks for the #include statements and creates link to the corresponding file if such file exists
It discards any directory information inside filename Input: filename - pointer to the file name Output: pointer to the string containing just a file name without any other directory information, i.e. '/usr/root/test.dat' will return 'test.dat'
Find the source file. If filename contains a path it will be used together with the possible source prefix. If not found we try old algorithm, by stripping off the path and trying to find it in the specified source search path.
Return real HTML filename Input: classPtr - pointer to a class filename - string containing a full name of the corresponding HTML file after the function returns.
*-*-*-*-*Return pointer to class with name*-*-*-*-*-*-*-*-*-*-*-*-* *-* =================================
Check if file is modified Input: classPtr - pointer to the class type - file type to compare with values: kSource, kInclude, kTree Output: TRUE - if file is modified since last time FALSE - if file is up to date
Check if c is a valid C++ name character Input: c - a single character Output: TRUE if c is a valid C++ name character and FALSE if it's not. NOTE: Valid name characters are [a..zA..Z0..9_~],
Check if c is a valid first character for C++ name Input: c - a single character Output: TRUE if c is a valid first character for C++ name, and FALSE if it's not. NOTE: Valid first characters are [a..zA..Z_~]
Produce documentation for all the classes specified in the filter (by default "*") To process all classes having a name starting with XX, do: html.MakeAll(kFALSE,"XX*"); If force=kFALSE (default), only the classes that have been modified since the previous call to this function will be generated. If force=kTRUE, all classes passing the filter will be processed.
Make HTML files for a single class Input: className - name of the class to process
Make HTML files for a single class Input: cdi - doc info for class to process
It makes an index files by default makes an index of all classes (if filter="*") To generate an index for all classes starting with "XX", do html.MakeIndex("XX*");
Make an inheritance tree Input: className - name of the class to process
Replace ampersand, less-than and greater-than character, writing to out. Input: out - output file stream c - single character
Replace ampersand, less-than and greater-than character Input: text - text where replacement will happen, pos - index of char to be replaced; will point to next char to be replaced when function returns
Replace ampersand, less-than and greater-than characters, writing to out Input: out - output file stream string - pointer to an array of characters
Explicitly set a decl file name for TClass cl.
Explicitly set a impl file name for TClass cl.
Sort strings Input: strings - pointer to an array of strings type - sort type values : kCaseInsensitive, kCaseSensitive default: kCaseInsensitive
Returns a pointer to a new string which is a duplicate of the string to which 's1' points. The space for the new string is obtained using the 'new' operator. The new string has the length of 'strlen(s1) + n'.
Write HTML header Input: out - output file stream title - title for the HTML page cls - current class dir - relative directory to reach the top ("" for html doc, "../" for src/*cxx.html etc) evaluates the Root.Html.Header setting: * if not set, the standard header is written. (ROOT) * if set, and ends with a "+", the standard header is written and this file included afterwards. (ROOT, USER) * if set but doesn't end on "+" the file specified will be written instead of the standard header (USER) Any occurrence of "%TITLE%" (without the quotation marks) in the user provided header file will be replaced by the value of this method's parameter "title" before written to the output file. %CLASS% is replaced by the class name ("" if not a class), %INCFILE% by the header file name as given by TClass::GetDeclFileName() and %SRCFILE% by the source file name as given by TClass::GetImplFileName() (both "" if not a class).
Write HTML footer Input: out - output file stream dir - usually equal to "" or "../", depends of current file directory position, i.e. if file is in the fOutputDir, then dir will be "" lastUpdate - last update string author - author's name copyright - copyright note Allows optional user provided footer to be written. Root.Html.Footer holds the file name for this footer. For details see THtml::WriteHtmlHeader (here, the "+" means the user's footer is written in front of Root's!) Occurences of %AUTHOR%, %UPDATE%, and %COPYRIGHT% in the user's file are replaced by their corresponding values (author, lastUpdate, and copyright) before written to out.
Replace "::" in name by "__" Replace "<", ">", " ", ",", "~", "=" in name by "_"