My Project
 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;
42  }
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;
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); }
95  ArgumentList *deepCopy() const;
97  bool hasDocumentation() const;
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