F´ Flight Software - C/C++ Documentation  NASA-v1.5.0
A framework for building embedded system applications to NASA flight quality standards.
ComSplitterComponentAc.cpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title ComSplitterComponentAc.cpp
3 // \author Auto-generated
4 // \brief cpp file for ComSplitter component base class
5 //
6 // \copyright
7 // Copyright 2009-2015, by the California Institute of Technology.
8 // ALL RIGHTS RESERVED. United States Government Sponsorship
9 // acknowledged.
10 //
11 // ======================================================================
12 
13 #include <stdio.h>
14 #include <FpConfig.hpp>
16 #include <Fw/Types/Assert.hpp>
17 #if FW_ENABLE_TEXT_LOGGING
19 #endif
20 
21 
22 namespace Svc {
23 
24  // ----------------------------------------------------------------------
25  // Getters for numbers of input ports
26  // ----------------------------------------------------------------------
27 
30  {
31  FW_ASSERT(portNum < this->getNum_comIn_InputPorts(),static_cast<AssertArg>(portNum));
32  return &this->m_comIn_InputPort[portNum];
33  }
34 
35  // ----------------------------------------------------------------------
36  // Typed connectors for output ports
37  // ----------------------------------------------------------------------
38 
41  NATIVE_INT_TYPE portNum,
42  Fw::InputComPort* port
43  )
44  {
45  FW_ASSERT(portNum < this->getNum_comOut_OutputPorts(),static_cast<AssertArg>(portNum));
46  this->m_comOut_OutputPort[portNum].addCallPort(port);
47  }
48 
49  // ----------------------------------------------------------------------
50  // Serialization connectors for output ports
51  // ----------------------------------------------------------------------
52 
53 #if FW_PORT_SERIALIZATION
54 
57  NATIVE_INT_TYPE portNum,
58  Fw::InputSerializePort *port
59  )
60  {
61  FW_ASSERT(portNum < this->getNum_comOut_OutputPorts(),static_cast<AssertArg>(portNum));
62  return this->m_comOut_OutputPort[portNum].registerSerialPort(port);
63  }
64 
65 #endif
66 
67  // ----------------------------------------------------------------------
68  // Component construction, initialization, and destruction
69  // ----------------------------------------------------------------------
70 
71  ComSplitterComponentBase ::
72 #if FW_OBJECT_NAMES == 1
73  ComSplitterComponentBase(const char* compName) :
74  Fw::PassiveComponentBase(compName)
75 #else
76  ComSplitterComponentBase() :
77  Fw::PassiveComponentBase()
78 #endif
79  {
80 
81 
82 
83 
84  }
85 
87  init(NATIVE_INT_TYPE instance)
88  {
89 
90  // Initialize base class
92 
93  // Connect input port comIn
94  for (
95  NATIVE_INT_TYPE port = 0;
96  port < this->getNum_comIn_InputPorts();
97  port++
98  ) {
99 
100  this->m_comIn_InputPort[port].init();
101  this->m_comIn_InputPort[port].addCallComp(
102  this,
103  m_p_comIn_in
104  );
105  this->m_comIn_InputPort[port].setPortNum(port);
106 
107 #if FW_OBJECT_NAMES == 1
108  char portName[120];
109  (void) snprintf(
110  portName,
111  sizeof(portName),
112  "%s_comIn_InputPort[%d]",
113  this->m_objName,
114  port
115  );
116  this->m_comIn_InputPort[port].setObjName(portName);
117 #endif
118 
119  }
120 
121  // Initialize output port comOut
122  for (
123  NATIVE_INT_TYPE port = 0;
124  port < this->getNum_comOut_OutputPorts();
125  port++
126  ) {
127  this->m_comOut_OutputPort[port].init();
128 
129 #if FW_OBJECT_NAMES == 1
130  char portName[120];
131  (void) snprintf(
132  portName,
133  sizeof(portName),
134  "%s_comOut_OutputPort[%d]",
135  this->m_objName,
136  port
137  );
138  this->m_comOut_OutputPort[port].setObjName(portName);
139 #endif
140 
141  }
142 
143 
144  }
145 
148 
149  }
150 
151  // ----------------------------------------------------------------------
152  // Invocation functions for output ports
153  // ----------------------------------------------------------------------
154 
155  void ComSplitterComponentBase ::
156  comOut_out(
157  NATIVE_INT_TYPE portNum,
158  Fw::ComBuffer &data, U32 context
159  )
160  {
161  FW_ASSERT(portNum < this->getNum_comOut_OutputPorts(),static_cast<AssertArg>(portNum));
162  this->m_comOut_OutputPort[portNum].invoke(data, context);
163  }
164 
165  // ----------------------------------------------------------------------
166  // Getters for numbers of ports
167  // ----------------------------------------------------------------------
168 
169  NATIVE_INT_TYPE ComSplitterComponentBase ::
170  getNum_comIn_InputPorts(void)
171  {
173  this->m_comIn_InputPort
174  );
175  }
176 
177  NATIVE_INT_TYPE ComSplitterComponentBase ::
178  getNum_comOut_OutputPorts(void)
179  {
181  this->m_comOut_OutputPort
182  );
183  }
184 
185  // ----------------------------------------------------------------------
186  // Port connection status queries
187  // ----------------------------------------------------------------------
188 
189  bool ComSplitterComponentBase ::
190  isConnected_comOut_OutputPort(NATIVE_INT_TYPE portNum)
191  {
192  FW_ASSERT(
193  portNum < this->getNum_comOut_OutputPorts(),
194  static_cast<AssertArg>(portNum)
195  );
196  return this->m_comOut_OutputPort[portNum].isConnected();
197  }
198 
199  // ----------------------------------------------------------------------
200  // Calls for invocations received on typed input ports
201  // ----------------------------------------------------------------------
202 
203  void ComSplitterComponentBase ::
204  m_p_comIn_in(
205  Fw::PassiveComponentBase* callComp,
206  NATIVE_INT_TYPE portNum,
207  Fw::ComBuffer &data, U32 context
208  )
209  {
210  FW_ASSERT(callComp);
211  ComSplitterComponentBase* compPtr =
212  (ComSplitterComponentBase*) callComp;
213  compPtr->comIn_handlerBase(portNum, data, context);
214  }
215 
216  // ----------------------------------------------------------------------
217  // Port handler base-class functions for typed input ports
218  // ----------------------------------------------------------------------
219 
220  void ComSplitterComponentBase ::
221  comIn_handlerBase(
222  NATIVE_INT_TYPE portNum,
223  Fw::ComBuffer &data, U32 context
224  )
225  {
226 
227  // Make sure port number is valid
228  FW_ASSERT(portNum < this->getNum_comIn_InputPorts(),static_cast<AssertArg>(portNum));
229 
230  // Down call to pure virtual handler method implemented in Impl class
231  this->comIn_handler(portNum, data, context);
232 
233  }
234 
235 } // end namespace Svc
FW_NUM_ARRAY_ELEMENTS
#define FW_NUM_ARRAY_ELEMENTS(a)
number of elements in an array
Definition: BasicTypes.hpp:103
Svc::ComSplitterComponentBase::set_comOut_OutputPort
void set_comOut_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputComPort *port)
Definition: ComSplitterComponentAc.cpp:40
Assert.hpp
Fw::InputComPort
Definition: ComPortAc.hpp:28
Svc::ComSplitterComponentBase::data
PROTECTED Fw::ComBuffer & data
Definition: ComSplitterComponentAc.hpp:122
EightyCharString.hpp
Fw::PassiveComponentBase
Definition: PassiveComponentBase.hpp:10
Fw::ObjBase::init
void init(void)
Object initializer.
Definition: ObjBase.cpp:26
FW_ASSERT
#define FW_ASSERT(...)
Definition: Assert.hpp:9
Svc::ComSplitterComponentBase::get_comIn_InputPort
Fw::InputComPort * get_comIn_InputPort(NATIVE_INT_TYPE portNum)
Definition: ComSplitterComponentAc.cpp:29
FpConfig.hpp
ISF configuration file.
Svc
Definition: ActiveLoggerComponentAc.cpp:22
Svc::ComSplitterComponentBase::portNum
PRIVATE NATIVE_INT_TYPE portNum
Definition: ComSplitterComponentAc.hpp:245
Svc::ComSplitterComponentBase::context
PROTECTED Fw::ComBuffer U32 context
Definition: ComSplitterComponentAc.hpp:124
Svc::ComSplitterComponentBase::~ComSplitterComponentBase
virtual ~ComSplitterComponentBase(void)
Definition: ComSplitterComponentAc.cpp:147
NATIVE_INT_TYPE
int NATIVE_INT_TYPE
native integer type declaration
Definition: BasicTypes.hpp:29
AssertArg
#define AssertArg
Definition: FpConfig.hpp:51
Fw::ComBuffer
Definition: ComBuffer.hpp:21
ComSplitterComponentAc.hpp
Fw
Definition: BufferGetPortAc.cpp:6