|
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 _MEMBERHANDLER_H
|
|
Packit Service |
50c9f2 |
#define _MEMBERHANDLER_H
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
#include <qstring.h>
|
|
Packit Service |
50c9f2 |
#include <qlist.h>
|
|
Packit Service |
50c9f2 |
#include <qxml.h>
|
|
Packit Service |
50c9f2 |
#include <doxmlintf.h>
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
#include "basehandler.h"
|
|
Packit Service |
50c9f2 |
#include "baseiterator.h"
|
|
Packit Service |
50c9f2 |
#include "stringimpl.h"
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
class MainHandler;
|
|
Packit Service |
50c9f2 |
class CompoundHandler;
|
|
Packit Service |
50c9f2 |
class SectionHandler;
|
|
Packit Service |
50c9f2 |
class ParamHandler;
|
|
Packit Service |
50c9f2 |
class LinkedTextImpl;
|
|
Packit Service |
50c9f2 |
class LinkedTextHandler;
|
|
Packit Service |
50c9f2 |
class DocHandler;
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
class MemberReference : public IMemberReference
|
|
Packit Service |
50c9f2 |
{
|
|
Packit Service |
50c9f2 |
public:
|
|
Packit Service |
50c9f2 |
virtual ~MemberReference() {}
|
|
Packit Service |
50c9f2 |
virtual IMember *member() const;
|
|
Packit Service |
50c9f2 |
virtual const IString *name() const { return &m_name; }
|
|
Packit Service |
50c9f2 |
virtual const IString *scope() const { return &m_scope; }
|
|
Packit Service |
50c9f2 |
virtual const IString *protection() const { return &m_protection; }
|
|
Packit Service |
50c9f2 |
virtual const IString *virtualness() const { return &m_virtualness; }
|
|
Packit Service |
50c9f2 |
virtual const IString *ambiguityScope() const { return &m_ambiguityScope; }
|
|
Packit Service |
50c9f2 |
void initialize(MainHandler *m);
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
QString m_memId;
|
|
Packit Service |
50c9f2 |
StringImpl m_name;
|
|
Packit Service |
50c9f2 |
StringImpl m_scope;
|
|
Packit Service |
50c9f2 |
StringImpl m_virtualness;
|
|
Packit Service |
50c9f2 |
StringImpl m_protection;
|
|
Packit Service |
50c9f2 |
StringImpl m_ambiguityScope;
|
|
Packit Service |
50c9f2 |
MainHandler *m_mainHandler;
|
|
Packit Service |
50c9f2 |
};
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
class MemberReferenceIterator : public BaseIterator<IMemberReferenceIterator,IMemberReference,MemberReference>
|
|
Packit Service |
50c9f2 |
{
|
|
Packit Service |
50c9f2 |
public:
|
|
Packit Service |
50c9f2 |
MemberReferenceIterator(const QList<MemberReference> &list) :
|
|
Packit Service |
50c9f2 |
BaseIterator<IMemberReferenceIterator,IMemberReference,MemberReference>(list) {}
|
|
Packit Service |
50c9f2 |
};
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
class MemberHandler : public IDefine,
|
|
Packit Service |
50c9f2 |
public IProperty,
|
|
Packit Service |
50c9f2 |
public IVariable,
|
|
Packit Service |
50c9f2 |
public ITypedef,
|
|
Packit Service |
50c9f2 |
public IFunction,
|
|
Packit Service |
50c9f2 |
public ISignal,
|
|
Packit Service |
50c9f2 |
public IPrototype,
|
|
Packit Service |
50c9f2 |
public IFriend,
|
|
Packit Service |
50c9f2 |
public IDCOP,
|
|
Packit Service |
50c9f2 |
public ISlot,
|
|
Packit Service |
50c9f2 |
public IEnum,
|
|
Packit Service |
50c9f2 |
public IEnumValue,
|
|
Packit Service |
50c9f2 |
public BaseHandler<MemberHandler>
|
|
Packit Service |
50c9f2 |
{
|
|
Packit Service |
50c9f2 |
public:
|
|
Packit Service |
50c9f2 |
virtual void startMember(const QXmlAttributes& attrib);
|
|
Packit Service |
50c9f2 |
virtual void endMember();
|
|
Packit Service |
50c9f2 |
virtual void startParam(const QXmlAttributes& attrib);
|
|
Packit Service |
50c9f2 |
virtual void startType(const QXmlAttributes& attrib);
|
|
Packit Service |
50c9f2 |
virtual void startName(const QXmlAttributes& attrib);
|
|
Packit Service |
50c9f2 |
virtual void endName();
|
|
Packit Service |
50c9f2 |
virtual void startRead(const QXmlAttributes& attrib);
|
|
Packit Service |
50c9f2 |
virtual void endRead();
|
|
Packit Service |
50c9f2 |
virtual void startWrite(const QXmlAttributes& attrib);
|
|
Packit Service |
50c9f2 |
virtual void endWrite();
|
|
Packit Service |
50c9f2 |
virtual void startDefinition(const QXmlAttributes& attrib);
|
|
Packit Service |
50c9f2 |
virtual void endDefinition();
|
|
Packit Service |
50c9f2 |
virtual void startArgsString(const QXmlAttributes& attrib);
|
|
Packit Service |
50c9f2 |
virtual void endArgsString();
|
|
Packit Service |
50c9f2 |
virtual void startBriefDesc(const QXmlAttributes& attrib);
|
|
Packit Service |
50c9f2 |
virtual void startDetailedDesc(const QXmlAttributes& attrib);
|
|
Packit Service |
50c9f2 |
virtual void startInbodyDesc(const QXmlAttributes& attrib);
|
|
Packit Service |
50c9f2 |
virtual void startLocation(const QXmlAttributes& attrib);
|
|
Packit Service |
50c9f2 |
virtual void startReferences(const QXmlAttributes& attrib);
|
|
Packit Service |
50c9f2 |
virtual void endReferences();
|
|
Packit Service |
50c9f2 |
virtual void startReferencedBy(const QXmlAttributes& attrib);
|
|
Packit Service |
50c9f2 |
virtual void endReferencedBy();
|
|
Packit Service |
50c9f2 |
virtual void startReimplements(const QXmlAttributes& attrib);
|
|
Packit Service |
50c9f2 |
virtual void endReimplements();
|
|
Packit Service |
50c9f2 |
virtual void startReimplementedBy(const QXmlAttributes& attrib);
|
|
Packit Service |
50c9f2 |
virtual void endReimplementedBy();
|
|
Packit Service |
50c9f2 |
virtual void startInitializer(const QXmlAttributes& attrib);
|
|
Packit Service |
50c9f2 |
virtual void startException(const QXmlAttributes& attrib);
|
|
Packit Service |
50c9f2 |
virtual void startEnumValue(const QXmlAttributes& attrib);
|
|
Packit Service |
50c9f2 |
virtual void startEnumValue2(const QXmlAttributes& attrib);
|
|
Packit Service |
50c9f2 |
virtual void startTemplateParamList(const QXmlAttributes &attrib);
|
|
Packit Service |
50c9f2 |
virtual void endTemplateParamList();
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
MemberHandler(IBaseHandler *parent);
|
|
Packit Service |
50c9f2 |
virtual ~MemberHandler();
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
// IMember implementation
|
|
Packit Service |
50c9f2 |
virtual ICompound *compound() const;
|
|
Packit Service |
50c9f2 |
virtual ISection *section() const;
|
|
Packit Service |
50c9f2 |
virtual MemberKind kind() const
|
|
Packit Service |
50c9f2 |
{ return m_kind; }
|
|
Packit Service |
50c9f2 |
virtual const IString *kindString() const
|
|
Packit Service |
50c9f2 |
{ return &m_kindString; }
|
|
Packit Service |
50c9f2 |
virtual const IString *id() const
|
|
Packit Service |
50c9f2 |
{ return &m_id; }
|
|
Packit Service |
50c9f2 |
virtual const IString *protection() const
|
|
Packit Service |
50c9f2 |
{ return &m_protection; }
|
|
Packit Service |
50c9f2 |
virtual const IString *virtualness() const
|
|
Packit Service |
50c9f2 |
{ return &m_virtualness; }
|
|
Packit Service |
50c9f2 |
virtual const IString *name() const
|
|
Packit Service |
50c9f2 |
{ return &m_name; }
|
|
Packit Service |
50c9f2 |
virtual const IString *readAccessor() const
|
|
Packit Service |
50c9f2 |
{ return &m_read; }
|
|
Packit Service |
50c9f2 |
virtual const IString *writeAccessor() const
|
|
Packit Service |
50c9f2 |
{ return &m_write; }
|
|
Packit Service |
50c9f2 |
virtual const IString *definition() const
|
|
Packit Service |
50c9f2 |
{ return &m_definition; }
|
|
Packit Service |
50c9f2 |
virtual const IString *argsstring() const
|
|
Packit Service |
50c9f2 |
{ return &m_argsstring; }
|
|
Packit Service |
50c9f2 |
virtual bool isConst() const
|
|
Packit Service |
50c9f2 |
{ return m_isConst; }
|
|
Packit Service |
50c9f2 |
virtual bool isVolatile() const
|
|
Packit Service |
50c9f2 |
{ return m_isVolatile; }
|
|
Packit Service |
50c9f2 |
virtual bool isStatic() const
|
|
Packit Service |
50c9f2 |
{ return m_isStatic; }
|
|
Packit Service |
50c9f2 |
virtual bool isExplicit() const
|
|
Packit Service |
50c9f2 |
{ return m_isExplicit; }
|
|
Packit Service |
50c9f2 |
virtual bool isInline() const
|
|
Packit Service |
50c9f2 |
{ return m_isInline; }
|
|
Packit Service |
50c9f2 |
virtual bool isMutable() const
|
|
Packit Service |
50c9f2 |
{ return m_isMutable; }
|
|
Packit Service |
50c9f2 |
virtual bool isReadable() const
|
|
Packit Service |
50c9f2 |
{ return m_isReadable; }
|
|
Packit Service |
50c9f2 |
virtual bool isWritable() const
|
|
Packit Service |
50c9f2 |
{ return m_isWritable; }
|
|
Packit Service |
50c9f2 |
virtual ILinkedTextIterator *type() const;
|
|
Packit Service |
50c9f2 |
virtual const IString *typeString() const;
|
|
Packit Service |
50c9f2 |
virtual IParamIterator *parameters() const;
|
|
Packit Service |
50c9f2 |
virtual IParamIterator *templateParameters() const;
|
|
Packit Service |
50c9f2 |
virtual IMemberReferenceIterator *references() const;
|
|
Packit Service |
50c9f2 |
virtual IMemberReferenceIterator *referencedBy() const;
|
|
Packit Service |
50c9f2 |
virtual ILinkedTextIterator *initializer() const;
|
|
Packit Service |
50c9f2 |
virtual ILinkedTextIterator *exceptions() const;
|
|
Packit Service |
50c9f2 |
virtual const IString *bodyFile() const
|
|
Packit Service |
50c9f2 |
{ return &m_bodyFile; }
|
|
Packit Service |
50c9f2 |
virtual int bodyStart() const
|
|
Packit Service |
50c9f2 |
{ return m_bodyStart; }
|
|
Packit Service |
50c9f2 |
virtual int bodyEnd() const
|
|
Packit Service |
50c9f2 |
{ return m_bodyEnd; }
|
|
Packit Service |
50c9f2 |
virtual const IString *definitionFile() const
|
|
Packit Service |
50c9f2 |
{ return &m_defFile; }
|
|
Packit Service |
50c9f2 |
virtual int definitionLine() const
|
|
Packit Service |
50c9f2 |
{ return m_defLine; }
|
|
Packit Service |
50c9f2 |
virtual IMemberReference *reimplements() const
|
|
Packit Service |
50c9f2 |
{ return m_reimplements; }
|
|
Packit Service |
50c9f2 |
virtual IMemberReferenceIterator *reimplementedBy() const;
|
|
Packit Service |
50c9f2 |
virtual IDocRoot *briefDescription() const;
|
|
Packit Service |
50c9f2 |
virtual IDocRoot *detailedDescription() const;
|
|
Packit Service |
50c9f2 |
virtual IDocRoot *inbodyDescription() const;
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
// IEnum
|
|
Packit Service |
50c9f2 |
virtual IMemberIterator *enumValues() const;
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
void initialize(MainHandler *m);
|
|
Packit Service |
50c9f2 |
void setCompoundHandler(CompoundHandler *c);
|
|
Packit Service |
50c9f2 |
void setSectionHandler(SectionHandler *s);
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
private:
|
|
Packit Service |
50c9f2 |
// XML elements:
|
|
Packit Service |
50c9f2 |
// -----------------
|
|
Packit Service |
50c9f2 |
QList<ParamHandler> m_templateParams; // templateparamlist
|
|
Packit Service |
50c9f2 |
QList<LinkedTextImpl> m_type; // type
|
|
Packit Service |
50c9f2 |
StringImpl m_definition; // definition
|
|
Packit Service |
50c9f2 |
StringImpl m_argsstring; // argsstring
|
|
Packit Service |
50c9f2 |
StringImpl m_name; // name
|
|
Packit Service |
50c9f2 |
StringImpl m_read; // read
|
|
Packit Service |
50c9f2 |
StringImpl m_write; // write
|
|
Packit Service |
50c9f2 |
MemberReference *m_reimplements; // reimplements
|
|
Packit Service |
50c9f2 |
QList<MemberReference> m_reimplementedBy; // reimplementedby
|
|
Packit Service |
50c9f2 |
QList<ParamHandler> m_params; // param
|
|
Packit Service |
50c9f2 |
QList<MemberHandler> m_enumValues; // enumvalue
|
|
Packit Service |
50c9f2 |
QList<LinkedTextImpl> m_initializer; // initializer
|
|
Packit Service |
50c9f2 |
QList<LinkedTextImpl> m_exception; // exceptions
|
|
Packit Service |
50c9f2 |
DocHandler *m_brief; // briefdescription
|
|
Packit Service |
50c9f2 |
DocHandler *m_detailed; // detaileddescription
|
|
Packit Service |
50c9f2 |
DocHandler *m_inbody; // inbodydescription
|
|
Packit Service |
50c9f2 |
// location
|
|
Packit Service |
50c9f2 |
StringImpl m_defFile; // - file
|
|
Packit Service |
50c9f2 |
int m_defLine; // - line
|
|
Packit Service |
50c9f2 |
StringImpl m_bodyFile; // - bodyfile
|
|
Packit Service |
50c9f2 |
int m_bodyStart; // - bodystart
|
|
Packit Service |
50c9f2 |
int m_bodyEnd; // - bodyend
|
|
Packit Service |
50c9f2 |
QList<MemberReference> m_references; // references
|
|
Packit Service |
50c9f2 |
QList<MemberReference> m_referencedBy; // referencedby
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
// XML attributes:
|
|
Packit Service |
50c9f2 |
// ---------------
|
|
Packit Service |
50c9f2 |
MemberKind m_kind; // kind
|
|
Packit Service |
50c9f2 |
StringImpl m_kindString; // kind as a string
|
|
Packit Service |
50c9f2 |
StringImpl m_id; // id
|
|
Packit Service |
50c9f2 |
StringImpl m_protection; // prot
|
|
Packit Service |
50c9f2 |
bool m_isStatic; // static
|
|
Packit Service |
50c9f2 |
bool m_isConst; // const
|
|
Packit Service |
50c9f2 |
bool m_isExplicit; // explicit
|
|
Packit Service |
50c9f2 |
bool m_isInline; // inline
|
|
Packit Service |
50c9f2 |
StringImpl m_virtualness; // virt
|
|
Packit Service |
50c9f2 |
bool m_isVolatile; // volatile
|
|
Packit Service |
50c9f2 |
bool m_isMutable; // mutable
|
|
Packit Service |
50c9f2 |
bool m_isReadable; // readable
|
|
Packit Service |
50c9f2 |
bool m_isWritable; // writable
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
CompoundHandler *m_compound;
|
|
Packit Service |
50c9f2 |
SectionHandler *m_section;
|
|
Packit Service |
50c9f2 |
StringImpl m_typeString;
|
|
Packit Service |
50c9f2 |
LinkedTextHandler *m_linkedTextHandler;
|
|
Packit Service |
50c9f2 |
bool m_insideTemplateParamList;
|
|
Packit Service |
50c9f2 |
bool m_hasTemplateParamList;
|
|
Packit Service |
50c9f2 |
IBaseHandler *m_parent;
|
|
Packit Service |
50c9f2 |
};
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
class MemberIterator : public BaseIteratorVia
|
|
Packit Service |
50c9f2 |
IMember,
|
|
Packit Service |
50c9f2 |
MemberHandler,
|
|
Packit Service |
50c9f2 |
IFunction>
|
|
Packit Service |
50c9f2 |
{
|
|
Packit Service |
50c9f2 |
public:
|
|
Packit Service |
50c9f2 |
MemberIterator(const QList<MemberHandler> &list) :
|
|
Packit Service |
50c9f2 |
BaseIteratorVia<IMemberIterator,IMember,MemberHandler,IFunction>(list) {}
|
|
Packit Service |
50c9f2 |
};
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
void memberhandler_init();
|
|
Packit Service |
50c9f2 |
void memberhandler_exit();
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
#endif
|