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