Commits

Anonymous committed 62f7451

Doxygen fixes.

Comments (0)

Files changed (15)

+2007-10-30  scott snyder  <snyder@bnl.gov>
+
+	* Tagging RootUtils-00-00-08.
+
+	* Doxygen fixes.
+
+	* ispellwords: (new) --- Spell check.
+
+	* doc/MainPage.h: Fill in.
+
 2007-10-19  scott snyder  <snyder@bnl.gov>
 
 	* Tagging RootUtils-00-00-07.
 
 	* Tagging RootUtils-00-00-01.
 
-	* Initial checkin, with InitHist.
+	* Initial check-in, with InitHist.
 	
 

RootUtils/ClearCINTMessageCallback.h

 // This file's extension implies that it's C, but it's really -*- C++ -*-.
-// $Id: ClearCINTMessageCallback.h,v 1.1 2007-10-19 21:03:00 ssnyder Exp $
+// $Id: ClearCINTMessageCallback.h,v 1.2 2007-10-30 16:49:30 ssnyder Exp $
 
 /**
  * @file RootUtils/ClearCINTMessageCallback.h
  * and turn them into Python errors.  That's fine if you're using
  * Python as a shell.  But if you're using Cint as a shell
  * (and calling python through TPython), then this will result
- * in cint's error messages being lost.
+ * in Cint's error messages being lost.
  *
  * Now, PyROOT itself is smart enough to only install the callback
  * if python is actually being used as a shell.  However, PyCintex
    * @brief Clear Cint's error message callback.
    *
    * This could (almost) just as well be a free function.
-   * The only reason to put it inside a class is that root doesn't
+   * The only reason to put it inside a class is that Root doesn't
    * auto-load functions, only classes.
    */
   static void initialize();

RootUtils/DataVectorConvert.h

 // This file's extension implies that it's C, but it's really -*- C++ -*-.
