eRPC Generator (erpcgen)  Rev. 1.7.2
NXP Semiconductors
Group.h
1 /*
2  * Copyright 2017 NXP
3  * All rights reserved.
4  *
5  *
6  * SPDX-License-Identifier: BSD-3-Clause
7  */
8 
9 #ifndef _EMBEDDED_RPC__GROUP_H_
10 #define _EMBEDDED_RPC__GROUP_H_
11 
12 #include "Interface.h"
13 #include "cpptempl.h"
14 #include <set>
15 #include <string>
16 #include <vector>
17 
19 // Classes
21 
22 namespace erpcgen {
23 
27 class Group
28 {
29 public:
30  typedef std::vector<Interface *> interface_list_t;
31  typedef std::vector<Symbol *> symbols_list_t;
32  typedef std::map<Symbol *, std::set<_param_direction> >
40  Group(const std::string name)
41  : m_name(name)
42  {
43  }
44 
50  const std::string &getName() const { return m_name; }
51 
57  void addInterface(Interface *iface);
58 
64  const interface_list_t &getInterfaces() const { return m_interfaces; }
65 
72  void addDirToSymbolsMap(Symbol *symbol, _param_direction dir);
73 
81  const std::set<_param_direction> getSymbolDirections(Symbol *symbol) const;
82 
90  const symbols_list_t &getSymbols() const { return m_symbols; }
91 
97  void setTemplate(cpptempl::data_map groupTemplate);
98 
104  cpptempl::data_map &getTemplate() { return m_template; }
105 
121  std::string getDescription() const;
122 
123 private:
124  interface_list_t m_interfaces;
125  symbol_directions_map_t m_symbolDirections;
126  symbols_list_t m_symbols;
127  cpptempl::data_map m_template;
128  std::string m_name;
129 };
130 
131 } // namespace erpcgen
132 
133 #endif // _EMBEDDED_RPC__GROUP_H_
const std::set< _param_direction > getSymbolDirections(Symbol *symbol) const
This function returns set with symbol directions.
Definition: Type.cpp:425
Group(const std::string name)
Constructor.
Definition: Group.h:40
const symbols_list_t & getSymbols() const
This function returns vector with symbols.
Definition: Group.h:90
std::string getDescription() const
This function returns description about the interface.
Definition: Type.cpp:437
Base class for all named declarations in the IDL.
Definition: Symbol.h:27
void addDirToSymbolsMap(Symbol *symbol, _param_direction dir)
This function will add direction for specified symbol held in a symbol map.
Definition: Type.cpp:399
cpptempl::data_map & getTemplate()
This function returns group template.
Definition: Group.h:104
const std::string & getName() const
This function returns the group name.
Definition: Group.h:50
std::vector< Interface * > interface_list_t
Definition: Group.h:30
std::vector< Symbol * > symbols_list_t
Definition: Group.h:31
An interface that contains functions.
Definition: Group.h:27
std::map< Symbol *, std::set< _param_direction > > symbol_directions_map_t
Definition: Group.h:33
Definition: cpptempl.h:190
void setTemplate(cpptempl::data_map groupTemplate)
This function will set group template.
Definition: Type.cpp:420
An interface that contains functions.
Definition: Interface.h:28
void addInterface(Interface *iface)
This function will add pointer to interface into vector of group interfaces.
Definition: Type.cpp:393
Definition: AstNode.h:25
const interface_list_t & getInterfaces() const
This function returns vector with pointers to interfaces belonging to the group.
Definition: Group.h:64