eRPC Generator (erpcgen)  Rev. 1.11.0
NXP Semiconductors
StructType.hpp
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.hpp"
14 #include "StructMember.hpp"
15 #include "SymbolScope.hpp"
16 
17 #include <string>
18 #include <vector>
19 
21 // Classes
23 
24 namespace erpcgen {
25 
29 class StructType : public DataType
30 {
31 public:
32  typedef std::vector<StructMember *> member_vector_t;
41  explicit StructType(const std::string &name)
42  : DataType(name, kStructType)
43  {
44  }
45 
53  explicit StructType(const Token &tok)
54  : DataType(tok, kStructType)
55  {
56  }
57 
66  void addMember(StructMember *newMember);
67 
73  SymbolScope &getScope() { return m_scope; }
74 
80  member_vector_t &getMembers() { return m_members; }
81 
96  virtual std::string getDescription() const override;
97 
103  bool containListMember();
104 
110  bool containStringMember();
111 
117  bool containByrefMember();
118 
119 protected:
121  member_vector_t m_members;
122 };
123 
124 } // namespace erpcgen
125 
126 #endif // _EMBEDDED_RPC__STRUCTTYPE_H_
Member of a struct.
Definition: StructMember.hpp:38
void addMember(StructMember *newMember)
This function will add struct member to the struct.
Definition: Type.cpp:317
StructType(const std::string &name)
Constructor.
Definition: StructType.hpp:41
Structure data type.
Definition: StructType.hpp:29
StructType(const Token &tok)
Constructor.
Definition: StructType.hpp:53
bool containByrefMember()
This function return true, when has member, which contains flag byref.
Definition: Type.cpp:305
SymbolScope & getScope()
This function returns symbol scope.
Definition: StructType.hpp:73
virtual std::string getDescription() const override
This function returns description about the struct.
Definition: Type.cpp:325
A scoped namespace containing symbols.
Definition: SymbolScope.hpp:28
Base class for data types.
Definition: DataType.hpp:26
Encapsulates all information about a token.
Definition: Token.hpp:60
member_vector_t m_members
Definition: StructType.hpp:121
std::vector< StructMember * > member_vector_t
Definition: StructType.hpp:32
SymbolScope m_scope
Definition: StructType.hpp:120
bool containStringMember()
This function return true, when has member, which contains string type.
Definition: Type.cpp:293
bool containListMember()
This function return true, when has member, which contains list type.
Definition: Type.cpp:281
member_vector_t & getMembers()
This function returns struct members vector.
Definition: StructType.hpp:80
Definition: AstNode.hpp:26