mirror of
https://github.com/nasa/fpp.git
synced 2025-12-11 19:23:13 -06:00
142 lines
3.5 KiB
C++
Vendored
142 lines
3.5 KiB
C++
Vendored
// ======================================================================
|
|
// \title NoArgsPortAc.hpp
|
|
// \author Generated by fpp-to-cpp
|
|
// \brief hpp file for NoArgs port
|
|
// ======================================================================
|
|
|
|
#ifndef Ports_NoArgsPortAc_HPP
|
|
#define Ports_NoArgsPortAc_HPP
|
|
|
|
#include "Fw/FPrimeBasicTypes.hpp"
|
|
#include "Fw/Types/String.hpp"
|
|
#if !FW_DIRECT_PORT_CALLS
|
|
#include "Fw/Comp/PassiveComponentBase.hpp"
|
|
#include "Fw/Port/InputPortBase.hpp"
|
|
#include "Fw/Port/OutputPortBase.hpp"
|
|
#include "Fw/Types/Serializable.hpp"
|
|
#endif
|
|
|
|
namespace Ports {
|
|
|
|
//! NoArgs port constants
|
|
struct NoArgsPortConstants {
|
|
//! The size of the serial representations of the port arguments
|
|
static constexpr FwSizeType INPUT_SERIALIZED_SIZE =
|
|
0;
|
|
};
|
|
|
|
#if !FW_DIRECT_PORT_CALLS
|
|
|
|
//! Input NoArgs port
|
|
//! A typed port with no arguments
|
|
class InputNoArgsPort :
|
|
public Fw::InputPortBase
|
|
{
|
|
|
|
public:
|
|
|
|
// ----------------------------------------------------------------------
|
|
// Constants
|
|
// ----------------------------------------------------------------------
|
|
|
|
enum {
|
|
//! The size of the serial representations of the port arguments
|
|
SERIALIZED_SIZE = NoArgsPortConstants::INPUT_SERIALIZED_SIZE
|
|
};
|
|
|
|
public:
|
|
|
|
// ----------------------------------------------------------------------
|
|
// Types
|
|
// ----------------------------------------------------------------------
|
|
|
|
//! The port callback function type
|
|
typedef void (*CompFuncPtr)(
|
|
Fw::PassiveComponentBase* callComp,
|
|
FwIndexType portNum
|
|
);
|
|
|
|
public:
|
|
|
|
// ----------------------------------------------------------------------
|
|
// Input Port Member functions
|
|
// ----------------------------------------------------------------------
|
|
|
|
//! Constructor
|
|
InputNoArgsPort();
|
|
|
|
//! Initialization function
|
|
void init();
|
|
|
|
//! Register a component
|
|
void addCallComp(
|
|
Fw::PassiveComponentBase* callComp, //!< The containing component
|
|
CompFuncPtr funcPtr //!< The port callback function
|
|
);
|
|
|
|
//! Invoke a port interface
|
|
void invoke();
|
|
|
|
private:
|
|
|
|
#if FW_PORT_SERIALIZATION == 1
|
|
|
|
//! Invoke the port with serialized arguments
|
|
Fw::SerializeStatus invokeSerial(Fw::LinearBufferBase& _buffer);
|
|
|
|
#endif
|
|
|
|
private:
|
|
|
|
// ----------------------------------------------------------------------
|
|
// Member variables
|
|
// ----------------------------------------------------------------------
|
|
|
|
//! The pointer to the port callback function
|
|
CompFuncPtr m_func;
|
|
|
|
};
|
|
|
|
//! Output NoArgs port
|
|
//! A typed port with no arguments
|
|
class OutputNoArgsPort :
|
|
public Fw::OutputPortBase
|
|
{
|
|
|
|
public:
|
|
|
|
// ----------------------------------------------------------------------
|
|
// Output Port Member functions
|
|
// ----------------------------------------------------------------------
|
|
|
|
//! Constructor
|
|
OutputNoArgsPort();
|
|
|
|
//! Initialization function
|
|
void init();
|
|
|
|
//! Register an input port
|
|
void addCallPort(
|
|
InputNoArgsPort* callPort //!< The input port
|
|
);
|
|
|
|
//! Invoke a port interface
|
|
void invoke() const;
|
|
|
|
private:
|
|
|
|
// ----------------------------------------------------------------------
|
|
// Member variables
|
|
// ----------------------------------------------------------------------
|
|
|
|
//! The pointer to the input port
|
|
InputNoArgsPort* m_port;
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
#endif
|