Commit 697375af authored by dimitri's avatar dimitri
Browse files

Release-1.2.15-20020512

parent 62d3c650
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
DOXYGEN Version 1.2.15-20020430
DOXYGEN Version 1.2.15-20020512


Please read the installation section of the manual for instructions.
Please read the installation section of the manual for instructions.


--------
--------
Dimitri van Heesch (30 April 2002)
Dimitri van Heesch (12 May 2002)
+2 −2
Original line number Original line Diff line number Diff line
DOXYGEN Version 1.2.15_20020430
DOXYGEN Version 1.2.15_20020512


Please read INSTALL for compilation instructions.
Please read INSTALL for compilation instructions.


@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.


Enjoy,
Enjoy,


Dimitri van Heesch (dimitri@stack.nl) (30 April 2002)
Dimitri van Heesch (dimitri@stack.nl) (12 May 2002)
+1 −1
Original line number Original line Diff line number Diff line
1.2.15-20020430
1.2.15-20020512
+141 −19
Original line number Original line Diff line number Diff line
/******************************************************************************
 *
 * $Id$
 *
 *
 * Copyright (C) 1997-2002 by Dimitri van Heesch.
 *
 * Permission to use, copy, modify, and distribute this software and its
 * documentation under the terms of the GNU General Public License is hereby 
 * granted. No representations are made about the suitability of this software 
 * for any purpose. It is provided "as is" without express or implied warranty.
 * See the GNU General Public License for more details.
 *
 */

#ifndef _DOXMLINTF_H
#ifndef _DOXMLINTF_H
#define _DOXMLINTF_H
#define _DOXMLINTF_H


@@ -480,7 +495,8 @@ class IMember
    virtual const IString * name() const = 0;
    virtual const IString * name() const = 0;
    virtual bool isConst() const = 0;
    virtual bool isConst() const = 0;
    virtual bool isVolatile() const = 0;
    virtual bool isVolatile() const = 0;
    virtual IParamIterator *params() const = 0;
    virtual IParamIterator *parameters() const = 0;
    virtual IParamIterator *templateParameters() const = 0;
    virtual ILinkedTextIterator *initializer() const = 0;
    virtual ILinkedTextIterator *initializer() const = 0;
    virtual ILinkedTextIterator *exceptions() const = 0;
    virtual ILinkedTextIterator *exceptions() const = 0;
    virtual IMemberReferenceIterator *references() const = 0; 
    virtual IMemberReferenceIterator *references() const = 0; 
@@ -507,27 +523,79 @@ class IMemberIterator
    virtual void release() = 0;
    virtual void release() = 0;
};
};


/*! \brief The interface to a section in the object model. 
 *
 *  A compound can have a number of sections, where each
 *  section contains a set of members with the properties implied by
 *  the section kind. The kind() method returns the kind of the section.
 *  The members of the section can be accessed via members(). Apart
 *  from using kind(), some of the individual properties of the section can 
 *  also be inspected via isStatic(), isPublic(), isProtected() and 
 *  isPrivate().
 */
