F´ Flight Software - C/C++ Documentation  NASA-v1.5.0
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 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