Blame addon/doxmlparser/src/doxmlintf.h

Packit Service 50c9f2
/******************************************************************************
Packit Service 50c9f2
 *
Packit Service 50c9f2
 * $Id$
Packit Service 50c9f2
 *
Packit Service 50c9f2
 *
Packit Service 50c9f2
 * Copyright (C) 1997-2015 by Dimitri van Heesch.
Packit Service 50c9f2
 *
Packit Service 50c9f2
 * Permission to use, copy, modify, and distribute this software and its
Packit Service 50c9f2
 * documentation under the terms of the GNU General Public License is hereby 
Packit Service 50c9f2
 * granted. No representations are made about the suitability of this software 
Packit Service 50c9f2
 * for any purpose. It is provided "as is" without express or implied warranty.
Packit Service 50c9f2
 * See the GNU General Public License for more details.
Packit Service 50c9f2
 *
Packit Service 50c9f2
 */
Packit Service 50c9f2
Packit Service 50c9f2
#ifndef _DOXMLINTF_H
Packit Service 50c9f2
#define _DOXMLINTF_H
Packit Service 50c9f2
Packit Service 50c9f2
/*! \file
Packit Service 50c9f2
 *  \brief The interface to the object model provided by the XML parser 
Packit Service 50c9f2
 *         library.
Packit Service 50c9f2
 *
Packit Service 50c9f2
 *  To start using this library one calls createObjectModel() and then
Packit Service 50c9f2
 *  uses the returned IDoxygen interface to read doxygen generated
Packit Service 50c9f2
 *  XML output and navigate through the information contained in it.
Packit Service 50c9f2
 *
Packit Service 50c9f2
 *  @see createObjectModel()
Packit Service 50c9f2
 */
Packit Service 50c9f2
Packit Service 50c9f2
class IMember;
Packit Service 50c9f2
class IDocIterator;
Packit Service 50c9f2
class ICompound;
Packit Service 50c9f2
class ISection;
Packit Service 50c9f2
class INode;
Packit Service 50c9f2
class IDocInternal;
Packit Service 50c9f2
class IDocRoot;
Packit Service 50c9f2
Packit Service 50c9f2
#define VIRTUAL_DESTRUCTOR(x) virtual ~x() {}
Packit Service 50c9f2
Packit Service 50c9f2
/*! \brief Read only interface to a string. 
Packit Service 50c9f2
 */
Packit Service 50c9f2
class IString
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    VIRTUAL_DESTRUCTOR(IString)
Packit Service 50c9f2
    /*! Returns a latin1 character representation of the string. */
Packit Service 50c9f2
    virtual const char *latin1() const = 0;
Packit Service 50c9f2
    /*! Returns a utf8 character representation of the string. */
Packit Service 50c9f2
    virtual const char *utf8() const = 0;
Packit Service 50c9f2
    /*! Returns a 16-bit unicode character representation of the character at 
Packit Service 50c9f2
     *  position \a index in the string. The first character is at index 0.
Packit Service 50c9f2
     */
Packit Service 50c9f2
    virtual unsigned short unicodeCharAt(int index) const = 0;
Packit Service 50c9f2
    /*! Returns true if this string is empty or false otherwise */
Packit Service 50c9f2
    virtual bool isEmpty() const = 0;
Packit Service 50c9f2
    /*! Returns the number of characters in the string. */
Packit Service 50c9f2
    virtual int length() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
/*! \brief Base interface for hyperlinked text
Packit Service 50c9f2
 *
Packit Service 50c9f2
 *  Depending on the result of kind() the interface is extended by
Packit Service 50c9f2
 *  ILT_Text or ILT_Ref.
Packit Service 50c9f2
 */
Packit Service 50c9f2
class ILinkedText
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    VIRTUAL_DESTRUCTOR(ILinkedText)
Packit Service 50c9f2
    enum Kind { Kind_Text, Kind_Ref };
Packit Service 50c9f2
    virtual Kind kind() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
/*! \brief Plain text fragment.
Packit Service 50c9f2
 */
Packit Service 50c9f2
class ILT_Text : public ILinkedText
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    VIRTUAL_DESTRUCTOR(ILT_Text)
Packit Service 50c9f2
    virtual const IString *text() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
/*! \brief Reference to an object.
Packit Service 50c9f2
 */
Packit Service 50c9f2
class ILT_Ref : public ILinkedText
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    VIRTUAL_DESTRUCTOR(ILT_Ref)
Packit Service 50c9f2
    enum TargetKind { Member, Compound };
Packit Service 50c9f2
    virtual const IString *id() const = 0;
Packit Service 50c9f2
    virtual TargetKind targetKind() const = 0;
Packit Service 50c9f2
    virtual const IString *external() const = 0;
Packit Service 50c9f2
    virtual const IString *text() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
/*! \brief Iterates over a list of ILinkedText fragments.
Packit Service 50c9f2
 */
Packit Service 50c9f2
class ILinkedTextIterator 
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    VIRTUAL_DESTRUCTOR(ILinkedTextIterator)
Packit Service 50c9f2
    virtual ILinkedText *toFirst() = 0;
Packit Service 50c9f2
    virtual ILinkedText *toLast() = 0;
Packit Service 50c9f2
    virtual ILinkedText *toNext() = 0;
Packit Service 50c9f2
    virtual ILinkedText *toPrev() = 0;
Packit Service 50c9f2
    virtual ILinkedText *current() const = 0;
Packit Service 50c9f2
    virtual void release() = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
/*! \brief Representation of a parameter of a function. */
Packit Service 50c9f2
class IParam 
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    VIRTUAL_DESTRUCTOR(IParam)
Packit Service 50c9f2
    virtual ILinkedTextIterator *type() const = 0;
Packit Service 50c9f2
    virtual const IString * declarationName() const = 0;
Packit Service 50c9f2
    virtual const IString * definitionName() const = 0;
Packit Service 50c9f2
    virtual const IString * attrib() const = 0;
Packit Service 50c9f2
    virtual const IString * arraySpecifier() const = 0;