class ISection 
class ISection 
{
{
  public:
  public:
    enum SectionKind { Invalid=0,
    /*! Possible section types */
                       UserDefined,
    enum SectionKind 
                       PubTypes, PubFuncs, PubAttribs, PubSlots,
    { Invalid=0,
                       Signals, DCOPFuncs, Properties,
      UserDefined,         //!< A user defined member group 
                       PubStatFuncs, PubStatAttribs,
      PubTypes,            //!< Public member typedefs
                       ProTypes, ProFuncs, ProAttribs, ProSlots,
      PubFuncs,            //!< Public member functions
                       ProStatFuncs, ProStatAttribs,
      PubAttribs,          //!< Public member attributes 
                       PriTypes, PriFuncs, PriAttribs, PriSlots,
      PubSlots,            //!< Public Qt Slots
                       PriStatFuncs, PriStatAttribs, 
      Signals,             //!< Qt Signals
                       Friend, Related, Defines, Prototypes, Typedefs,
      DCOPFuncs,           //!< KDE-DCOP interface functions
                       Enums, Functions, Variables
      Properties,          //!< IDL properties
                     };
      PubStatFuncs,        //!< Public static member functions
      PubStatAttribs,      //!< Public static attributes
      ProTypes,            //!< Protected member typedefs
      ProFuncs,            //!< Protected member functions
      ProAttribs,          //!< Protected member attributes
      ProSlots,            //!< Protected slots
      ProStatFuncs,        //!< Protected static member functions
      ProStatAttribs,      //!< Protected static member attributes
      PriTypes,            //!< Private member typedefs
      PriFuncs,            //!< Private member functions
      PriAttribs,          //!< Private member attributes
      PriSlots,            //!< Private Qt slots
      PriStatFuncs,        //!< Private static member functions
      PriStatAttribs,      //!< Private static member attributes
      Friend,              //!< Friends
      Related,             //!< Function marked as related
      Defines,             //!< Preprocessor defines
      Prototypes,          //!< Global function prototypes
      Typedefs,            //!< Global typedefs
      Enums,               //!< Enumerations
      Functions,           //!< Global functions
      Variables            //!< Global variables
    };
    
    /*! Returns a string representation of the value returned by kind() */
    virtual const IString * kindString() const = 0;
    virtual const IString * kindString() const = 0;
    
    /*! Returns what kind of section this is */
    virtual SectionKind kind() const = 0;
    virtual SectionKind kind() const = 0;
    
    /*! Returns an iterator for the members of this section */
    virtual IMemberIterator *members() const = 0;
    virtual IMemberIterator *members() const = 0;
    
    /*! Returns \c true if this section contains statics */
    virtual bool isStatic() const = 0;
    virtual bool isStatic() const = 0;
    
    /*! Returns \c true if this section belongs to a 
     *  public section of a class 
     */
    virtual bool isPublic() const = 0;
    virtual bool isPublic() const = 0;
    
    /*! Returns \c true if this section belongs to a 
     *  private section of a class 
     */
    virtual bool isPrivate() const = 0;
    virtual bool isPrivate() const = 0;
    
    /*! Returns \c true if this section belongs to a 
     *  protected section of a class 
     * */
    virtual bool isProtected() const = 0;
    virtual bool isProtected() const = 0;
};
};


@@ -542,6 +610,31 @@ class ISectionIterator
    virtual void release() = 0;
    virtual void release() = 0;
};
};


/*! \brief The interface to a compound in the object model. 
 *
 *  A compound has a name which can be obtained via the name() method 
 *  and a unique id, which is return via the id() method.
 *  A compound consists zero or more members which are grouped into sections. 
 *  The sections() method can be used to access the individual sections. 
 *  Alternatively, members can be obtained by name or id. There are 
 *  different types of compounds. The kind() method returns what kind of 
 *  compound this is. Depending on the return value one can dynamically 
 *  cast an interface pointer to an more specialised interface that provides 
 *  additional methods.
 *  Example:
 *  \code
 *  ICompound *comp=...;
 *  if (comp->kind()==ICompound::Class)
 *  {
 *    IClass *cls = dynamic_cast<IClass*>(comp);
 *    // use methods of IClass
 *  }
 *  \endcode
 *  The documentation that is provided by a compound is available via
 *  the briefDescription() and detailedDescription() methods.
 *  To avoid excessive memory usage, release() should be called (once) on each 
 *  compound interface pointer that is no longer needed.
 */
class ICompound 
class ICompound 
{
{
  public:
  public:
@@ -634,14 +727,16 @@ class IRelatedCompoundIterator
    virtual void release() = 0;
    virtual void release() = 0;
};
};


/*! \brief The interface to a class in the object model. 
 */
class IClass : public ICompound
class IClass : public ICompound
{
{
  public:
  public:
    virtual IGraph *inheritanceGraph() const = 0;
    virtual IGraph *inheritanceGraph() const = 0;
    virtual IGraph *collaborationGraph() const = 0;
    virtual IGraph *collaborationGraph() const = 0;
    virtual IRelatedCompoundIterator *baseClasses() const = 0;
    virtual IRelatedCompoundIterator *baseCompounds() const = 0;
    virtual IRelatedCompoundIterator *derivedClasses() const = 0;
    virtual IRelatedCompoundIterator *derivedCompounds() const = 0;
    virtual ICompoundIterator *nestedClasses() const = 0;
    virtual ICompoundIterator *nestedCompounds() const = 0;


    // TODO:
    // TODO:
    // class:
    // class:
@@ -653,35 +748,56 @@ class IClass : public ICompound
    //  locationBodyEndLine()
    //  locationBodyEndLine()
};
};


