F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
VersionPortAc.hpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title VersionPortAc.hpp
3 // \author Generated by fpp-to-cpp
4 // \brief hpp file for Version port
5 // ======================================================================
6 
7 #ifndef Svc_VersionPortAc_HPP
8 #define Svc_VersionPortAc_HPP
9 
10 #include "Fw/FPrimeBasicTypes.hpp"
16 #if !FW_DIRECT_PORT_CALLS
20 #endif
21 
22 namespace Svc {
23 
28  {
29 
30  public:
31 
32  // ----------------------------------------------------------------------
33  // Public constants for VersionPortBuffer
34  // ----------------------------------------------------------------------
35 
38  static constexpr FwSizeType CAPACITY =
42 
43  public:
44 
45  // ----------------------------------------------------------------------
46  // Public member functions for VersionPortBuffer
47  // ----------------------------------------------------------------------
48 
52  return CAPACITY;
53  }
54 
57  U8* getBuffAddr() override {
58  return m_buff;
59  }
60 
63  const U8* getBuffAddr() const override {
64  return m_buff;
65  }
66 
67  private:
68 
69  // ----------------------------------------------------------------------
70  // Private member variables
71  // ----------------------------------------------------------------------
72 
73  U8 m_buff[CAPACITY];
74 
75  };
76 
80 
81  public:
82 
83  // ----------------------------------------------------------------------
84  // Public constructors for VersionPortSerializer
85  // ----------------------------------------------------------------------
86 
89 
90  public:
91 
92  // ----------------------------------------------------------------------
93  // Public member functions for VersionPortSerializer
94  // ----------------------------------------------------------------------
95 
98  Fw::SerialBufferBase& _buffer
99  );
100 
101  public:
102 
103  // ----------------------------------------------------------------------
104  // Public static functions for VersionPortSerializer
105  // ----------------------------------------------------------------------
106 
109  const Svc::VersionCfg::VersionEnum& version_id,
110  Fw::StringBase& version_string,
111  Svc::VersionStatus& status,
112  Fw::SerialBufferBase& _buffer
113  );
114 
115  private:
116 
117  // ----------------------------------------------------------------------
118  // Private member variables for VersionPortSerializer
119  // ----------------------------------------------------------------------
120 
121  char m___fprime_ac_version_string_buffer[Fw::StringBase::BUFFER_SIZE(static_cast<FwSizeType>(FW_FIXED_LENGTH_STRING_SIZE))];
122 
123  public:
124 
125  // ----------------------------------------------------------------------
126  // Public member variables for VersionPortSerializer
127  // ----------------------------------------------------------------------
128 
132 
133  };
134 
135 #if !FW_DIRECT_PORT_CALLS
136 
140  public Fw::InputPortBase
141  {
142 
143  public:
144 
145  // ----------------------------------------------------------------------
146  // Public types for InputVersionPort
147  // ----------------------------------------------------------------------
148 
150  typedef void (*CompFuncPtr)(
151  Fw::PassiveComponentBase* callComp,
152  FwIndexType portNum,
153  const Svc::VersionCfg::VersionEnum& version_id,
154  Fw::StringBase& version_string,
155  Svc::VersionStatus& status
156  );
157 
158  public:
159 
160  // ----------------------------------------------------------------------
161  // Public constructors for InputVersionPort
162  // ----------------------------------------------------------------------
163 
166 
167  public:
168 
169  // ----------------------------------------------------------------------
170  // Public member functions for InputVersionPort
171  // ----------------------------------------------------------------------
172 
174  void init();
175 
177  void addCallComp(
178  Fw::PassiveComponentBase* callComp,
179  CompFuncPtr funcPtr
180  );
181 
183  void invoke(
184  const Svc::VersionCfg::VersionEnum& version_id,
185  Fw::StringBase& version_string,
186  Svc::VersionStatus& status
187  );
188 
189  private:
190 
191  // ----------------------------------------------------------------------
192  // Private member functions for InputVersionPort
193  // ----------------------------------------------------------------------
194 
195 #if FW_PORT_SERIALIZATION == 1
196 
199  Fw::SerializeStatus invokeSerial(
200  Fw::LinearBufferBase& _buffer
201  );
202 
203 #endif
204 
205  private:
206 
207  // ----------------------------------------------------------------------
208  // Private member variables for InputVersionPort
209  // ----------------------------------------------------------------------
210 
212  CompFuncPtr m_func;
213 
214  };
215 
219  public Fw::OutputPortBase
220  {
221 
222  public:
223 
224  // ----------------------------------------------------------------------
225  // Public constructors for OutputVersionPort
226  // ----------------------------------------------------------------------
227 
230 
231  public:
232 
233  // ----------------------------------------------------------------------
234  // Public member functions for OutputVersionPort
235  // ----------------------------------------------------------------------
236 
238  void init();
239 
241  void addCallPort(
242  InputVersionPort* callPort
243  );
244 
246  void invoke(
247  const Svc::VersionCfg::VersionEnum& version_id,
248  Fw::StringBase& version_string,
249  Svc::VersionStatus& status
250  ) const;
251 
252  private:
253 
254  // ----------------------------------------------------------------------
255  // Private member variables for OutputVersionPort
256  // ----------------------------------------------------------------------
257 
259  InputVersionPort* m_port;
260 
261  };
262 
263 #endif
264 
265 }
266 
267 #endif
void init()
Initialization function.
void(* CompFuncPtr)(Fw::PassiveComponentBase *callComp, FwIndexType portNum, const Svc::VersionCfg::VersionEnum &version_id, Fw::StringBase &version_string, Svc::VersionStatus &status)
The port callback function type.
InputVersionPort()
Constructor.
PlatformSizeType FwSizeType
void invoke(const Svc::VersionCfg::VersionEnum &version_id, Fw::StringBase &version_string, Svc::VersionStatus &status) const
Invoke a port connection.
Fw::ExternalString m_version_string
VersionPortSerializer()
Constructor.
Svc::VersionStatus m_status
SerializeStatus
forward declaration for string
An enumeration for version status.
void addCallComp(Fw::PassiveComponentBase *callComp, CompFuncPtr funcPtr)
Register a component.
static constexpr FwSizeType CAPACITY
const U8 * getBuffAddr() const override
FwSizeType SizeType
void invoke(const Svc::VersionCfg::VersionEnum &version_id, Fw::StringBase &version_string, Svc::VersionStatus &status)
Invoke a port interface.
A string backed by an external buffer.
uint8_t U8
8-bit unsigned integer
Definition: BasicTypes.h:53
U8 * getBuffAddr() override
The size of the serial representation.
Fw::Serializable::SizeType getCapacity() const override
PlatformIndexType FwIndexType
The size of the serial representation.
RateGroupDivider component implementation.
void init()
Initialization function.
Svc::VersionCfg::VersionEnum m_version_id
static constexpr SizeType STATIC_SERIALIZED_SIZE(SizeType maxLength)
static constexpr SizeType BUFFER_SIZE(SizeType maxLength)
Get the size of a null-terminated string buffer.
void addCallPort(InputVersionPort *callPort)
Register an input port.
Fw::SerializeStatus deserializePortArgs(Fw::SerialBufferBase &_buffer)
Deserialze port arguments into members.
OutputVersionPort()
Constructor.
static Fw::SerializeStatus serializePortArgs(const Svc::VersionCfg::VersionEnum &version_id, Fw::StringBase &version_string, Svc::VersionStatus &status, Fw::SerialBufferBase &_buffer)
Serialize port arguments into a buffer.