eRPC Generator (erpcgen)  Rev. 1.7.2
NXP Semiconductors
EnumType.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__ENUMTYPE_H_
11 #define _EMBEDDED_RPC__ENUMTYPE_H_
12 
13 #include "DataType.h"
14 #include "EnumMember.h"
15 #include <string>
16 #include <vector>
17 
19 // Classes
21 
22 namespace erpcgen {
23 
27 class EnumType : public DataType
28 {
29 public:
30  typedef std::vector<EnumMember *> member_vector_t;
39  EnumType(const Token &tok)
40  : DataType(tok, kEnumType, kEnumTypeSymbol)
41  {
42  }
43 
50  : DataType("", kEnumType, kEnumTypeSymbol)
51  {
52  }
53 
61  void addMember(EnumMember *newMember);
62 
68  member_vector_t &getMembers() { return m_members; }
69 
75  EnumMember *getMember(std::string name);
76 
82  virtual bool isEnum() const { return true; }
83 
89  uint32_t getNextValue() { return m_currentValue++; }
90 
96  void setCurrentValue(uint32_t value) { m_currentValue = value; }
97 
112  virtual std::string getDescription() const;
113 
114 protected:
115  member_vector_t m_members;
116  uint32_t m_currentValue = 0;
117 };
118 
119 } // namespace erpcgen
120 
121 #endif // _EMBEDDED_RPC__ENUMTYPE_H_
uint32_t getNextValue()
This function returns the next value to use for an enum member.
Definition: EnumType.h:89
std::vector< EnumMember * > member_vector_t
Definition: EnumType.h:30
member_vector_t m_members
Definition: EnumType.h:115
virtual bool isEnum() const
This function return "true" value for identify enum type.
Definition: EnumType.h:82
void addMember(EnumMember *newMember)
This function will add enum member to the enum.
Definition: Type.cpp:357
EnumType(const Token &tok)
Constructor.
Definition: EnumType.h:39
uint32_t m_currentValue
Definition: EnumType.h:116
virtual std::string getDescription() const
This function returns description about the enum.
Definition: Type.cpp:363
EnumType()
Constructor.
Definition: EnumType.h:49
Member of a enum.
Definition: EnumMember.h:25
Base class for data types.
Definition: DataType.h:25
Encapsulates all information about a token.
Definition: Token.h:60
Enumerate data type.
Definition: EnumType.h:27
member_vector_t & getMembers()
This function returns vector of enum members.
Definition: EnumType.h:68
void setCurrentValue(uint32_t value)
This function set current value.
Definition: EnumType.h:96
Definition: AstNode.h:25
EnumMember * getMember(std::string name)
This function returns enum member based on given name.
Definition: Type.cpp:345