eRPC Generator (erpcgen)  Rev. 1.7.2
NXP Semiconductors
StructType.h
1 /*
2  * Copyright (c) 2014, Freescale Semiconductor, Inc.
3  * Copyright 2016 NXP
4  * All rights reserved.
5  *
6  *
7  * SPDX-License-Identifier: BSD-3-Clause
8  */
9 
10 #ifndef _EMBEDDED_RPC__STRUCTTYPE_H_
11 #define _EMBEDDED_RPC__STRUCTTYPE_H_
12 
13 #include "DataType.h"
14 #include "StructMember.h"
15 #include "SymbolScope.h"
16 #include <string>
17 #include <vector>
18 
20 // Classes
22 
23 namespace erpcgen {
24 
28 class StructType : public DataType
29 {
30 public:
31  typedef std::vector<StructMember *> member_vector_t;
40  StructType(const std::string &name)
41  : DataType(name, kStructType, kStructTypeSymbol)
42  {
43  }
44 
52  StructType(const Token &tok)
53  : DataType(tok, kStructType, kStructTypeSymbol)
54  {
55  }
56 
65  void addMember(StructMember *newMember);
66 
72  SymbolScope &getScope() { return m_scope; }
73 
79  member_vector_t &getMembers() { return m_members; }
80 
86  virtual bool isStruct() const { return true; }
87 
102  virtual std::string getDescription() const;
103 
109  bool containListMember();
110 
116  bool containStringMember();
117 
123  bool containByrefMember();
124 
125 protected:
127  member_vector_t m_members;
128 };
129 
130 } // namespace erpcgen
131 
132 #endif // _EMBEDDED_RPC__STRUCTTYPE_H_
Member of a struct.
Definition: StructMember.h:37
void addMember(StructMember *newMember)
This function will add struct member to the struct.
Definition: Type.cpp:315
StructType(const std::string &name)
Constructor.
Definition: StructType.h:40
virtual std::string getDescription() const
This function returns description about the struct.
Definition: Type.cpp:323
Structure data type.
Definition: StructType.h:28
StructType(const Token &tok)
Constructor.
Definition: StructType.h:52
bool containByrefMember()
This function return true, when has member, which contains flag byref.
Definition: Type.cpp:303
SymbolScope & getScope()
This function returns symbol scope.
Definition: StructType.h:72
virtual bool isStruct() const
This function return "true" value for identify struct type.
Definition: StructType.h:86
A scoped namespace containing symbols.
Definition: SymbolScope.h:27
Base class for data types.
Definition: DataType.h:25
Encapsulates all information about a token.
Definition: Token.h:60
member_vector_t m_members
Definition: StructType.h:127
std::vector< StructMember * > member_vector_t
Definition: StructType.h:31
SymbolScope m_scope
Definition: StructType.h:126
bool containStringMember()
This function return true, when has member, which contains string type.
Definition: Type.cpp:291
bool containListMember()
This function return true, when has member, which contains list type.
Definition: Type.cpp:279
member_vector_t & getMembers()
This function returns struct members vector.
Definition: StructType.h:79
Definition: AstNode.h:25