Packit Service 50c9f2
    virtual ILinkedTextIterator *defaultValue() const = 0;
Packit Service 50c9f2
    virtual IDocRoot *briefDescription() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IParamIterator
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    VIRTUAL_DESTRUCTOR(IParamIterator)
Packit Service 50c9f2
    virtual IParam *toFirst() = 0;
Packit Service 50c9f2
    virtual IParam *toLast() = 0;
Packit Service 50c9f2
    virtual IParam *toNext() = 0;
Packit Service 50c9f2
    virtual IParam *toPrev() = 0;
Packit Service 50c9f2
    virtual IParam *current() const = 0;
Packit Service 50c9f2
    virtual void release() = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IMemberReference 
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    VIRTUAL_DESTRUCTOR(IMemberReference)
Packit Service 50c9f2
    virtual IMember *member() const = 0;
Packit Service 50c9f2
    virtual const IString * name() const = 0;
Packit Service 50c9f2
    virtual const IString * scope() const = 0;
Packit Service 50c9f2
    virtual const IString * protection() const = 0;
Packit Service 50c9f2
    virtual const IString * virtualness() const = 0;
Packit Service 50c9f2
    virtual const IString * ambiguityScope() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IMemberReferenceIterator 
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    VIRTUAL_DESTRUCTOR(IMemberReferenceIterator)
Packit Service 50c9f2
    virtual IMemberReference *toFirst() = 0;
Packit Service 50c9f2
    virtual IMemberReference *toLast() = 0;
Packit Service 50c9f2
    virtual IMemberReference *toNext() = 0;
Packit Service 50c9f2
    virtual IMemberReference *toPrev() = 0;
Packit Service 50c9f2
    virtual IMemberReference *current() const = 0;
Packit Service 50c9f2
    virtual void release() = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    VIRTUAL_DESTRUCTOR(IDoc)
Packit Service 50c9f2
    enum Kind 
Packit Service 50c9f2
    { 
Packit Service 50c9f2
      Invalid = 0,        //  0
Packit Service 50c9f2
      Para,               //  1 -> IDocPara
Packit Service 50c9f2
      Text,               //  2 -> IDocText
Packit Service 50c9f2
      MarkupModifier,     //  3 -> IDocMarkupModifier
Packit Service 50c9f2
      ItemizedList,       //  4 -> IDocItemizedList
Packit Service 50c9f2
      OrderedList,        //  5 -> IDocOrderedList
Packit Service 50c9f2
      ListItem,           //  6 -> IDocListItem
Packit Service 50c9f2
      ParameterList,      //  7 -> IDocParameterList
Packit Service 50c9f2
      Parameter,          //  8 -> IDocParameter
Packit Service 50c9f2
      SimpleSect,         //  9 -> IDocSimpleSect
Packit Service 50c9f2
      Title,              // 10 -> IDocTitle
Packit Service 50c9f2
      Ref,                // 11 -> IDocRef
Packit Service 50c9f2
      VariableList,       // 12 -> IDocVariableList
Packit Service 50c9f2
      VariableListEntry,  // 13 -> IDocVariableListEntry
Packit Service 50c9f2
      HRuler,             // 14 -> IDocHRuler
Packit Service 50c9f2
      LineBreak,          // 15 -> IDocLineBreak
Packit Service 50c9f2
      ULink,              // 16 -> IDocULink
Packit Service 50c9f2
      EMail,              // 17 -> IDocEMail
Packit Service 50c9f2
      Link,               // 18 -> IDocLink
Packit Service 50c9f2
      ProgramListing,     // 19 -> IDocProgramListing
Packit Service 50c9f2
      CodeLine,           // 20 -> IDocCodeLine
Packit Service 50c9f2
      Highlight,          // 21 -> IDocHighlight
Packit Service 50c9f2
      Formula,            // 22 -> IDocFormula
Packit Service 50c9f2
      Image,              // 23 -> IDocImage
Packit Service 50c9f2
      DotFile,            // 24 -> IDocDotFile
Packit Service 50c9f2
      IndexEntry,         // 25 -> IDocIndexEntry
Packit Service 50c9f2
      Table,              // 26 -> IDocTable
Packit Service 50c9f2
      Row,                // 27 -> IDocRow
Packit Service 50c9f2
      Entry,              // 28 -> IDocEntry
Packit Service 50c9f2
      Section,            // 29 -> IDocSection
Packit Service 50c9f2
      Verbatim,           // 30 -> IDocVerbatim
Packit Service 50c9f2
      Copy,               // 31 -> IDocCopy
Packit Service 50c9f2
      TocList,            // 32 -> IDocTocList
Packit Service 50c9f2
      TocItem,            // 33 -> IDocTocItem
Packit Service 50c9f2
      Anchor,             // 34 -> IDocAnchor
Packit Service 50c9f2
      Symbol,             // 35 -> IDocSymbol
Packit Service 50c9f2
      Internal,           // 36 -> IDocInternal
Packit Service 50c9f2
      Root,               // 37 -> IDocRoot
Packit Service 50c9f2
      ParameterItem       // 38 -> IDocParameterItem
Packit Service 50c9f2
    };
Packit Service 50c9f2
    virtual Kind kind() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocMarkup : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    enum Markup 
Packit Service 50c9f2
    { 
Packit Service 50c9f2
      Normal         = 0x000,
Packit Service 50c9f2
      Bold           = 0x001,
Packit Service 50c9f2
      Emphasis       = 0x002,
Packit Service 50c9f2
      ComputerOutput = 0x004,
Packit Service 50c9f2
      Subscript      = 0x008,
Packit Service 50c9f2
      Superscript    = 0x010,
Packit Service 50c9f2
      SmallFont      = 0x020,
Packit Service 50c9f2
      Center         = 0x040,
Packit Service 50c9f2
      Preformatted   = 0x080,
Packit Service 50c9f2
      Heading        = 0x100
Packit Service 50c9f2
    };
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocPara : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual IDocIterator *contents() const = 0; 
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocText : public IDocMarkup
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual const IString * text() const = 0;
Packit Service 50c9f2
    virtual int markup() const = 0;