-// $Id: DataVectorConvert.h,v 1.1 2007-10-16 20:08:25 ssnyder Exp $
+// $Id: DataVectorConvert.h,v 1.2 2007-10-30 16:49:30 ssnyder Exp $
 
 /**
  * @file RootUtils/DataVectorConvert.h
  * When setting up @c DataVector inheritance using @c DATAVECTOR_BASE,
  * a side effect is that the persistent form of the data may change.
  * Including this service will fix up the root metadata to allow
- * reading old data.  In fact, any sort of @c DataVector<A> to
- * @c DataVector<B> conversions will be allowed, provided that
+ * reading old data.  In fact, any sort of @c DataVector\<A> to
+ * @c DataVector\<B> conversions will be allowed, provided that
  * @c A* can be converted to @c B*.
  *
  * The only reason to make this a class rather than a free function
- * is that root's autoloading seems to work only with classes.
+ * is that Root's autoloading seems to work only with classes.
  */
 class DataVectorConvert
 {
 public:
-  // Type for debug logging callback.
+  /// Type for debug logging callback.
   struct logfn_t
   {
     virtual void log (const char*) = 0;
   };
 
   /**
-   * @brief Scan all known @c DataVector classes and fix up the root
+   * @brief Scan all known @c DataVector classes and fix up the Root
    *        data for any that need conversion.
    * @param logfn Callback for logging debug messages.
    *              Null for no logging.

RootUtils/InitHist.h

 // This file's extension implies that it's C, but it's really -*- C++ -*-.
-// $Id: InitHist.h,v 1.2 2007-10-09 21:34:03 ssnyder Exp $
+// $Id: InitHist.h,v 1.3 2007-10-30 16:49:30 ssnyder Exp $
 
 /**
  * @file  RootUtils/InitHist.h
  * @author scott snyder
  * @date Oct 2007
- * @brief Initialize root's getline history.
+ * @brief Initialize Root's getline history.
  */
 
 #ifndef ROOTUTILS_INITHIST_H
 
 
 /**
- * @brief Initialize root's getline history.
- *        You'll need this if you use TTreeViewer using python
- *        as your interactive shell.  TTreeViewer pushes information
+ * @brief Initialize Root's getline history.
+ *        You'll need this if you use @c TTreeViewer using python
+ *        as your interactive shell.  @c TTreeViewer pushes information
  *        onto the getline history list.  However, getline is initialized
- *        only when CINT is used as the shell.  If that isn't the case,
+ *        only when Cint is used as the shell.  If that isn't the case,
  *        then such attempts to push to the history will crash.
  */
 class InitHist
 {
 public:
   /**
-   * @brief Initialize root's getline history.
+   * @brief Initialize Root's getline history.
    *
    * This could (almost) just as well be a free function.
-   * The only reason to put it inside a class is that root doesn't
+   * The only reason to put it inside a class is that Root doesn't
    * auto-load functions, only classes.
    */
   static void initialize();

RootUtils/PyROOTConstFix.h

 // This file's extension implies that it's C, but it's really -*- C++ -*-.
-// $Id: PyROOTConstFix.h,v 1.1 2007-10-11 21:49:02 ssnyder Exp $
+// $Id: PyROOTConstFix.h,v 1.2 2007-10-30 16:49:30 ssnyder Exp $
 
 /**
  * @file RootUtils/PyROOTConstFix.h
  * @author scott snyder
  * @date Oct 2007
- * @brief Work around pyroot const bug.
+ * @brief Work around PyROOT const bug.
  */
 
 
 
 
 /**
- * @brief Work around pyroot const bug.
+ * @brief Work around PyROOT const bug.
  *
- * In root 5.14.00, pyroot has a problem with how const vs. non-const
+ * In root 5.14.00, PyROOT has a problem with how const vs. non-const
  * overloads are handled.  Given two overloads that match with the exception
- * of the const qualifier, pyroot will call the non-const version.
+ * of the const qualifier, PyROOT will call the non-const version.
  * But when it converts the returned value to python form, the type
  * it uses is that of the first overload.  If the return types of the
  * two overloads are not layout-compatible, then this can cause crashes.
  *
- * This is a problem in particular for DataVector.  There, for the element
+ * This is a problem in particular for @c DataVector.  There, for the element
  * access methods, the const method returns a pointer directly, while
  * the non-const method returns a proxy object.  PyROOT was calling
  * the non-const version but then converting the result as if it were
  * a pointer.
  *
  * As a workaround, the code here will overwrite the name of the
- * const overload with trash, effectively hiding it from pyroot.
+ * const overload with trash, effectively hiding it from PyROOT.
  */
 class PyROOTConstFix
 {
    * @param funcname The name of the method to fix.
    *
    * Any const overload of the named method will have its name
-   * overwritten in the cint dictionary, effectively hiding it from pyroot.
+   * overwritten in the Cint dictionary, effectively hiding it from PyROOT.
    */
   static void fix_one (const char* classname, const char* funcname);
 
 
   /**
-   * @brief Fix all DataVector methods of a given class.
+   * @brief Fix all @c DataVector methods of a given class.
    * @param classname The name of the class to fix.
    *
-   * This will apply @c fix_one to all of the DataVector methods
+   * This will apply @c fix_one to all of the @c DataVector methods
    * affected by this problem.
    */
   static void fix_all (const char* classname);
 
 
-  /*
+  /**
    * @brief Test for a DataVector class and apply fix if needed.
    * @param classname The name of the class to test.
-   * @returns True if the class or one of its bases was fixed, false otherwise.
+   * @return True if the class or one of its bases was fixed, false otherwise.
    *
    * This function will test @c classname and any base classes
    * to see if they are DataVector classes.  If so, @c fix_all

RootUtils/ScanForAbstract.h

 // This file's extension implies that it's C, but it's really -*- C++ -*-.
-// $Id: ScanForAbstract.h,v 1.2 2007-10-19 00:40:53 ssnyder Exp $
+// $Id: ScanForAbstract.h,v 1.3 2007-10-30 16:49:30 ssnyder Exp $
 
 /**
  * @file  RootUtils/ScanForAbstract.h
  * @author scott snyder
  * @date Oct 2007
- * @brief Work around root problems with virtual bases.
+ * @brief Work around Root problems with virtual bases.
  */
 
 #ifndef ROOTUTILS_SCANFORABSTRACT_H
 /**
  * @brief Work around root problems with virtual bases.
  *
- * Root's TClass does not support virtual bases.
+ * Root's @c TClass does not support virtual bases.
  *
  * Cint does in fact support virtual bases.  If a base is virtual,
  * then a flag is set; and in the location that would normally hold
  * a pointer to a function which will compute this offset,
  * given an object instance.
  *
- * Root's TRealData structure does not, however, know about this.
- * It will happily use what it gets from cint as a structure offset.
- * This will almost cerntainly lead to crashes later on.
+ * Root's @c TRealData structure does not, however, know about this.
+ * It will happily use what it gets from Cint as a structure offset.
+ * This will almost certainly lead to crashes later on.
  *
- * Since TRealData is what the I/O is based on, this is a problem.
+ * Since @c TRealData is what the I/O is based on, this is a problem.
  *
- * Fixing TClass/TRealData to properly represent virtual bases is
+ * Fixing @c TClass/@c TRealData to properly represent virtual bases is
  * not trivial.  However, we observe that where such virtual bases
  * occur in the data model, they do not contain data members.
  *
  * Thus, we can work around the problem by finding all `abstract'
- * classes before MakeRealData runs on them, and filling fRealData
- * with an empty Tlist.  This then prevents MakeRealData from running,
+ * classes before @c MakeRealData runs on them, and filling @c fRealData
+ * with an empty @c TList.  This then prevents @c MakeRealData from running,
  * thus preventing the crash.
  *
  * We identify classes as `abstract' by first looking for names
  * Then we test to see that it has the abstract property set,
  * and that it has no data members.
  *
- * On a call to initialize(), ScanForAbstract will scan all currently
+ * On a call to @c initialize(), @c ScanForAbstract will scan all currently
  * known classes, and patch up any `abstract' ones it finds.  It will
  * further hook itself into class creation, so that it will automatically
  * scan any classes defined in the future.

RootUtils/StdHackGenerator.h

 // This file's extension implies that it's C, but it's really -*- C++ -*-.
-// $Id: StdHackGenerator.h,v 1.2 2007-10-09 21:34:04 ssnyder Exp $
+// $Id: StdHackGenerator.h,v 1.3 2007-10-30 16:49:30 ssnyder Exp $
 
 /**
  * @file  RootUtils/StdHackGenerator.h
  * @author scott snyder
  * @date Oct 2007
- * @brief Work around inconsistent use of std::.
+ * @brief Work around inconsistent use of @c std::.
  */
 
 #ifndef ROOTUTILS_STDHACKGENERATOR_H
 
 
 /**
- * @brief Work around inconsistent use of std::.
+ * @brief Work around inconsistent use of @c std::.
  *
- * Sometimes, when Athena is requesting a class to autoload (via GetClass),
- * the name that's requested omits some of the std:: qualifications
+ * Sometimes, when Athena is requesting a class to autoload (via @c GetClass),
+ * the name that's requested omits some of the @c std:: qualifications
  * in front of the STL names.  One usually finds, though, that the
- * autoload database contains the full std::-qualified names.  Thus,
+ * autoload database contains the full @c std::-qualified names.  Thus,
  * the autoload fails.
  *
  * For example, we may be asked to load a class with a name like
+ *@code
  *   Navigable<foo,vector<...> >
+ @endcode
  * but what's in the rootmap file is
+ *@code
  *   Navigable<foo,std::vector<...> >
+ @endcode
  *
  * Root does provide a way to hook into class autoloading ---
  * a @c TClassGenerator, which is called when autoloading fails.
  * Thus, we create an autoloader such that when autoloading fails,
- * it tries again with any missing `std::' qualifications reinserted.
+ * it tries again with any missing @c std:: qualifications reinserted.
  *
  * ??? FIXME: Find out why the bad names are being requested
  * in the first place.

RootUtils/selection.xml

+<!--
+   - File: RootUtils/selection.xml
+   - Author: scott snyder
+   - Date: Oct 2007
+   -
+   - Reflex selection file.
+  -->
+
+
 <lcgdict>
     <class name="RootUtils::InitHist" />
     <class name="RootUtils::StdHackGenerator" />
 /**
 
-   \mainpage
+@mainpage
 
 This package contains code used to work around various problems
-with root.  It may also contain small pieces of root code of
+with Root.  It may also contain small pieces of Root code of
 general utility.
 
 This package should have no dependencies other than root (and the build
 system).
 
+Here's a brief list of what's here.
+
+ - RootUtils::ClearCINTMessageCallback: Work around an issue where importing
+   PyCintex will disable error messages if you're using CINT as a shell.
+
+ - RootUtils::DataVectorConvert: Provide backwards compatibility for
+   reading DataVector classes for which inheritance relations have changed.
+
+ - RootUtils::InitHist: Force initialization of Root's getline command
+   history, to prevent crashes in TTreeViewer when using python as a shell.
+
+ - RootUtils::PyROOTConstFix: Work around PyROOT const/non-const method
+   return argument conversion bug.
+
+ - RootUtils::ScanForAbstract: Work around problems caused by Root's
+   inability to correctly represent virtual bases in TClass.
+
+ - RootUtils::StdHackGenerator: Work around inconsistent use of std::
+   with Root's autoloading.
+
+ - RootUtils.PyROOTFixes (.py): Work around PyROOT bugs that affect DataVector.
+
+Dictionaries are generated for all C++ classes, so they're callable
+from Python.
+
 */
+personal_ws-1.1 en 77
+PyCintex
+CallFunc
+RootUtils
+getline
+dv
+metadata
+cls
+rootmap
+TStreamerInfo
+scott
+DataVector's
+cmt
+namespace
+TError
+ScanForAbstract
+TStreamerElement
+mainpage
+Cint's
+DataVector
+PyROOTFixes
+snyder
+ssnyder
+Cint
+Rtypes
+DataVectorConvert
+pCont
+PyROOTConstFix
+TClass
+MakeRealData
+cxx
+StdHackGenerator
+TStreamInfo
+classname
+clsname
+src
+getitem
+ispellwords
+streaminfo
+TStreamerInfos
+fRealData
+STL
+TBaseClass
+ClearCINTMessageCallback
+TMemberStreamer
+autoload
+TVirtualStreamerInfo
+autoloading
+pmember
+GetClass
+FIXME
+typeinfo
+TGenericClassInfo
+TClassTable
+logfn
+funcname
+TRealData
+nb
+PyROOT
+TInterpreter
+TROOT
+InitHist
+TBuffer
+dest
+py
+si
+sie
+TTreeViewer
+const
+TClassGenerator
+ok
+arg
+RootUtilsDict
+TClassEdit
+TPython
+TList
+Api
+restructuredtext

src/DataVectorConvert.cxx

-// $Id: DataVectorConvert.cxx,v 1.1 2007-10-16 20:08:26 ssnyder Exp $
+// $Id: DataVectorConvert.cxx,v 1.2 2007-10-30 16:49:30 ssnyder Exp $
 /**
  * @file RootUtils/src/DataVectorConvert.cxx
  * @author scott snyder
 
 
 /**
- * @brief Look up a class with root.
+ * @brief Look up a class with Root.
  * @param logfn The debug logging callback.
  * @param dv_class The @c DataVector class we're working on,
  *                 for logging.
 }
 
 
-/*
+/**
  * @brief Adjust the streamer info for a single @c DataVector class
  *        for reading old data.
  * @param logfn The debug logging callback.
 
 
 /**
- * @brief Scan all known @c DataVector classes and fix up the root
+ * @brief Scan all known @c DataVector classes and fix up the Root
  *        data for any that need conversion.
  * @param logfn Callback for logging debug messages.
  *              Null for no logging.
-// $Id: InitHist.cxx,v 1.2 2007-10-09 21:34:04 ssnyder Exp $
+// $Id: InitHist.cxx,v 1.3 2007-10-30 16:49:30 ssnyder Exp $
 /**
  * @file  RootUtils/src/InitHist.cxx
  * @author scott snyder
  * @date Oct 2007
- * @brief Initialize root's getline history.
+ * @brief Initialize Root's getline history.
  */
 
 #include "RootUtils/InitHist.h"
 
 
 /**
- * @brief Initialize root's getline history.
+ * @brief Initialize Root's getline history.
  */
 void InitHist::initialize()
 {

src/PyROOTConstFix.cxx

-// $Id: PyROOTConstFix.cxx,v 1.1 2007-10-11 21:49:03 ssnyder Exp $
+// $Id: PyROOTConstFix.cxx,v 1.2 2007-10-30 16:49:30 ssnyder Exp $
 /**
  * @file RootUtils/src/PyROOTConstFix.cxx
  * @author scott snyder
  * @date Oct 2007
- * @brief Work around pyroot const bug.
+ * @brief Work around PyROOT const bug.
  */
 
 #include "RootUtils/PyROOTConstFix.h"
  * @param funcname The name of the method to fix.
  *
  * Any const overload of the named method will have its name
- * overwritten in the cint dictionary, effectively hiding it from pyroot.
+ * overwritten in the Cint dictionary, effectively hiding it from PyROOT.
  */
 void PyROOTConstFix::fix_one (const char* classname, const char* funcname)
 {
 
 
 /**
- * @brief Fix all DataVector methods of a given class.
+ * @brief Fix all @c DataVector methods of a given class.
  * @param classname The name of the class to fix.
  *
- * This will apply @c fix_one to all of the DataVector methods
+ * This will apply @c fix_one to all of the @c DataVector methods
  * affected by this problem.
  */
 void PyROOTConstFix::fix_all (const char* classname)
 }
 
 
-/*
+/**
  * @brief Test for a DataVector class and apply fix if needed.
  * @param classname The name of the class to test.
- * @returns True if the class or one of its bases was fixed, false otherwise.
+ * @return True if the class or one of its bases was fixed, false otherwise.
  *
  * This function will test @c classname and any base classes
  * to see if they are DataVector classes.  If so, @c fix_all

src/ScanForAbstract.cxx

-// $Id: ScanForAbstract.cxx,v 1.1 2007-10-09 21:34:04 ssnyder Exp $
+// $Id: ScanForAbstract.cxx,v 1.2 2007-10-30 16:49:30 ssnyder Exp $
 /**
  * @file  RootUtils/src/ScanForAbstract.cxx
  * @author scott snyder
  * @date Oct 2007
- * @brief Work around root problems with virtual bases.
+ * @brief Work around Root problems with virtual bases.
  */
 
 #include "RootUtils/ScanForAbstract.h"

src/StdHackGenerator.cxx

-// $Id: StdHackGenerator.cxx,v 1.2 2007-10-09 21:34:04 ssnyder Exp $
+// $Id: StdHackGenerator.cxx,v 1.3 2007-10-30 16:49:30 ssnyder Exp $
 /**
  * @file  RootUtils/src/StdHackGenerator.cxx
  * @author scott snyder
  * @date Oct 2007
- * @brief Work around inconsistent use of std::.
+ * @brief Work around inconsistent use of @c std::.
  */
 
 #include "RootUtils/StdHackGenerator.h"
 
 
 /**
- * @brief Make a new clas name, inserting any missing std:: qualifications.
+ * @brief Make a new class name, inserting any missing @c std:: qualifications.
  * @param in The name to edit.
- * @returns The new name (may be the same as in).
+ * @return The new name (may be the same as @a in).
  */
 std::string addstd (const std::string& in)
 {