F´ Flight Software - C/C++ Documentation devel
A framework for building embedded system applications to NASA flight quality standards.
Loading...
Searching...
No Matches
PolyDbComponentAc.hpp
Go to the documentation of this file.
1// ======================================================================
2// \title PolyDbComponentAc.hpp
3// \author Generated by fpp-to-cpp
4// \brief hpp file for PolyDb component base class
5// ======================================================================
6
7#ifndef Svc_PolyDbComponentAc_HPP
8#define Svc_PolyDbComponentAc_HPP
9
10#include "FpConfig.hpp"
14#include "Os/Mutex.hpp"
16
17namespace Svc {
18
25 {
26
27 // ----------------------------------------------------------------------
28 // Friend classes
29 // ----------------------------------------------------------------------
30
33
34 PROTECTED:
35
36 // ----------------------------------------------------------------------
37 // Constants
38 // ----------------------------------------------------------------------
39
41 enum {
44 };
45
46 public:
47
48 // ----------------------------------------------------------------------
49 // Component initialization
50 // ----------------------------------------------------------------------
51
53 void init(
54 NATIVE_INT_TYPE instance = 0
55 );
56
57 public:
58
59 // ----------------------------------------------------------------------
60 // Getters for typed input ports
61 // ----------------------------------------------------------------------
62
67 NATIVE_INT_TYPE portNum
68 );
69
74 NATIVE_INT_TYPE portNum
75 );
76
77 PROTECTED:
78
79 // ----------------------------------------------------------------------
80 // Component construction and destruction
81 // ----------------------------------------------------------------------
82
85 const char* compName = ""
86 );
87
89 virtual ~PolyDbComponentBase();
90
91 PROTECTED:
92
93 // ----------------------------------------------------------------------
94 // Getters for numbers of typed input ports
95 // ----------------------------------------------------------------------
96
101
106
107 PROTECTED:
108
109 // ----------------------------------------------------------------------
110 // Handlers to implement for typed input ports
111 // ----------------------------------------------------------------------
112
114 virtual void getValue_handler(
115 NATIVE_INT_TYPE portNum,
116 U32 entry,
117 Svc::MeasurementStatus& status,
118 Fw::Time& time,
119 Fw::PolyType& val
120 ) = 0;
121
123 virtual void setValue_handler(
124 NATIVE_INT_TYPE portNum,
125 U32 entry,
126 Svc::MeasurementStatus& status,
127 Fw::Time& time,
128 Fw::PolyType& val
129 ) = 0;
130
131 PROTECTED:
132
133 // ----------------------------------------------------------------------
134 // Port handler base-class functions for typed input ports
135 //
136 // Call these functions directly to bypass the corresponding ports
137 // ----------------------------------------------------------------------
138
141 NATIVE_INT_TYPE portNum,
142 U32 entry,
143 Svc::MeasurementStatus& status,
144 Fw::Time& time,
145 Fw::PolyType& val
146 );
147
150 NATIVE_INT_TYPE portNum,
151 U32 entry,
152 Svc::MeasurementStatus& status,
153 Fw::Time& time,
154 Fw::PolyType& val
155 );
156
157 PROTECTED:
158
159 // ----------------------------------------------------------------------
160 // Mutex operations for guarded ports
161 //
162 // You can override these operations to provide more sophisticated
163 // synchronization
164 // ----------------------------------------------------------------------
165
167 virtual void lock();
168
170 virtual void unLock();
171
172 PRIVATE:
173
174 // ----------------------------------------------------------------------
175 // Calls for messages received on typed input ports
176 // ----------------------------------------------------------------------
177
179 static void m_p_getValue_in(
180 Fw::PassiveComponentBase* callComp,
181 NATIVE_INT_TYPE portNum,
182 U32 entry,
183 Svc::MeasurementStatus& status,
184 Fw::Time& time,
185 Fw::PolyType& val
186 );
187
189 static void m_p_setValue_in(
190 Fw::PassiveComponentBase* callComp,
191 NATIVE_INT_TYPE portNum,
192 U32 entry,
193 Svc::MeasurementStatus& status,
194 Fw::Time& time,
195 Fw::PolyType& val
196 );
197
198 PRIVATE:
199
200 // ----------------------------------------------------------------------
201 // Typed input ports
202 // ----------------------------------------------------------------------
203
205 Svc::InputPolyPort m_getValue_InputPort[NUM_GETVALUE_INPUT_PORTS];
206
208 Svc::InputPolyPort m_setValue_InputPort[NUM_SETVALUE_INPUT_PORTS];
209
210 PRIVATE:
211
212 // ----------------------------------------------------------------------
213 // Mutexes
214 // ----------------------------------------------------------------------
215
217 Os::Mutex m_guardedPortMutex;
218
219 };
220
221}
222
223#endif
PlatformIntType NATIVE_INT_TYPE
Definition BasicTypes.h:51
C++-compatible configuration header for fprime configuration.
void init()
Object initializer.
Definition ObjBase.cpp:27
An enumeration for measurement status.
Auto-generated base for PolyDb component.
virtual void unLock()
Unlock the guarded mutex.
NATIVE_INT_TYPE getNum_setValue_InputPorts() const
virtual void getValue_handler(NATIVE_INT_TYPE portNum, U32 entry, Svc::MeasurementStatus &status, Fw::Time &time, Fw::PolyType &val)=0
Handler for input port getValue.
PolyDbComponentBase(const char *compName="")
Construct PolyDbComponentBase object.
virtual void lock()
Lock the guarded mutex.
Svc::InputPolyPort * get_getValue_InputPort(NATIVE_INT_TYPE portNum)
friend class PolyDbComponentBaseFriend
Friend class for white-box testing.
void getValue_handlerBase(NATIVE_INT_TYPE portNum, U32 entry, Svc::MeasurementStatus &status, Fw::Time &time, Fw::PolyType &val)
Handler base-class function for input port getValue.
virtual void setValue_handler(NATIVE_INT_TYPE portNum, U32 entry, Svc::MeasurementStatus &status, Fw::Time &time, Fw::PolyType &val)=0
Handler for input port setValue.
NATIVE_INT_TYPE getNum_getValue_InputPorts() const
void setValue_handlerBase(NATIVE_INT_TYPE portNum, U32 entry, Svc::MeasurementStatus &status, Fw::Time &time, Fw::PolyType &val)
Handler base-class function for input port setValue.
virtual ~PolyDbComponentBase()
Destroy PolyDbComponentBase object.
Svc::InputPolyPort * get_setValue_InputPort(NATIVE_INT_TYPE portNum)