My Project
Main Page
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
arguments.h
Go to the documentation of this file.
1
/******************************************************************************
2
*
3
* Copyright (C) 1997-2015 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 ARGUMENTS_H
17
#define ARGUMENTS_H
18
19
#include <qlist.h>
20
#include <qcstring.h>
21
22
class
StorageIntf
;
23
28
struct
Argument
29
{
31
Argument
() {}
33
Argument
(
const
Argument
&a)
34
{
35
attrib
=a.
attrib
;
36
type
=a.
type
;
37
name
=a.
name
;
38
array
=a.
array
;
39
defval
=a.
defval
;
40
docs
=a.
docs
;
41
typeConstraint
=a.
typeConstraint
;
42
}
44
Argument
&
operator=
(
const
Argument
&a)
45
{
46
if
(
this
!=&a)
47
{
48
attrib
=a.
attrib
;
49
type
=a.
type
;
50
name
=a.
name
;
51
array
=a.
array
;
52
defval
=a.
defval
;
53
docs
=a.
docs
;
54
typeConstraint
=a.
typeConstraint
;
55
}
56
return
*
this
;
57
}
61
bool
hasDocumentation
()
const
62
{
63
return
!
name
.isEmpty() && !
docs
.isEmpty();
64
}
65
66
QCString
attrib
;
67
QCString
type
;
68
QCString
canType
;
69
QCString
name
;
70
QCString
array
;
71
QCString
defval
;
72
QCString
docs
;
73
QCString
typeConstraint
;
74
};
75
82
class
ArgumentList
:
public
QList<Argument>
83
{
84
public
:
86
ArgumentList
() : QList<
Argument
>(),
87
constSpecifier
(FALSE),
88
volatileSpecifier
(FALSE),
89
pureSpecifier
(FALSE),
90
isDeleted
(FALSE)
91
{ setAutoDelete(TRUE); }
93
~ArgumentList
() {}
95
ArgumentList
*
deepCopy
()
const
;
97
bool
hasDocumentation
()
const
;
99
bool
constSpecifier
;
101
bool
volatileSpecifier
;
103
bool
pureSpecifier
;
105
QCString
trailingReturnType
;
107
bool
isDeleted
;
108
109
static
ArgumentList
*
unmarshal
(
StorageIntf
*s);
110
static
void
marshal
(
StorageIntf
*s,
ArgumentList
*argList);
111
};
112
113
typedef
QListIterator<Argument>
ArgumentListIterator
;
114
115
#endif