Packit Service 50c9f2
    virtual int headingLevel() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocMarkupModifier : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual bool enabled() const = 0;
Packit Service 50c9f2
    virtual int markup() const = 0;
Packit Service 50c9f2
    virtual int headingLevel() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocItemizedList : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual IDocIterator *elements() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocOrderedList : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual IDocIterator *elements() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocListItem : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual IDocIterator *contents() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocParameterList : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    enum Types { Param, RetVal, Exception };
Packit Service 50c9f2
    virtual Types sectType() const = 0;
Packit Service 50c9f2
    virtual IDocIterator *params() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocParameterItem : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual IDocIterator *paramNames() const = 0;
Packit Service 50c9f2
    virtual IDocPara *description() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocParameter : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual const IString * name() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocTitle : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual IDocIterator *title() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocSimpleSect : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    enum Types { Invalid = 0,
Packit Service 50c9f2
                 See, Return, Author, Version, 
Packit Service 50c9f2
                 Since, Date, Bug, Note,
Packit Service 50c9f2
                 Warning, Par, Deprecated, Pre, 
Packit Service 50c9f2
                 Post, Invar, Remark, Attention,
Packit Service 50c9f2
                 Todo, Test, RCS, EnumValues, 
Packit Service 50c9f2
                 Examples
Packit Service 50c9f2
    };
Packit Service 50c9f2
    virtual Types type() const = 0;
Packit Service 50c9f2
    virtual const IString * typeString() const = 0;
Packit Service 50c9f2
    virtual IDocTitle *title() const = 0;
Packit Service 50c9f2
    virtual IDocPara *description() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocRef : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    enum TargetKind { Member, Compound };
Packit Service 50c9f2
    virtual const IString * refId() const = 0;
Packit Service 50c9f2
    virtual TargetKind targetKind() const = 0;
Packit Service 50c9f2
    virtual const IString * external() const = 0;
Packit Service 50c9f2
    virtual const IString * text() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocVariableList : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual IDocIterator *entries() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocVariableListEntry : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual ILinkedTextIterator * term() const = 0;
Packit Service 50c9f2
    virtual IDocPara *description() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocHRuler : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocLineBreak : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocULink : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual const IString * url() const = 0;
Packit Service 50c9f2
    virtual const IString * text() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocEMail : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual const IString * address() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocLink : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual const IString * refId() const = 0;
Packit Service 50c9f2
    virtual const IString * text() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocProgramListing : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual IDocIterator *codeLines() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocCodeLine : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual int lineNumber() const = 0;
Packit Service 50c9f2
    virtual const IString * refId() const = 0;
Packit Service 50c9f2
    virtual IDocIterator *codeElements() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocHighlight : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    enum HighlightKind 
Packit Service 50c9f2
    { Invalid=0,
Packit Service 50c9f2
      Comment, Keyword, 
Packit Service 50c9f2
      KeywordType, KeywordFlow, CharLiteral, 
Packit Service 50c9f2
      StringLiteral, Preprocessor
Packit Service 50c9f2
    };
Packit Service 50c9f2
    virtual HighlightKind highlightKind() const = 0;
Packit Service 50c9f2
    virtual IDocIterator *codeElements() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocFormula : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual const IString * id() const = 0;
Packit Service 50c9f2
    virtual const IString * text() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocImage : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual const IString * name() const = 0;
Packit Service 50c9f2
    virtual const IString * caption() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocDotFile : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual const IString * name() const = 0;
Packit Service 50c9f2
    virtual const IString * caption() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocIndexEntry : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual const IString * primary() const = 0;
Packit Service 50c9f2
    virtual const IString * secondary() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocTable : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual IDocIterator *rows() const = 0;
Packit Service 50c9f2
    virtual int numColumns() const = 0;
Packit Service 50c9f2
    virtual const IString * caption() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocRow : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual IDocIterator *entries() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocEntry : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual IDocIterator *contents() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocSection : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual const IString * id() const = 0; 
Packit Service 50c9f2
    virtual int level() const = 0;
Packit Service 50c9f2
    virtual IDocTitle *title() const = 0;
Packit Service 50c9f2
    virtual IDocIterator *paragraphs() const = 0;
Packit Service 50c9f2
    virtual IDocIterator *subSections() const = 0;
Packit Service 50c9f2
    virtual IDocInternal *internal() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocInternal : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual IDocIterator *paragraphs() const = 0;
Packit Service 50c9f2
    virtual IDocIterator *subSections() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocTocList : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual IDocIterator *elements() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocTocItem : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual const IString *id() const = 0; 
Packit Service 50c9f2
    virtual const IString *title() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocCopy : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual IDocIterator *contents() const = 0; 
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocVerbatim : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    enum Types { Invalid = 0, HtmlOnly, LatexOnly, Verbatim };
Packit Service 50c9f2
    virtual const IString *text() const = 0; 
Packit Service 50c9f2
    virtual Types type() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocAnchor : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual const IString *id() const = 0; 
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocSymbol : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    enum Types 
Packit Service 50c9f2
    { Invalid = 0,
Packit Service 50c9f2
      Umlaut, Acute, Grave, Circ, Tilde, Szlig, Cedil, Ring, Nbsp, Copy
Packit Service 50c9f2
    };
Packit Service 50c9f2
    virtual Types type() const = 0;
Packit Service 50c9f2
    virtual const IString * typeString() const = 0;
Packit Service 50c9f2
    virtual char letter() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocRoot : public IDoc
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual IDocIterator *contents() const = 0; 
Packit Service 50c9f2
    virtual IDocInternal *internal() const = 0; 
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDocIterator 
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    VIRTUAL_DESTRUCTOR(IDocIterator)
Packit Service 50c9f2
    virtual IDoc *toFirst() = 0;
