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
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