F´ Flight Software - C/C++ Documentation  NASA-v1.5.0
A framework for building embedded system applications to NASA flight quality standards.
PolyDbComponentAc.cpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title PolyDbComponentAc.cpp
3 // \author Auto-generated
4 // \brief cpp file for PolyDb 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_getValue_InputPorts(),static_cast<AssertArg>(portNum));
32  return &this->m_getValue_InputPort[portNum];
33  }
34 
37  {
38  FW_ASSERT(portNum < this->getNum_setValue_InputPorts(),static_cast<AssertArg>(portNum));
39  return &this->m_setValue_InputPort[portNum];
40  }
41 
42  // ----------------------------------------------------------------------
43  // Component construction, initialization, and destruction
44  // ----------------------------------------------------------------------
45 
47 #if FW_OBJECT_NAMES == 1
48  PolyDbComponentBase(const char* compName) :
49  Fw::PassiveComponentBase(compName)
50 #else
52  Fw::PassiveComponentBase()
53 #endif
54  {
55 
56 
57 
58 
59  }
60 
62  init(NATIVE_INT_TYPE instance)
63  {
64 
65  // Initialize base class
67 
68  // Connect input port getValue
69  for (
70  NATIVE_INT_TYPE port = 0;
71  port < this->getNum_getValue_InputPorts();
72  port++
73  ) {
74 
75  this->m_getValue_InputPort[port].init();
76  this->m_getValue_InputPort[port].addCallComp(
77  this,
78  m_p_getValue_in
79  );
80  this->m_getValue_InputPort[port].setPortNum(port);
81 
82 #if FW_OBJECT_NAMES == 1
83  char portName[120];
84  (void) snprintf(
85  portName,
86  sizeof(portName),
87  "%s_getValue_InputPort[%d]",
88  this->m_objName,
89  port
90  );
91  this->m_getValue_InputPort[port].setObjName(portName);
92 #endif
93 
94  }
95 
96  // Connect input port setValue
97  for (
98  NATIVE_INT_TYPE port = 0;
99  port < this->getNum_setValue_InputPorts();
100  port++
101  ) {
102 
103  this->m_setValue_InputPort[port].init();
104  this->m_setValue_InputPort[port].addCallComp(
105  this,
107  );
108  this->m_setValue_InputPort[port].setPortNum(port);
109 
110 #if FW_OBJECT_NAMES == 1
111  char portName[120];
112  (void) snprintf(
113  portName,
114  sizeof(portName),
115  "%s_setValue_InputPort[%d]",
116  this->m_objName,
117  port
118  );
119  this->m_setValue_InputPort[port].setObjName(portName);
120 #endif
121 
122  }
123 
124 
125  }
126 
129 
130  }
131 
132  // ----------------------------------------------------------------------
133  // Invocation functions for output ports
134  // ----------------------------------------------------------------------
135 
136  // ----------------------------------------------------------------------
137  // Getters for numbers of ports
138  // ----------------------------------------------------------------------
139 
140  NATIVE_INT_TYPE PolyDbComponentBase ::
141  getNum_getValue_InputPorts(void)
142  {
144  this->m_getValue_InputPort
145  );
146  }
147 
150  {
153  );
154  }
155 
156  // ----------------------------------------------------------------------
157  // Mutex functions for guarded ports
158  // ----------------------------------------------------------------------
159 
160  void PolyDbComponentBase ::
161  lock(void)
162  {
163  this->m_guardedPortMutex.lock();
164  }
165 
167  unLock(void)
168  {
169  this->m_guardedPortMutex.unLock();
170  }
171 
172  // ----------------------------------------------------------------------
173  // Calls for invocations received on typed input ports
174  // ----------------------------------------------------------------------
175 
176  void PolyDbComponentBase ::
177  m_p_getValue_in(
178  Fw::PassiveComponentBase* callComp,
179  NATIVE_INT_TYPE portNum,
180  U32 entry, MeasurementStatus &status, Fw::Time &time, Fw::PolyType &val
181  )
182  {
183  FW_ASSERT(callComp);
184  PolyDbComponentBase* compPtr =
185  (PolyDbComponentBase*) callComp;
186  compPtr->getValue_handlerBase(portNum, entry, status, time, val);
187  }
188 
191  Fw::PassiveComponentBase* callComp,
192  NATIVE_INT_TYPE portNum,
193  U32 entry, MeasurementStatus &status, Fw::Time &time, Fw::PolyType &val
194  )
195  {
196  FW_ASSERT(callComp);
197  PolyDbComponentBase* compPtr =
198  (PolyDbComponentBase*) callComp;
200  }
201 
202  // ----------------------------------------------------------------------
203  // Port handler base-class functions for typed input ports
204  // ----------------------------------------------------------------------
205 
206  void PolyDbComponentBase ::
207  getValue_handlerBase(
208  NATIVE_INT_TYPE portNum,
209  U32 entry, MeasurementStatus &status, Fw::Time &time, Fw::PolyType &val
210  )
211  {
212 
213  // Make sure port number is valid
214  FW_ASSERT(portNum < this->getNum_getValue_InputPorts(),static_cast<AssertArg>(portNum));
215 
216  // Lock guard mutex before calling
217  this->lock();
218 
219  // Down call to pure virtual handler method implemented in Impl class
220  this->getValue_handler(portNum, entry, status, time, val);
221 
222  // Unlock guard mutex
223  this->unLock();
224 
225  }
226 
229  NATIVE_INT_TYPE portNum,
230  U32 entry, MeasurementStatus &status, Fw::Time &time, Fw::PolyType &val
231  )
232  {
233 
234  // Make sure port number is valid
235  FW_ASSERT(portNum < this->getNum_setValue_InputPorts(),static_cast<AssertArg>(portNum));
236 
237  // Lock guard mutex before calling
238  this->lock();
239 
240  // Down call to pure virtual handler method implemented in Impl class
241  this->setValue_handler(portNum, entry, status, time, val);
242 
243  // Unlock guard mutex
244  this->unLock();
245 
246  }
247 
248 } // end namespace Svc
Svc::PolyDbComponentBase::getNum_setValue_InputPorts
NATIVE_INT_TYPE getNum_setValue_InputPorts(void)
Definition: PolyDbComponentAc.cpp:149
Fw::Time
Definition: Time.hpp:10
Svc::PolyDbComponentBase::entry
PROTECTED U32 entry
Definition: PolyDbComponentAc.hpp:119
FW_NUM_ARRAY_ELEMENTS
#define FW_NUM_ARRAY_ELEMENTS(a)
number of elements in an array
Definition: BasicTypes.hpp:103
Svc::PolyDbComponentBase::setValue_handler
virtual void setValue_handler(NATIVE_INT_TYPE portNum, U32 entry, MeasurementStatus &status, Fw::Time &time, Fw::PolyType &val)=0
Handler for input port setValue.
Assert.hpp
Svc::PolyDbComponentBase::unLock
virtual void unLock(void)
Definition: PolyDbComponentAc.cpp:167
EightyCharString.hpp
Fw::PassiveComponentBase
Definition: PassiveComponentBase.hpp:10
Fw::ObjBase::init
void init(void)
Object initializer.
Definition: ObjBase.cpp:26
Svc::PolyDbComponentBase::status
PROTECTED U32 MeasurementStatus & status
Definition: PolyDbComponentAc.hpp:120
Svc::PolyDbComponentBase::m_p_setValue_in
static void m_p_setValue_in(Fw::PassiveComponentBase *callComp, NATIVE_INT_TYPE portNum, U32 entry, MeasurementStatus &status, Fw::Time &time, Fw::PolyType &val)
Definition: PolyDbComponentAc.cpp:190
PolyDbComponentAc.hpp
Svc::InputPolyPort::init
void init(void)
initialization function
Definition: PolyPortAc.cpp:38
Svc::PolyDbComponentBase::time
PROTECTED U32 MeasurementStatus Fw::Time & time
Definition: PolyDbComponentAc.hpp:121
Svc::MeasurementStatus
MeasurementStatus
Definition: PolyPortAc.hpp:26
Svc::PolyDbComponentBase::~PolyDbComponentBase
virtual ~PolyDbComponentBase(void)
Definition: PolyDbComponentAc.cpp:128
FW_ASSERT
#define FW_ASSERT(...)
Definition: Assert.hpp:9
Svc::PolyDbComponentBase
Auto-generated base for PolyDb component.
Definition: PolyDbComponentAc.hpp:32
Svc::PolyDbComponentBase::m_setValue_InputPort
Svc::InputPolyPort m_setValue_InputPort[NUM_SETVALUE_INPUT_PORTS]
Definition: PolyDbComponentAc.hpp:210
FpConfig.hpp
ISF configuration file.
Fw::InputPortBase::setPortNum
void setPortNum(NATIVE_INT_TYPE portNum)
Definition: InputPortBase.cpp:25
Svc::PolyDbComponentBase::val
PROTECTED U32 MeasurementStatus Fw::Time Fw::PolyType & val
Definition: PolyDbComponentAc.hpp:123
Fw::PolyType
Definition: PolyType.hpp:12
Svc::InputPolyPort
Definition: PolyPortAc.hpp:36
Svc
Definition: ActiveLoggerComponentAc.cpp:22
Svc::PolyDbComponentBase::get_setValue_InputPort
Svc::InputPolyPort * get_setValue_InputPort(NATIVE_INT_TYPE portNum)
Definition: PolyDbComponentAc.cpp:36
Svc::PolyDbComponentBase::get_getValue_InputPort
Svc::InputPolyPort * get_getValue_InputPort(NATIVE_INT_TYPE portNum)
Definition: PolyDbComponentAc.cpp:29
NATIVE_INT_TYPE
int NATIVE_INT_TYPE
native integer type declaration
Definition: BasicTypes.hpp:29
AssertArg
#define AssertArg
Definition: FpConfig.hpp:51
Svc::PolyDbComponentBase::portNum
PRIVATE NATIVE_INT_TYPE portNum
Definition: PolyDbComponentAc.hpp:222
Fw
Definition: BufferGetPortAc.cpp:6
Svc::InputPolyPort::addCallComp
void addCallComp(Fw::PassiveComponentBase *callComp, CompFuncPtr funcPtr)
call to register a component
Definition: PolyPortAc.cpp:42
Svc::PolyDbComponentBase::setValue_handlerBase
void setValue_handlerBase(NATIVE_INT_TYPE portNum, U32 entry, MeasurementStatus &status, Fw::Time &time, Fw::PolyType &val)
Definition: PolyDbComponentAc.cpp:228