Packit Service 50c9f2
    virtual IDoc *toLast() = 0;
Packit Service 50c9f2
    virtual IDoc *toNext() = 0;
Packit Service 50c9f2
    virtual IDoc *toPrev() = 0;
Packit Service 50c9f2
    virtual IDoc *current() const = 0;
Packit Service 50c9f2
    virtual void release() = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IEdgeLabel
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    VIRTUAL_DESTRUCTOR(IEdgeLabel)
Packit Service 50c9f2
    virtual const IString * label() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IEdgeLabelIterator 
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    VIRTUAL_DESTRUCTOR(IEdgeLabelIterator)
Packit Service 50c9f2
    virtual IEdgeLabel *toFirst() = 0;
Packit Service 50c9f2
    virtual IEdgeLabel *toLast() = 0;
Packit Service 50c9f2
    virtual IEdgeLabel *toNext() = 0;
Packit Service 50c9f2
    virtual IEdgeLabel *toPrev() = 0;
Packit Service 50c9f2
    virtual IEdgeLabel *current() const = 0;
Packit Service 50c9f2
    virtual void release() = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IChildNode
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    VIRTUAL_DESTRUCTOR(IChildNode)
Packit Service 50c9f2
    enum NodeRelation { PublicInheritance, ProtectedInheritance,
Packit Service 50c9f2
                        PrivateInheritance, Usage, TemplateInstance
Packit Service 50c9f2
                      };
Packit Service 50c9f2
    virtual INode * node() const = 0;
Packit Service 50c9f2
    virtual NodeRelation relation() const = 0;
Packit Service 50c9f2
    virtual const IString * relationString() const = 0;
Packit Service 50c9f2
    virtual IEdgeLabelIterator *edgeLabels() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IChildNodeIterator 
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    VIRTUAL_DESTRUCTOR(IChildNodeIterator)
Packit Service 50c9f2
    virtual IChildNode *toFirst() = 0;
Packit Service 50c9f2
    virtual IChildNode *toLast() = 0;
Packit Service 50c9f2
    virtual IChildNode *toNext() = 0;
Packit Service 50c9f2
    virtual IChildNode *toPrev() = 0;
Packit Service 50c9f2
    virtual IChildNode *current() const = 0;
Packit Service 50c9f2
    virtual void release() = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class INode
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    VIRTUAL_DESTRUCTOR(INode)
Packit Service 50c9f2
    virtual const IString * id() const = 0;
Packit Service 50c9f2
    virtual const IString * label() const = 0;
Packit Service 50c9f2
    virtual const IString * linkId() const = 0;
Packit Service 50c9f2
    virtual IChildNodeIterator *children() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class INodeIterator 
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    VIRTUAL_DESTRUCTOR(INodeIterator)
Packit Service 50c9f2
    virtual INode *toFirst() = 0;
Packit Service 50c9f2
    virtual INode *toLast() = 0;
Packit Service 50c9f2
    virtual INode *toNext() = 0;
Packit Service 50c9f2
    virtual INode *toPrev() = 0;
Packit Service 50c9f2
    virtual INode *current() const = 0;
Packit Service 50c9f2
    virtual void release() = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IGraph
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    VIRTUAL_DESTRUCTOR(IGraph)
Packit Service 50c9f2
    virtual INodeIterator *nodes() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IMember 
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    VIRTUAL_DESTRUCTOR(IMember)
Packit Service 50c9f2
    enum MemberKind { Invalid=0,
Packit Service 50c9f2
                      Define, Property, Variable, Typedef, Enum,
Packit Service 50c9f2
                      Function, Signal, Prototype, Friend, DCOP, Slot, 
Packit Service 50c9f2
                      EnumValue
Packit Service 50c9f2
                    };
Packit Service 50c9f2
    virtual ICompound *compound() const = 0;
Packit Service 50c9f2
    virtual ISection *section() const = 0;
Packit Service 50c9f2
    virtual MemberKind kind() const = 0;
Packit Service 50c9f2
    virtual const IString * kindString() const = 0;
Packit Service 50c9f2
    virtual const IString * id() const = 0;
Packit Service 50c9f2
    virtual const IString * protection() const = 0;
Packit Service 50c9f2
    virtual const IString * virtualness() const = 0;
Packit Service 50c9f2
    virtual ILinkedTextIterator *type() const = 0;
Packit Service 50c9f2
    virtual const IString * typeString() const = 0;
Packit Service 50c9f2
    virtual const IString * name() const = 0;
Packit Service 50c9f2
    virtual const IString * readAccessor() const = 0;
Packit Service 50c9f2
    virtual const IString * writeAccessor() const = 0;
Packit Service 50c9f2
    virtual const IString * definition() const = 0;
Packit Service 50c9f2
    virtual const IString * argsstring() const = 0;
Packit Service 50c9f2
    virtual bool isConst() const = 0;
Packit Service 50c9f2
    virtual bool isVolatile() const = 0;
Packit Service 50c9f2
    virtual bool isStatic() const = 0;
Packit Service 50c9f2
    virtual bool isExplicit() const = 0;
Packit Service 50c9f2
    virtual bool isInline() const = 0;
Packit Service 50c9f2
    virtual bool isMutable() const = 0;
Packit Service 50c9f2
    virtual bool isReadable() const = 0;
Packit Service 50c9f2
    virtual bool isWritable() const = 0;
Packit Service 50c9f2
    virtual IParamIterator *parameters() const = 0;
Packit Service 50c9f2
    virtual IParamIterator *templateParameters() const = 0;
Packit Service 50c9f2
    virtual ILinkedTextIterator *initializer() const = 0;
Packit Service 50c9f2
    virtual ILinkedTextIterator *exceptions() const = 0;
Packit Service 50c9f2
    virtual IMemberReferenceIterator *references() const = 0; 
Packit Service 50c9f2
    virtual IMemberReferenceIterator *referencedBy() const = 0;
Packit Service 50c9f2
    virtual const IString *bodyFile() const = 0;
