Doxygen
Loading...
Searching...
No Matches
conceptdef.h
Go to the documentation of this file.
1/******************************************************************************
2 *
3 * Copyright (C) 1997-2021 by Dimitri van Heesch.
4 *
5 * Permission to use, copy, modify, and distribute this software and its
6 * documentation under the terms of the GNU General Public License is hereby
7 * granted. No representations are made about the suitability of this software
8 * for any purpose. It is provided "as is" without express or implied warranty.
9 * See the GNU General Public License for more details.
10 *
11 * Documents produced by Doxygen are derivative works derived from the
12 * input used in their production; they are not affected by this license.
13 *
14 */
15
16#ifndef CONCEPTDEF_H
17#define CONCEPTDEF_H
18
19#include <memory>
20
21#include "definition.h"
22#include "filedef.h"
23
24class ModuleDef;
25
26class ConceptDef : public Definition
27{
28 public:
30
31 virtual bool hasDetailedDescription() const = 0;
32 virtual const IncludeInfo *includeInfo() const = 0;
34 virtual QCString initializer() const = 0;
35 virtual void writeDeclarationLink(OutputList &ol,bool &found,
36 const QCString &header,bool localNames) const = 0;
37 virtual const NamespaceDef *getNamespaceDef() const = 0;
38 virtual const FileDef *getFileDef() const = 0;
39 virtual const ModuleDef *getModuleDef() const = 0;
40 virtual QCString title() const = 0;
41 virtual int groupId() const = 0;
42};
43
45{
46 public:
48
49 virtual void setIncludeFile(FileDef *fd,const QCString &incName,bool local,bool force) = 0;
50 virtual void setTemplateArguments(const ArgumentList &al) = 0;
51 virtual void setNamespace(NamespaceDef *nd) = 0;
52 virtual void setFileDef(FileDef *fd) = 0;
53 virtual void writeTagFile(TextStream &) = 0;
54 virtual void writeDocumentation(OutputList &ol) = 0;
55 virtual void setInitializer(const QCString &init) = 0;
56 virtual void findSectionsInDocumentation() = 0;
57 virtual void setGroupId(int id) = 0;
58 virtual void setModuleDef(ModuleDef *mod) = 0;
59};
60
61std::unique_ptr<ConceptDef> createConceptDef(
62 const QCString &fileName,int startLine,int startColumn,const QCString &name,
63 const QCString &tagRef=QCString(),const QCString &tagFile=QCString());
64
65std::unique_ptr<ConceptDef> createConceptDefAlias(const Definition *newScope,const ConceptDef *cd);
66
67// ---- Map
68
70{
71};
72
73class ConceptLinkedRefMap : public LinkedRefMap<ConceptDef>
74{
75 public:
76 bool declVisible() const;
77 void writeDeclaration(OutputList &ol,const QCString &header,bool localNames) const;
78};
79
80// ---- Cast functions
81
84const ConceptDef *toConceptDef(const Definition *d);
86
87// --- Helpers
88
89ConceptDef *getConcept(const QCString &key);
91{
93}
94ConceptDef *getResolvedConcept(const Definition *scope,const QCString &name);
95
96
97#endif
This class represents an function or template argument list.
Definition arguments.h:60
virtual QCString initializer() const =0
virtual ArgumentList getTemplateParameterList() const =0
virtual const IncludeInfo * includeInfo() const =0
virtual void writeDeclarationLink(OutputList &ol, bool &found, const QCString &header, bool localNames) const =0
virtual const NamespaceDef * getNamespaceDef() const =0
virtual const ModuleDef * getModuleDef() const =0
virtual QCString title() const =0
virtual bool hasDetailedDescription() const =0
virtual int groupId() const =0
virtual const FileDef * getFileDef() const =0
virtual void setFileDef(FileDef *fd)=0
virtual void writeTagFile(TextStream &)=0
virtual void setInitializer(const QCString &init)=0
virtual void setIncludeFile(FileDef *fd, const QCString &incName, bool local, bool force)=0
virtual void setModuleDef(ModuleDef *mod)=0
virtual void writeDocumentation(OutputList &ol)=0
virtual void setGroupId(int id)=0
virtual void findSectionsInDocumentation()=0
virtual void setTemplateArguments(const ArgumentList &al)=0
virtual void setNamespace(NamespaceDef *nd)=0
void writeDeclaration(OutputList &ol, const QCString &header, bool localNames) const
bool declVisible() const
The common base class of all entity definitions found in the sources.
Definition definition.h:76
virtual const QCString & name() const =0
A model of a file symbol.
Definition filedef.h:99
Container class representing a vector of objects with keys.
Definition linkedmap.h:36
Container class representing a vector of objects with keys.
Definition linkedmap.h:232
An abstract interface of a namespace symbol.
Class representing a list of output generators that are written to in parallel.
Definition outputlist.h:314
This is an alternative implementation of QCString.
Definition qcstring.h:101
Text streaming class that buffers data.
Definition textstream.h:36
ConceptDefMutable * toConceptDefMutable(Definition *d)
ConceptDef * getResolvedConcept(const Definition *scope, const QCString &name)
ConceptDef * getConcept(const QCString &key)
std::unique_ptr< ConceptDef > createConceptDef(const QCString &fileName, int startLine, int startColumn, const QCString &name, const QCString &tagRef=QCString(), const QCString &tagFile=QCString())
ConceptDef * toConceptDef(Definition *d)
ConceptDefMutable * getConceptMutable(const QCString &key)
Definition conceptdef.h:90
std::unique_ptr< ConceptDef > createConceptDefAlias(const Definition *newScope, const ConceptDef *cd)
#define ABSTRACT_BASE_CLASS(cls)
Macro to implement rule of 5 for an abstract base class.
Definition construct.h:20
Class representing the data associated with a #include statement.
Definition filedef.h:75
bool found
Definition util.cpp:984