/*! \brief The interface to a struct in the object model. 
 */
class IStruct : public ICompound
class IStruct : public ICompound
{
{
  public:
    virtual ICompoundIterator *nestedCompounds() const = 0;
    virtual IRelatedCompoundIterator *baseCompounds() const = 0;
    virtual IRelatedCompoundIterator *derivedCompounds() const = 0;
};
};


/*! \brief The interface to a union in the object model. 
 */
class IUnion : public ICompound
class IUnion : public ICompound
{
{
  public:
    virtual ICompoundIterator *nestedCompounds() const = 0;
};
};


/*! \brief The interface to a Java/IDL interface in the object model. 
 */
class IInterface : public ICompound
class IInterface : public ICompound
{
{
  public:
    virtual IRelatedCompoundIterator *baseCompounds() const = 0;
    virtual IRelatedCompoundIterator *derivedCompounds() const = 0;
};
};


/*! \brief The interface to a Java/IDL exception in the object model. 
 */
class IException : public ICompound
class IException : public ICompound
{
{
};
};


/*! \brief The interface to a namespace in the object model. 
 */
class INamespace : public ICompound
class INamespace : public ICompound
{
{
    // namespace:
  public:
    //  ICompound *innerNamespaces()
    virtual ICompoundIterator *nestedCompounds() const = 0;
    //  ICompoundIterator *innerClasses()
};
};


/*! \brief The interface to a file in the object model. 
 */
class IFile : public ICompound
class IFile : public ICompound
{
{
  public:
  public:
    virtual IGraph *includeDependencyGraph() const = 0;
    virtual IGraph *includeDependencyGraph() const = 0;
    virtual IGraph *includedByDependencyGraph() const = 0;
    virtual IGraph *includedByDependencyGraph() const = 0;
    virtual IDocProgramListing *source() const = 0;
    virtual IDocProgramListing *source() const = 0;
    virtual ICompoundIterator *nestedCompounds() const = 0;


    // file:
    // file:
    //  includes()
    //  includes()
@@ -690,14 +806,20 @@ class IFile : public ICompound
    //  ICompoundIterator *innerClasses()
    //  ICompoundIterator *innerClasses()
};
};


/*! \brief The interface to a group in the object model. 
 */
class IGroup : public ICompound
class IGroup : public ICompound
{
{
  public:
    virtual ICompoundIterator *nestedCompounds() const = 0;
    // group:
    // group:
    //  Title()
    //  Title()
    //  innerFile()
    //  innerFile()
    //  innerPage()
    //  innerPage()
};
};


/*! \brief The interface to a page in the object model. 
 */