Packit Service 50c9f2
    virtual int bodyStart() const = 0;
Packit Service 50c9f2
    virtual int bodyEnd() const = 0;
Packit Service 50c9f2
    virtual const IString * definitionFile() const = 0;
Packit Service 50c9f2
    virtual int definitionLine() const = 0;
Packit Service 50c9f2
    virtual IMemberReference *reimplements() const = 0;
Packit Service 50c9f2
    virtual IMemberReferenceIterator *reimplementedBy() const = 0;
Packit Service 50c9f2
    virtual IDocRoot *briefDescription() const = 0;
Packit Service 50c9f2
    virtual IDocRoot *detailedDescription() const = 0;
Packit Service 50c9f2
    virtual IDocRoot *inbodyDescription() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDefine : public IMember
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IProperty : public IMember
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IVariable : public IMember
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class ITypedef : public IMember
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IFunction : public IMember
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class ISignal : public IMember
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IPrototype : public IMember
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IFriend : public IMember
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IDCOP : public IMember
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class ISlot : public IMember
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IEnumValue : public IMember
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual const IString * name() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
/*! \brief Include relation
Packit Service 50c9f2
 */
Packit Service 50c9f2
class IInclude 
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    VIRTUAL_DESTRUCTOR(IInclude)
Packit Service 50c9f2
    virtual const IString * name() const = 0;
Packit Service 50c9f2
    virtual const IString * refId() const = 0;
Packit Service 50c9f2
    virtual bool isLocal() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IIncludeIterator
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    VIRTUAL_DESTRUCTOR(IIncludeIterator)
Packit Service 50c9f2
    virtual IInclude *toFirst() = 0;
Packit Service 50c9f2
    virtual IInclude *toLast() = 0;
Packit Service 50c9f2
    virtual IInclude *toNext() = 0;
Packit Service 50c9f2
    virtual IInclude *toPrev() = 0;
Packit Service 50c9f2
    virtual IInclude *current() const = 0;
Packit Service 50c9f2
    virtual void release() = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IMemberIterator 
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    VIRTUAL_DESTRUCTOR(IMemberIterator)
Packit Service 50c9f2
    virtual IMember *toFirst() = 0;
Packit Service 50c9f2
    virtual IMember *toLast() = 0;
Packit Service 50c9f2
    virtual IMember *toNext() = 0;
Packit Service 50c9f2
    virtual IMember *toPrev() = 0;
Packit Service 50c9f2
    virtual IMember *current() const = 0;
Packit Service 50c9f2
    virtual void release() = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IEnum : public IMember
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual IMemberIterator *enumValues() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
/*! \brief The interface to a section in the object model. 
Packit Service 50c9f2
 *
Packit Service 50c9f2
 *  A compound can have a number of sections, where each
Packit Service 50c9f2
 *  section contains a set of members with the properties implied by
Packit Service 50c9f2
 *  the section kind. The kind() method returns the kind of the section.
Packit Service 50c9f2
 *  The members of the section can be accessed via members(). Apart
Packit Service 50c9f2
 *  from using kind(), some of the individual properties of the section can 
Packit Service 50c9f2
 *  also be inspected via isStatic(), isPublic(), isProtected() and 
Packit Service 50c9f2
 *  isPrivate().
Packit Service 50c9f2
 */
Packit Service 50c9f2
class ISection 
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    VIRTUAL_DESTRUCTOR(ISection)
Packit Service 50c9f2
    /*! Possible section types */
Packit Service 50c9f2
    enum SectionKind 
Packit Service 50c9f2
    { Invalid=0,
Packit Service 50c9f2
      UserDefined,         //!< A user defined member group 
Packit Service 50c9f2
      PubTypes,            //!< Public member typedefs
Packit Service 50c9f2
      PubFuncs,            //!< Public member functions
Packit Service 50c9f2
      PubAttribs,          //!< Public member attributes 
Packit Service 50c9f2
      PubSlots,            //!< Public Qt Slots
Packit Service 50c9f2
      Signals,             //!< Qt Signals
Packit Service 50c9f2
      DCOPFuncs,           //!< KDE-DCOP interface functions
Packit Service 50c9f2
      Properties,          //!< IDL properties
Packit Service 50c9f2
      Events,              //!< C# events
Packit Service 50c9f2
      PubStatFuncs,        //!< Public static member functions
Packit Service 50c9f2
      PubStatAttribs,      //!< Public static attributes
Packit Service 50c9f2
      ProTypes,            //!< Protected member typedefs
Packit Service 50c9f2
      ProFuncs,            //!< Protected member functions
Packit Service 50c9f2
      ProAttribs,          //!< Protected member attributes
Packit Service 50c9f2
      ProSlots,            //!< Protected slots
Packit Service 50c9f2
      ProStatFuncs,        //!< Protected static member functions
Packit Service 50c9f2
      ProStatAttribs,      //!< Protected static member attributes
Packit Service 50c9f2
      PacTypes,            //!< Package member typedefs
Packit Service 50c9f2
      PacFuncs,            //!< Package member functions
Packit Service 50c9f2
      PacAttribs,          //!< Package member attributes
Packit Service 50c9f2
      PacStatFuncs,        //!< Package static member functions
Packit Service 50c9f2
      PacStatAttribs,      //!< Package static member attributes
Packit Service 50c9f2
      PriTypes,            //!< Private member typedefs
Packit Service 50c9f2
      PriFuncs,            //!< Private member functions
Packit Service 50c9f2
      PriAttribs,          //!< Private member attributes
Packit Service 50c9f2
      PriSlots,            //!< Private Qt slots
Packit Service 50c9f2
      PriStatFuncs,        //!< Private static member functions
Packit Service 50c9f2
      PriStatAttribs,      //!< Private static member attributes
Packit Service 50c9f2
      Friend,              //!< Friends
Packit Service 50c9f2
      Related,             //!< Function marked as related
Packit Service 50c9f2
      Defines,             //!< Preprocessor defines
Packit Service 50c9f2
      Prototypes,          //!< Global function prototypes
Packit Service 50c9f2
      Typedefs,            //!< Global typedefs
Packit Service 50c9f2
      Enums,               //!< Enumerations
Packit Service 50c9f2
      Functions,           //!< Global functions
Packit Service 50c9f2
      Variables            //!< Global variables
Packit Service 50c9f2
    };
