Doxygen
Loading...
Searching...
No Matches
requirement.h
Go to the documentation of this file.
1
/******************************************************************************
2
*
3
* Copyright (C) 1997-2026 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 REQUIREMENT_H
17
#define REQUIREMENT_H
18
19
#include <memory>
20
#include <vector>
21
22
#include "
construct.h
"
23
#include "
qcstring.h
"
24
25
class
Definition
;
26
class
MemberDef
;
27
class
Entry
;
28
class
OutputList
;
29
class
TextStream
;
30
class
PageDef
;
31
32
/// Types are references to a requirement
33
enum class
RequirementRefType
{
Satisfies
,
Verifies
};
34
35
/// Class to hold requirement reference information
36
class
RequirementRef
37
{
38
public
:
39
RequirementRef
(
RequirementRefType
type
,
const
QCString
&
reqId
,
const
QCString
&
title
,
const
QCString
&
file
,
int
line
)
40
:
m_type
(
type
),
m_reqId
(
reqId
),
m_title
(
title
),
m_file
(
file
),
m_line
(
line
) {}
41
RequirementRefType
type
()
const
{
return
m_type
; }
42
QCString
reqId
()
const
{
return
m_reqId
; }
43
QCString
title
()
const
{
return
m_title
; }
44
QCString
file
()
const
{
return
m_file
; }
45
int
line
()
const
{
return
m_line
; }
46
47
private
:
48
RequirementRefType
m_type
;
49
QCString
m_reqId
;
50
QCString
m_title
;
51
QCString
m_file
;
52
int
m_line
;
53
};
54
55
/// List of requirement references
56
using
RequirementRefs
= std::vector<RequirementRef>;
57
58
class
RequirementIntf
59
{
60
public
:
61
ABSTRACT_BASE_CLASS
(
RequirementIntf
)
62
virtual
QCString
id
() const = 0;
63
virtual
QCString
file
() const = 0;
64
virtual
int
line
() const = 0;
65
virtual
QCString
title
() const = 0;
66
virtual
QCString
doc
() const = 0;
67
virtual
QCString
getTagFile
() const = 0;
68
virtual
QCString
getExtPage
() const = 0;
69
virtual
QCString
getOutputFileBase
() const = 0;
70
};
71
72
using
RequirementIntfList
= std::vector<const
RequirementIntf
*>;
73
74
class
RequirementManager
75
{
76
public
:
77
static
RequirementManager
&
instance
();
78
void
addRequirement
(
Entry
*e);
79
void
generatePage
();
80
void
writeTagFile
(
TextStream
&tagFile);
81
void
addRequirementRefsForSymbol
(
const
Definition
*symbol);
82
const
RequirementIntf
*
find
(
const
QCString
&reqId)
const
;
83
void
writeRef
(
OutputList
&ol,
const
RequirementRef
&ref);
84
RequirementIntfList
requirements
()
const
;
85
const
PageDef
*
requirementsPage
()
const
;
86
private
:
87
RequirementManager
();
88
class
Private
;
89
std::unique_ptr<Private>
p
;
90
};
91
92
#endif
// REQUIREMENT_H
Definition
The common base class of all entity definitions found in the sources.
Definition
definition.h:77
Entry
Represents an unstructured piece of information, about an entity found in the sources.
Definition
entry.h:117
MemberDef
A model of a class/file/namespace member symbol.
Definition
memberdef.h:48
OutputList
Class representing a list of output generators that are written to in parallel.
Definition
outputlist.h:315
PageDef
A model of a page symbol.
Definition
pagedef.h:26
QCString
This is an alternative implementation of QCString.
Definition
qcstring.h:101
RequirementIntf
Definition
requirement.h:59
RequirementIntf::title
virtual QCString title() const =0
RequirementIntf::getTagFile
virtual QCString getTagFile() const =0
RequirementIntf::doc
virtual QCString doc() const =0
RequirementIntf::getOutputFileBase
virtual QCString getOutputFileBase() const =0
RequirementIntf::line
virtual int line() const =0
RequirementIntf::getExtPage
virtual QCString getExtPage() const =0
RequirementIntf::file
virtual QCString file() const =0
RequirementManager::Private
Definition
requirement.cpp:92
RequirementManager::instance
static RequirementManager & instance()
Definition
requirement.cpp:98
RequirementManager::p
std::unique_ptr< Private > p
Definition
requirement.h:89
RequirementManager::generatePage
void generatePage()
Definition
requirement.cpp:157
RequirementManager::find
const RequirementIntf * find(const QCString &reqId) const
Definition
requirement.cpp:301
RequirementManager::writeRef
void writeRef(OutputList &ol, const RequirementRef &ref)
Definition
requirement.cpp:329
RequirementManager::addRequirement
void addRequirement(Entry *e)
Definition
requirement.cpp:120
RequirementManager::RequirementManager
RequirementManager()
Definition
requirement.cpp:104
RequirementManager::requirementsPage
const PageDef * requirementsPage() const
Definition
requirement.cpp:115
RequirementManager::addRequirementRefsForSymbol
void addRequirementRefsForSymbol(const Definition *symbol)
Definition
requirement.cpp:306
RequirementManager::requirements
RequirementIntfList requirements() const
Definition
requirement.cpp:147
RequirementRef
Class to hold requirement reference information.
Definition
requirement.h:37
RequirementRef::m_line
int m_line
Definition
requirement.h:52
RequirementRef::title
QCString title() const
Definition
requirement.h:43
RequirementRef::m_reqId
QCString m_reqId
Definition
requirement.h:49
RequirementRef::reqId
QCString reqId() const
Definition
requirement.h:42
RequirementRef::RequirementRef
RequirementRef(RequirementRefType type, const QCString &reqId, const QCString &title, const QCString &file, int line)
Definition
requirement.h:39
RequirementRef::m_file
QCString m_file
Definition
requirement.h:51
RequirementRef::m_type
RequirementRefType m_type
Definition
requirement.h:48
RequirementRef::type
RequirementRefType type() const
Definition
requirement.h:41
RequirementRef::file
QCString file() const
Definition
requirement.h:44
RequirementRef::line
int line() const
Definition
requirement.h:45
RequirementRef::m_title
QCString m_title
Definition
requirement.h:50
TextStream
Text streaming class that buffers data.
Definition
textstream.h:36
construct.h
ABSTRACT_BASE_CLASS
#define ABSTRACT_BASE_CLASS(cls)
Macro to implement rule of 5 for an abstract base class.
Definition
construct.h:20
writeTagFile
static void writeTagFile()
Definition
doxygen.cpp:12121
qcstring.h
RequirementRefType
RequirementRefType
Types are references to a requirement.
Definition
requirement.h:33
RequirementRefType::Verifies
@ Verifies
Definition
requirement.h:33
RequirementRefType::Satisfies
@ Satisfies
Definition
requirement.h:33
RequirementIntfList
std::vector< const RequirementIntf * > RequirementIntfList
Definition
requirement.h:72
RequirementRefs
std::vector< RequirementRef > RequirementRefs
List of requirement references.
Definition
requirement.h:56
src
requirement.h
Generated by
1.16.0