class IPage : public ICompound
class IPage : public ICompound
{
{
};
};
+51 −7
Original line number Original line Diff line number Diff line
@@ -145,13 +145,15 @@ CompoundHandler::CompoundHandler(const QString &xmlDir)
  : m_brief(0), m_detailed(0), m_programListing(0),
  : m_brief(0), m_detailed(0), m_programListing(0),
    m_xmlDir(xmlDir), m_refCount(1), m_memberDict(257), m_memberNameDict(257),
    m_xmlDir(xmlDir), m_refCount(1), m_memberDict(257), m_memberNameDict(257),
    m_mainHandler(0), m_inheritanceGraph(0), m_collaborationGraph(0),
    m_mainHandler(0), m_inheritanceGraph(0), m_collaborationGraph(0),
    m_includeDependencyGraph(0), m_includedByDependencyGraph(0)
    m_includeDependencyGraph(0), m_includedByDependencyGraph(0),
    m_hasTemplateParams(FALSE)
{
{
  m_superClasses.setAutoDelete(TRUE);
  m_superClasses.setAutoDelete(TRUE);
  m_subClasses.setAutoDelete(TRUE);
  m_subClasses.setAutoDelete(TRUE);
  m_sections.setAutoDelete(TRUE);
  m_sections.setAutoDelete(TRUE);
  m_memberNameDict.setAutoDelete(TRUE);
  m_memberNameDict.setAutoDelete(TRUE);
  m_innerClasses.setAutoDelete(TRUE);
  m_innerCompounds.setAutoDelete(TRUE);
  m_templateParams.setAutoDelete(TRUE);


  addStartHandler("doxygen");
  addStartHandler("doxygen");
  addEndHandler("doxygen");
  addEndHandler("doxygen");
@@ -190,6 +192,20 @@ CompoundHandler::CompoundHandler(const QString &xmlDir)
  addStartHandler("innerclass",this,&CompoundHandler::startInnerClass);
  addStartHandler("innerclass",this,&CompoundHandler::startInnerClass);
  addEndHandler("innerclass");
  addEndHandler("innerclass");


  addStartHandler("innernamespace",this,&CompoundHandler::startInnerNamespace);
  addEndHandler("innernamespace");

  addStartHandler("innerfile",this,&CompoundHandler::startInnerFile);
  addEndHandler("innerfile");

  addStartHandler("innergroup",this,&CompoundHandler::startInnerGroup);
  addEndHandler("innergroup");

  addStartHandler("templateparamlist");
  addEndHandler("templateparamlist");

  addStartHandler("param",this,&CompoundHandler::startParam);
  addEndHandler("param");
}
}


CompoundHandler::~CompoundHandler()
CompoundHandler::~CompoundHandler()
@@ -259,7 +275,30 @@ void CompoundHandler::endCompoundName()


void CompoundHandler::startInnerClass(const QXmlAttributes& attrib)
void CompoundHandler::startInnerClass(const QXmlAttributes& attrib)
{
{
  m_innerClasses.append(new QString(attrib.value("refid")));
  m_innerCompounds.append(new QString(attrib.value("refid")));
}

void CompoundHandler::startInnerNamespace(const QXmlAttributes& attrib)
{
  m_innerCompounds.append(new QString(attrib.value("refid")));
}

void CompoundHandler::startInnerFile(const QXmlAttributes& attrib)
{
  m_innerCompounds.append(new QString(attrib.value("refid")));
}

void CompoundHandler::startInnerGroup(const QXmlAttributes& attrib)
{
  m_innerCompounds.append(new QString(attrib.value("refid")));
}

void CompoundHandler::startParam(const QXmlAttributes& attrib)
{
  m_hasTemplateParams = TRUE;
  ParamHandler *ph = new ParamHandler(this);
  ph->startParam(attrib);
  m_templateParams.append(ph);
}
}


void CompoundHandler::addSuperClass(const QXmlAttributes& attrib)
void CompoundHandler::addSuperClass(const QXmlAttributes& attrib)
@@ -445,19 +484,19 @@ IGraph *CompoundHandler::includedByDependencyGraph() const
  return m_includedByDependencyGraph;
  return m_includedByDependencyGraph;
}
}


IRelatedCompoundIterator *CompoundHandler::baseClasses() const
IRelatedCompoundIterator *CompoundHandler::baseCompounds() const
{
{
  return new RelatedCompoundIterator(m_superClasses);
  return new RelatedCompoundIterator(m_superClasses);
}
}


IRelatedCompoundIterator *CompoundHandler::derivedClasses() const
IRelatedCompoundIterator *CompoundHandler::derivedCompounds() const
{
{
  return new RelatedCompoundIterator(m_subClasses);
  return new RelatedCompoundIterator(m_subClasses);
}
}


ICompoundIterator *CompoundHandler::nestedClasses() const
ICompoundIterator *CompoundHandler::nestedCompounds() const
{
{
  return new CompoundIdIterator(m_mainHandler,m_innerClasses);
  return new CompoundIdIterator(m_mainHandler,m_innerCompounds);
}
}


IDocProgramListing *CompoundHandler::source() const
IDocProgramListing *CompoundHandler::source() const
@@ -465,3 +504,8 @@ IDocProgramListing *CompoundHandler::source() const
  return m_programListing;
  return m_programListing;
}
}


IParamIterator *CompoundHandler::templateParameters() const
{
  return m_hasTemplateParams ? new ParamIterator(m_templateParams) : 0;
}
Loading