summaryrefslogtreecommitdiff
path: root/src/namespacedef.h
diff options
context:
space:
mode:
authorAnas Nashif <anas.nashif@intel.com>2012-11-08 06:36:54 -0800
committerAnas Nashif <anas.nashif@intel.com>2012-11-08 06:36:54 -0800
commitcccf3a7c7888ce7bd7a8f8d48a34c5474ad9feeb (patch)
tree7f31b77ace4359e85dc3d3f66c853858c0bca7a4 /src/namespacedef.h
downloaddoxygen-cccf3a7c7888ce7bd7a8f8d48a34c5474ad9feeb.tar.gz
doxygen-cccf3a7c7888ce7bd7a8f8d48a34c5474ad9feeb.tar.bz2
doxygen-cccf3a7c7888ce7bd7a8f8d48a34c5474ad9feeb.zip
Imported Upstream version 1.8.2upstream/1.8.2
Diffstat (limited to 'src/namespacedef.h')
-rw-r--r--src/namespacedef.h174
1 files changed, 174 insertions, 0 deletions
diff --git a/src/namespacedef.h b/src/namespacedef.h
new file mode 100644
index 0000000..fab058e
--- /dev/null
+++ b/src/namespacedef.h
@@ -0,0 +1,174 @@
+/******************************************************************************
+ *
+ * $Id: namespacedef.h,v 1.18 2001/03/19 19:27:41 root Exp $
+ *
+ * Copyright (C) 1997-2012 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.
+ *
+ * Documents produced by Doxygen are derivative works derived from the
+ * input used in their production; they are not affected by this license.
+ *
+ */
+
+#ifndef NAMESPACEDEF_H
+#define NAMESPACEDEF_H
+
+#include "qtbc.h"
+#include <qstrlist.h>
+#include <qdict.h>
+#include "sortdict.h"
+#include "definition.h"
+#include "memberlist.h"
+
+class ClassDef;
+class ClassList;
+class OutputList;
+class ClassSDict;
+class MemberDef;
+class NamespaceList;
+class MemberGroupSDict;
+class NamespaceSDict;
+
+/** A model of a namespace symbol. */
+class NamespaceDef : public Definition
+{
+ public:
+ NamespaceDef(const char *defFileName,int defLine,
+ const char *name,const char *ref=0,
+ const char *refFile=0);
+ ~NamespaceDef();
+ DefType definitionType() const { return TypeNamespace; }
+ QCString getOutputFileBase() const;
+ QCString anchor() const { return QCString(); }
+ void insertUsedFile(const char *fname);
+
+ void writeDocumentation(OutputList &ol);
+ void writeMemberPages(OutputList &ol);
+ void writeQuickMemberLinks(OutputList &ol,MemberDef *currentMd) const;
+
+ void insertClass(ClassDef *cd);
+ void insertNamespace(NamespaceDef *nd);
+ void insertMember(MemberDef *md);
+
+ void computeAnchors();
+ int countMembers();
+ void addUsingDirective(NamespaceDef *nd);
+ NamespaceSDict *getUsedNamespaces() const;
+ void addUsingDeclaration(Definition *def);
+ SDict<Definition> *getUsedClasses() const { return usingDeclList; }
+ void combineUsingRelations();
+ QCString displayName(bool=TRUE) const;
+ QCString localName() const;
+
+ bool isLinkableInProject() const;
+ bool isLinkable() const;
+ void addMembersToMemberGroup();
+ void distributeMemberGroupDocumentation();
+ void findSectionsInDocumentation();
+ void sortMemberLists();
+
+ virtual Definition *findInnerCompound(const char *name);
+ void addInnerCompound(Definition *d);
+ void addListReferences();
+
+ MemberList *getMemberList(MemberList::ListType lt) const;
+ const QList<MemberList> &getMemberLists() const { return m_memberLists; }
+ MemberDef *getMemberByName(const QCString &) const;
+
+ /*! Returns the user defined member groups */
+ MemberGroupSDict *getMemberGroupSDict() const { return memberGroupSDict; }
+
+ /*! Returns the classes contained in this namespace */
+ ClassSDict *getClassSDict() const { return classSDict; }
+
+ /*! Returns the namespaces contained in this namespace */
+ NamespaceSDict *getNamespaceSDict() const { return namespaceSDict; }
+
+ bool visited;
+
+ private:
+ MemberList *createMemberList(MemberList::ListType lt);
+ void addMemberToList(MemberList::ListType lt,MemberDef *md);
+ void writeMemberDeclarations(OutputList &ol,MemberList::ListType lt,const QCString &title);
+ void writeMemberDocumentation(OutputList &ol,MemberList::ListType lt,const QCString &title);
+ void writeDetailedDescription(OutputList &ol,const QCString &title);
+ void writeBriefDescription(OutputList &ol);
+ void startMemberDeclarations(OutputList &ol);
+ void endMemberDeclarations(OutputList &ol);
+ void writeClassDeclarations(OutputList &ol,const QCString &title);
+ void writeInlineClasses(OutputList &ol);
+ void writeNamespaceDeclarations(OutputList &ol,const QCString &title);
+ void writeMemberGroups(OutputList &ol);
+ void writeAuthorSection(OutputList &ol);
+ void startMemberDocumentation(OutputList &ol);
+ void endMemberDocumentation(OutputList &ol);
+ void writeSummaryLinks(OutputList &ol);
+
+ QCString fileName;
+ QStrList files;
+
+ NamespaceSDict *usingDirList;
+ SDict<Definition> *usingDeclList;
+ SDict<Definition> *m_innerCompounds;
+
+ MemberSDict *m_allMembersDict;
+ QList<MemberList> m_memberLists;
+ MemberGroupSDict *memberGroupSDict;
+ ClassSDict *classSDict;
+ NamespaceSDict *namespaceSDict;
+ bool m_subGrouping;
+};
+
+/** A list of NamespaceDef objects. */
+class NamespaceList : public QList<NamespaceDef>
+{
+ public:
+ ~NamespaceList() {}
+ int compareItems(GCI item1,GCI item2)
+ {
+ return stricmp(((NamespaceDef *)item1)->name(),
+ ((NamespaceDef *)item2)->name()
+ );
+ }
+};
+
+/** An iterator for NamespaceDef objects in a NamespaceList. */
+class NamespaceListIterator : public QListIterator<NamespaceDef>
+{
+ public:
+ NamespaceListIterator(const NamespaceList &l) :
+ QListIterator<NamespaceDef>(l) {}
+};
+
+/** An unsorted dictionary of NamespaceDef objects. */
+class NamespaceDict : public QDict<NamespaceDef>
+{
+ public:
+ NamespaceDict(int size) : QDict<NamespaceDef>(size) {}
+ ~NamespaceDict() {}
+};
+
+/** A sorted dictionary of NamespaceDef objects. */
+class NamespaceSDict : public SDict<NamespaceDef>
+{
+ public:
+ NamespaceSDict(int size=17) : SDict<NamespaceDef>(size) {}
+ ~NamespaceSDict() {}
+ int compareItems(GCI item1,GCI item2)
+ {
+ return stricmp(((NamespaceDef *)item1)->name(),
+ ((NamespaceDef *)item2)->name()
+ );
+ }
+ void writeDeclaration(OutputList &ol,const char *title,bool localName=FALSE);
+ bool declVisible() const;
+};
+
+
+
+#endif