F´ Flight Software - C/C++ Documentation  devel
A framework for building embedded system applications to NASA flight quality standards.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ComSplitterComponentAc.cpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title ComSplitterComponentAc.cpp
3 // \author Generated by fpp-to-cpp
4 // \brief cpp file for ComSplitter component base class
5 // ======================================================================
6 
8 #include "Fw/Types/Assert.hpp"
10 #if FW_ENABLE_TEXT_LOGGING
11 #include "Fw/Types/String.hpp"
12 #endif
13 
14 namespace Svc {
15 
16  // ----------------------------------------------------------------------
17  // Component initialization
18  // ----------------------------------------------------------------------
19 
21  init(FwEnumStoreType instance)
22  {
23  // Initialize base class
25 
26  // Connect input port comIn
27  for (
28  FwIndexType port = 0;
29  port < static_cast<FwIndexType>(this->getNum_comIn_InputPorts());
30  port++
31  ) {
32  this->m_comIn_InputPort[port].init();
33  this->m_comIn_InputPort[port].addCallComp(
34  this,
35  m_p_comIn_in
36  );
37  this->m_comIn_InputPort[port].setPortNum(port);
38 
39 #if FW_OBJECT_NAMES == 1
40  Fw::ObjectName portName;
41  portName.format(
42  "%s_comIn_InputPort[%" PRI_PlatformIntType "]",
43  this->m_objName.toChar(),
44  port
45  );
46  this->m_comIn_InputPort[port].setObjName(portName.toChar());
47 #endif
48  }
49 
50  // Connect output port comOut
51  for (
52  FwIndexType port = 0;
53  port < static_cast<FwIndexType>(this->getNum_comOut_OutputPorts());
54  port++
55  ) {
56  this->m_comOut_OutputPort[port].init();
57 
58 #if FW_OBJECT_NAMES == 1
59  Fw::ObjectName portName;
60  portName.format(
61  "%s_comOut_OutputPort[%" PRI_PlatformIntType "]",
62  this->m_objName.toChar(),
63  port
64  );
65  this->m_comOut_OutputPort[port].setObjName(portName.toChar());
66 #endif
67  }
68  }
69 
70  // ----------------------------------------------------------------------
71  // Getters for typed input ports
72  // ----------------------------------------------------------------------
73 
76  {
77  FW_ASSERT(
78  portNum < this->getNum_comIn_InputPorts(),
79  static_cast<FwAssertArgType>(portNum)
80  );
81 
82  return &this->m_comIn_InputPort[portNum];
83  }
84 
85  // ----------------------------------------------------------------------
86  // Connect typed input ports to typed output ports
87  // ----------------------------------------------------------------------
88 
91  FwIndexType portNum,
92  Fw::InputComPort* port
93  )
94  {
95  FW_ASSERT(
96  portNum < this->getNum_comOut_OutputPorts(),
97  static_cast<FwAssertArgType>(portNum)
98  );
99 
100  this->m_comOut_OutputPort[portNum].addCallPort(port);
101  }
102 
103 #if FW_PORT_SERIALIZATION
104 
105  // ----------------------------------------------------------------------
106  // Connect serial input ports to typed output ports
107  // ----------------------------------------------------------------------
108 
111  FwIndexType portNum,
112  Fw::InputSerializePort* port
113  )
114  {
115  FW_ASSERT(
116  portNum < this->getNum_comOut_OutputPorts(),
117  static_cast<FwAssertArgType>(portNum)
118  );
119 
120  this->m_comOut_OutputPort[portNum].registerSerialPort(port);
121  }
122 
123 #endif
124 
125  // ----------------------------------------------------------------------
126  // Component construction and destruction
127  // ----------------------------------------------------------------------
128 
130  ComSplitterComponentBase(const char* compName) :
131  Fw::PassiveComponentBase(compName)
132  {
133 
134  }
135 
138  {
139 
140  }
141 
142  // ----------------------------------------------------------------------
143  // Getters for numbers of typed input ports
144  // ----------------------------------------------------------------------
145 
148  {
149  return static_cast<FwIndexType>(FW_NUM_ARRAY_ELEMENTS(this->m_comIn_InputPort));
150  }
151 
152  // ----------------------------------------------------------------------
153  // Getters for numbers of typed output ports
154  // ----------------------------------------------------------------------
155 
158  {
159  return static_cast<FwIndexType>(FW_NUM_ARRAY_ELEMENTS(this->m_comOut_OutputPort));
160  }
161 
162  // ----------------------------------------------------------------------
163  // Connection status queries for typed output ports
164  // ----------------------------------------------------------------------
165 
168  {
169  FW_ASSERT(
170  portNum < this->getNum_comOut_OutputPorts(),
171  static_cast<FwAssertArgType>(portNum)
172  );
173 
174  return this->m_comOut_OutputPort[portNum].isConnected();
175  }
176 
177  // ----------------------------------------------------------------------
178  // Port handler base-class functions for typed input ports
179  //
180  // Call these functions directly to bypass the corresponding ports
181  // ----------------------------------------------------------------------
182 
185  FwIndexType portNum,
186  Fw::ComBuffer& data,
187  U32 context
188  )
189  {
190  // Make sure port number is valid
191  FW_ASSERT(
192  portNum < this->getNum_comIn_InputPorts(),
193  static_cast<FwAssertArgType>(portNum)
194  );
195 
196  // Call handler function
197  this->comIn_handler(
198  portNum,
199  data,
200  context
201  );
202  }
203 
204  // ----------------------------------------------------------------------
205  // Invocation functions for typed output ports
206  // ----------------------------------------------------------------------
207 
210  FwIndexType portNum,
211  Fw::ComBuffer& data,
212  U32 context
213  )
214  {
215  FW_ASSERT(
216  portNum < this->getNum_comOut_OutputPorts(),
217  static_cast<FwAssertArgType>(portNum)
218  );
219  this->m_comOut_OutputPort[portNum].invoke(
220  data,
221  context
222  );
223  }
224 
225  // ----------------------------------------------------------------------
226  // Calls for messages received on typed input ports
227  // ----------------------------------------------------------------------
228 
229  void ComSplitterComponentBase ::
230  m_p_comIn_in(
231  Fw::PassiveComponentBase* callComp,
232  FwIndexType portNum,
233  Fw::ComBuffer& data,
234  U32 context
235  )
236  {
237  FW_ASSERT(callComp);
238  ComSplitterComponentBase* compPtr = static_cast<ComSplitterComponentBase*>(callComp);
239  compPtr->comIn_handlerBase(
240  portNum,
241  data,
242  context
243  );
244  }
245 
246 }
#define FW_ASSERT(...)
Definition: Assert.hpp:14
#define FW_NUM_ARRAY_ELEMENTS(a)
number of elements in an array
Definition: BasicTypes.h:70
#define PRI_PlatformIntType
I32 FwEnumStoreType
Definition: FpConfig.h:64
PlatformAssertArgType FwAssertArgType
Definition: FpConfig.h:39
PlatformIndexType FwIndexType
Definition: FpConfig.h:25
void addCallComp(Fw::PassiveComponentBase *callComp, CompFuncPtr funcPtr)
Register a component.
Definition: ComPortAc.cpp:62
void init()
Initialization function.
Definition: ComPortAc.cpp:56
void setPortNum(NATIVE_INT_TYPE portNum)
void init()
Object initializer.
Definition: ObjBase.cpp:27
const char * toChar() const
Definition: ObjectName.hpp:50
void addCallPort(InputComPort *callPort)
Register an input port.
Definition: ComPortAc.cpp:143
void init()
Initialization function.
Definition: ComPortAc.cpp:137
void invoke(Fw::ComBuffer &data, U32 context)
Invoke a port interface.
Definition: ComPortAc.cpp:156
bool isConnected()
Definition: PortBase.cpp:41
void format(const CHAR *formatString,...)
write formatted string to buffer
Definition: StringBase.cpp:56
Auto-generated base for ComSplitter component.
Fw::InputComPort * get_comIn_InputPort(FwIndexType portNum)
bool isConnected_comOut_OutputPort(FwIndexType portNum)
void set_comOut_OutputPort(FwIndexType portNum, Fw::InputComPort *port)
Connect port to comOut[portNum].
virtual ~ComSplitterComponentBase()
Destroy ComSplitterComponentBase object.
virtual void comIn_handler(FwIndexType portNum, Fw::ComBuffer &data, U32 context)=0
Handler for input port comIn.
ComSplitterComponentBase(const char *compName="")
Construct ComSplitterComponentBase object.
void comOut_out(FwIndexType portNum, Fw::ComBuffer &data, U32 context)
Invoke output port comOut.
void comIn_handlerBase(FwIndexType portNum, Fw::ComBuffer &data, U32 context)
Handler base-class function for input port comIn.