Packit Service 50c9f2
    
Packit Service 50c9f2
    /*! Returns a string representation of the value returned by kind() */
Packit Service 50c9f2
    virtual const IString * kindString() const = 0;
Packit Service 50c9f2
    
Packit Service 50c9f2
    /*! Returns what kind of section this is */
Packit Service 50c9f2
    virtual SectionKind kind() const = 0;
Packit Service 50c9f2
Packit Service 50c9f2
    /*! Returns the description attached to this section (for user defined
Packit Service 50c9f2
     *  sections, also known as member groups).
Packit Service 50c9f2
     */
Packit Service 50c9f2
    virtual IDocRoot *description() const = 0;
Packit Service 50c9f2
    
Packit Service 50c9f2
    /*! Returns an iterator for the members of this section */
Packit Service 50c9f2
    virtual IMemberIterator *members() const = 0;
Packit Service 50c9f2
    
Packit Service 50c9f2
    /*! Returns \c true if this section contains statics */
Packit Service 50c9f2
    virtual bool isStatic() const = 0;
Packit Service 50c9f2
    
Packit Service 50c9f2
    /*! Returns \c true if this section belongs to a 
Packit Service 50c9f2
     *  public section of a class 
Packit Service 50c9f2
     */
Packit Service 50c9f2
    virtual bool isPublic() const = 0;
Packit Service 50c9f2
    
Packit Service 50c9f2
    /*! Returns \c true if this section belongs to a 
Packit Service 50c9f2
     *  private section of a class 
Packit Service 50c9f2
     */
Packit Service 50c9f2
    virtual bool isPrivate() const = 0;
Packit Service 50c9f2
    
Packit Service 50c9f2
    /*! Returns \c true if this section belongs to a 
Packit Service 50c9f2
     *  protected section of a class 
Packit Service 50c9f2
     * */
Packit Service 50c9f2
    virtual bool isProtected() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IUserDefined : public ISection
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual const IString * header() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class ISectionIterator 
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    VIRTUAL_DESTRUCTOR(ISectionIterator)
Packit Service 50c9f2
    virtual ISection *toFirst() = 0;
Packit Service 50c9f2
    virtual ISection *toLast() = 0;
Packit Service 50c9f2
    virtual ISection *toNext() = 0;
Packit Service 50c9f2
    virtual ISection *toPrev() = 0;
Packit Service 50c9f2
    virtual ISection *current() const = 0;
Packit Service 50c9f2
    virtual void release() = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
/*! \brief The interface to a compound in the object model. 
Packit Service 50c9f2
 *
Packit Service 50c9f2
 *  A compound has a name which can be obtained via the name() method 
Packit Service 50c9f2
 *  and a unique id, which is return via the id() method.
Packit Service 50c9f2
 *  A compound consists zero or more members which are grouped into sections. 
Packit Service 50c9f2
 *  The sections() method can be used to access the individual sections. 
Packit Service 50c9f2
 *  Alternatively, members can be obtained by name or id. There are 
Packit Service 50c9f2
 *  different types of compounds. The kind() method returns what kind of 
Packit Service 50c9f2
 *  compound this is. Depending on the return value one can dynamically 
Packit Service 50c9f2
 *  cast an interface pointer to an more specialised interface that provides 
Packit Service 50c9f2
 *  additional methods.
Packit Service 50c9f2
 *  Example:
Packit Service 50c9f2
 *  \code
Packit Service 50c9f2
 *  ICompound *comp=...;
Packit Service 50c9f2
 *  if (comp->kind()==ICompound::Class)
Packit Service 50c9f2
 *  {
Packit Service 50c9f2
 *    IClass *cls = dynamic_cast<IClass*>(comp);
Packit Service 50c9f2
 *    // use methods of IClass
Packit Service 50c9f2
 *  }
Packit Service 50c9f2
 *  \endcode
Packit Service 50c9f2
 *  The documentation that is provided by a compound is available via
Packit Service 50c9f2
 *  the briefDescription() and detailedDescription() methods.
Packit Service 50c9f2
 *  To avoid excessive memory usage, release() should be called (once) on each 
Packit Service 50c9f2
 *  compound interface pointer that is no longer needed.
Packit Service 50c9f2
 */
Packit Service 50c9f2
class ICompound 
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    VIRTUAL_DESTRUCTOR(ICompound)
Packit Service 50c9f2
    /*! Represents the kind of compounds recognised by doxygen. */
Packit Service 50c9f2
    enum CompoundKind { Invalid=0,
Packit Service 50c9f2
                        Class, Struct, Union, Interface, Protocol, Category,
Packit Service 50c9f2
                        Exception, File, Namespace, Group, Page, Example, Dir
Packit Service 50c9f2
                      };
Packit Service 50c9f2
Packit Service 50c9f2
    /*! Returns the name of this compound */
Packit Service 50c9f2
    virtual const IString * name() const = 0;
Packit Service 50c9f2
Packit Service 50c9f2
    /*! Returns the id of this compound. The id is a
Packit Service 50c9f2
     *  unique string representing a specific compound object.
Packit Service 50c9f2
     */
Packit Service 50c9f2
    virtual const IString * id()   const = 0;
Packit Service 50c9f2
Packit Service 50c9f2
    /*! Returns the kind of compound. See #CompoundKind for possible
Packit Service 50c9f2
     *  values.
Packit Service 50c9f2
     */
Packit Service 50c9f2
    virtual CompoundKind kind() const = 0;
Packit Service 50c9f2
Packit Service 50c9f2
    /*! Returns a string representation of the compound kind.
Packit Service 50c9f2
     *  @see kind()
Packit Service 50c9f2
     */
