eRPC Generator (erpcgen)  Rev. 1.11.0
NXP Semiconductors
EnumType.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__ENUMTYPE_H_
11 #define _EMBEDDED_RPC__ENUMTYPE_H_
12 
13 #include "DataType.hpp"
14 #include "EnumMember.hpp"
15 
16 #include <string>
17 #include <vector>
18 
20 // Classes
22 
23 namespace erpcgen {
24 
28 class EnumType : public DataType
29 {
30 public:
31  typedef std::vector<EnumMember *> member_vector_t;
40  explicit EnumType(const Token &tok)
41  : DataType(tok, kEnumType)
42  {
43  }
44 
51  : DataType("", kEnumType)
52  {
53  }
54 
62  void addMember(EnumMember *newMember);
63 
69  member_vector_t &getMembers() { return m_members; }
70 
76  EnumMember *getMember(const std::string &name);
77 
83  uint32_t getNextValue() { return m_currentValue++; }
84 
90  void setCurrentValue(uint32_t value) { m_currentValue = value; }
91 
106  virtual std::string getDescription() const override;
107 
108 protected:
109  member_vector_t m_members;
110  uint32_t m_currentValue = 0;
111 };
112 
113 } // namespace erpcgen
114 
115 #endif // _EMBEDDED_RPC__ENUMTYPE_H_
uint32_t getNextValue()
This function returns the next value to use for an enum member.
Definition: EnumType.hpp:83
EnumMember * getMember(const std::string &name)
This function returns enum member based on given name.
Definition: Type.cpp:347
std::vector< EnumMember * > member_vector_t
Definition: EnumType.hpp:31
member_vector_t m_members
Definition: EnumType.hpp:109
void addMember(EnumMember *newMember)
This function will add enum member to the enum.
Definition: Type.cpp:359
EnumType(const Token &tok)
Constructor.
Definition: EnumType.hpp:40
uint32_t m_currentValue
Definition: EnumType.hpp:110
EnumType()
Constructor.
Definition: EnumType.hpp:50
Member of a enum.
Definition: EnumMember.hpp:26
Base class for data types.
Definition: DataType.hpp:26
Encapsulates all information about a token.
Definition: Token.hpp:60
Enumerate data type.
Definition: EnumType.hpp:28
member_vector_t & getMembers()
This function returns vector of enum members.
Definition: EnumType.hpp:69
void setCurrentValue(uint32_t value)
This function set current value.
Definition: EnumType.hpp:90
Definition: AstNode.hpp:26
virtual std::string getDescription() const override
This function returns description about the enum.
Definition: Type.cpp:365