Packit Service 50c9f2
    virtual const IString * kindString() const = 0;
Packit Service 50c9f2
Packit Service 50c9f2
    /*! Returns an iterator for the different member sections in this
Packit Service 50c9f2
     *  compound.
Packit Service 50c9f2
     */
Packit Service 50c9f2
    virtual ISectionIterator *sections() const = 0;
Packit Service 50c9f2
Packit Service 50c9f2
    /*! Returns a tree-structured representation of the brief
Packit Service 50c9f2
     *  description that is attached to this compound.
Packit Service 50c9f2
     */
Packit Service 50c9f2
    virtual IDocRoot *briefDescription() const = 0;
Packit Service 50c9f2
Packit Service 50c9f2
    /*! Returns a tree-structured representation of the detailed
Packit Service 50c9f2
     *  description that is attached to this compound.
Packit Service 50c9f2
     */
Packit Service 50c9f2
    virtual IDocRoot *detailedDescription() const = 0;
Packit Service 50c9f2
Packit Service 50c9f2
    /*! Returns an interface to a member given its id. 
Packit Service 50c9f2
     *  @param id The member id.
Packit Service 50c9f2
     */
Packit Service 50c9f2
    virtual IMember *memberById(const char * id) const = 0;
Packit Service 50c9f2
Packit Service 50c9f2
    /*! Returns a list of all members within the compound having a certain 
Packit Service 50c9f2
     *  name. Member overloading is the reason why there can be more than 
Packit Service 50c9f2
     *  one member. 
Packit Service 50c9f2
     *  @param name The name of the member.
Packit Service 50c9f2
     */
Packit Service 50c9f2
    virtual IMemberIterator *memberByName(const char * name) const = 0;
Packit Service 50c9f2
Packit Service 50c9f2
    /*! Decreases the reference counter for this compound. If it reaches
Packit Service 50c9f2
     *  zero, the memory for the compound will be released.
Packit Service 50c9f2
     */
Packit Service 50c9f2
    virtual void release() = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class ICompoundIterator 
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    VIRTUAL_DESTRUCTOR(ICompoundIterator)
Packit Service 50c9f2
    virtual void toFirst() = 0;
Packit Service 50c9f2
    virtual void toLast() = 0;
Packit Service 50c9f2
    virtual void toNext() = 0;
Packit Service 50c9f2
    virtual void toPrev() = 0;
Packit Service 50c9f2
    virtual ICompound *current() const = 0;
Packit Service 50c9f2
    virtual void release() = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IRelatedCompound
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    VIRTUAL_DESTRUCTOR(IRelatedCompound)
Packit Service 50c9f2
    enum Protection { Public, Protected, Private };
Packit Service 50c9f2
    enum Kind { Normal, Virtual };
Packit Service 50c9f2
    virtual ICompound *compound() const = 0;
Packit Service 50c9f2
    virtual Protection protection() const = 0;
Packit Service 50c9f2
    virtual Kind kind() const = 0;
Packit Service 50c9f2
    virtual const IString *name() const = 0;
Packit Service 50c9f2
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
class IRelatedCompoundIterator 
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    VIRTUAL_DESTRUCTOR(IRelatedCompoundIterator)
Packit Service 50c9f2
    virtual IRelatedCompound *toFirst() = 0;
Packit Service 50c9f2
    virtual IRelatedCompound *toLast() = 0;
Packit Service 50c9f2
    virtual IRelatedCompound *toNext() = 0;
Packit Service 50c9f2
    virtual IRelatedCompound *toPrev() = 0;
Packit Service 50c9f2
    virtual IRelatedCompound *current() const = 0;
Packit Service 50c9f2
    virtual void release() = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
/*! \brief The interface to a class in the object model. 
Packit Service 50c9f2
 */
Packit Service 50c9f2
class IClass : public ICompound
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual IGraph *inheritanceGraph() const = 0;
Packit Service 50c9f2
    virtual IGraph *collaborationGraph() const = 0;
Packit Service 50c9f2
    virtual IRelatedCompoundIterator *baseCompounds() const = 0;
Packit Service 50c9f2
    virtual IRelatedCompoundIterator *derivedCompounds() const = 0;
Packit Service 50c9f2
    virtual ICompoundIterator *nestedCompounds() const = 0;
Packit Service 50c9f2
    virtual IParamIterator *templateParameters() const = 0;
Packit Service 50c9f2
    virtual const IString *locationFile() const = 0;
Packit Service 50c9f2
    virtual int locationLine() const = 0;
Packit Service 50c9f2
    virtual const IString *locationBodyFile() const = 0;
Packit Service 50c9f2
    virtual int locationBodyStartLine() const = 0;
Packit Service 50c9f2
    virtual int locationBodyEndLine() const = 0;
Packit Service 50c9f2
Packit Service 50c9f2
    // TODO:
Packit Service 50c9f2
    // class:
Packit Service 50c9f2
    //  listOfAllMembers()
Packit Service 50c9f2
    //  protection()
Packit Service 50c9f2
    //  isAbstract()
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
/*! \brief The interface to a struct in the object model. 
Packit Service 50c9f2
 */
Packit Service 50c9f2
class IStruct : public ICompound
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual ICompoundIterator *nestedCompounds() const = 0;
Packit Service 50c9f2
    virtual IRelatedCompoundIterator *baseCompounds() const = 0;
Packit Service 50c9f2
    virtual IRelatedCompoundIterator *derivedCompounds() const = 0;
Packit Service 50c9f2
    virtual const IString *locationFile() const = 0;
Packit Service 50c9f2
    virtual int locationLine() const = 0;
Packit Service 50c9f2
    virtual int locationBodyStartLine() const = 0;
Packit Service 50c9f2
    virtual int locationBodyEndLine() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
/*! \brief The interface to a union in the object model. 
Packit Service 50c9f2
 */
Packit Service 50c9f2
class IUnion : public ICompound
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual ICompoundIterator *nestedCompounds() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
/*! \brief The interface to a Java/IDL interface in the object model. 
Packit Service 50c9f2
 */
Packit Service 50c9f2
class IInterface : public ICompound
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual IRelatedCompoundIterator *baseCompounds() const = 0;
Packit Service 50c9f2
    virtual IRelatedCompoundIterator *derivedCompounds() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
Packit Service 50c9f2
/*! \brief The interface to a Java/IDL exception in the object model. 
Packit Service 50c9f2
 */
Packit Service 50c9f2
class IException : public ICompound
Packit Service 50c9f2
{
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
/*! \brief The interface to a namespace in the object model. 
Packit Service 50c9f2
 */
Packit Service 50c9f2
class INamespace : public ICompound
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual ICompoundIterator *nestedCompounds() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
/*! \brief The interface to a file in the object model. 
Packit Service 50c9f2
 */
Packit Service 50c9f2
class IFile : public ICompound
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual IGraph *includeDependencyGraph() const = 0;
Packit Service 50c9f2
    virtual IGraph *includedByDependencyGraph() const = 0;
Packit Service 50c9f2
    virtual IDocProgramListing *source() const = 0;
Packit Service 50c9f2
    virtual ICompoundIterator *nestedCompounds() const = 0;
Packit Service 50c9f2
Packit Service 50c9f2
    virtual IIncludeIterator *includes() const = 0;
Packit Service 50c9f2
    virtual IIncludeIterator *includedBy() const = 0;
Packit Service 50c9f2
Packit Service 50c9f2
    //  ICompound *innerNamespaces()
Packit Service 50c9f2
    //  ICompoundIterator *innerClasses()
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
/*! \brief The interface to a group in the object model. 
Packit Service 50c9f2
 */
Packit Service 50c9f2
class IGroup : public ICompound
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual ICompoundIterator *nestedCompounds() const = 0;
Packit Service 50c9f2
    // group:
Packit Service 50c9f2
    //  Title()
Packit Service 50c9f2
    //  innerFile()
Packit Service 50c9f2
    //  innerPage()
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
/*! \brief The interface to a page in the object model. 
Packit Service 50c9f2
 */
Packit Service 50c9f2
class IPage : public ICompound
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual const IDocTitle *title() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
/** \brief Interface to a directory in the object model. */
Packit Service 50c9f2
class IDir : public ICompound
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual ICompoundIterator *nestedCompounds() const = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
/*! Root node of the object model. */
Packit Service 50c9f2
class IDoxygen 
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    VIRTUAL_DESTRUCTOR(IDoxygen)
Packit Service 50c9f2
Packit Service 50c9f2
    /*! Returns an iterator that can be used to iterate over the list
Packit Service 50c9f2
     *  of compounds found in the project.
Packit Service 50c9f2
     */
Packit Service 50c9f2
    virtual ICompoundIterator *compounds() const = 0;
Packit Service 50c9f2
Packit Service 50c9f2
    /*! Returns a compound given its unique \a id. If you have a
Packit Service 50c9f2
     *  compound id this function is much more efficient than iterating
Packit Service 50c9f2
     *  over the compound list. Returns 0 if the id is not valid.
Packit Service 50c9f2
     */
Packit Service 50c9f2
    virtual ICompound *compoundById(const char * id) const = 0;
Packit Service 50c9f2
Packit Service 50c9f2
    /*! Returns a compound given its name (including the scope). 
Packit Service 50c9f2
     *  Returns 0 if the name is not found in the project.
Packit Service 50c9f2
     */
Packit Service 50c9f2
    virtual ICompound *compoundByName(const char * name) const = 0;
Packit Service 50c9f2
Packit Service 50c9f2
    /*! Returns an interface to a compound containing a member given it the
Packit Service 50c9f2
     *  member's id. Given the ICompound interface one can use the same id
Packit Service 50c9f2
     *  to obtain the IMember interface.
Packit Service 50c9f2
     *  @param id The member id.
Packit Service 50c9f2
     */
Packit Service 50c9f2
    virtual ICompound *memberById(const char * id) const = 0;
Packit Service 50c9f2
Packit Service 50c9f2
    /*! Returns a list of all compounds containing at least one members 
Packit Service 50c9f2
     *  with a certain name. Each compound can be asked to return the
Packit Service 50c9f2
     *  list of members with that name.
Packit Service 50c9f2
     *  @param name The name of the member.
Packit Service 50c9f2
     */
Packit Service 50c9f2
    virtual ICompoundIterator *memberByName(const char * name) const = 0;
Packit Service 50c9f2
Packit Service 50c9f2
    /*! Releases the memory for the object hierarchy obtained by 
Packit Service 50c9f2
     *  createdObjecModelFromXML(). First release all iterators before calling
Packit Service 50c9f2
     *  this function.
Packit Service 50c9f2
     */
Packit Service 50c9f2
    virtual void release() = 0;
Packit Service 50c9f2
Packit Service 50c9f2
    /*! Sets the debug level.
Packit Service 50c9f2
     *  - 0 all debugging messages are disabled (the default).
Packit Service 50c9f2
     *  - 1 display important messages only
Packit Service 50c9f2
     *  - 2 display any messages.
Packit Service 50c9f2
     */
Packit Service 50c9f2
    virtual void setDebugLevel(int level) = 0;
Packit Service 50c9f2
Packit Service 50c9f2
    /*! Reads an XML directory produced by doxygen and builds up a data 
Packit Service 50c9f2
     *  structure representing the contents of the XML files in the directory. 
Packit Service 50c9f2
     */
Packit Service 50c9f2
    virtual bool readXMLDir(const char *xmlDirName) = 0;
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
/*! Factory method that creates an empty object model for a doxygen generated XML file.
Packit Service 50c9f2
 *  Use the readXMLDir() method to build the model from an XML output 
Packit Service 50c9f2
 *  directory containing doxygen output.
Packit Service 50c9f2
 */
Packit Service 50c9f2
IDoxygen *createObjectModel();
Packit Service 50c9f2
Packit Service 50c9f2
#endif