mirror of
https://github.com/nasa/fpp.git
synced 2025-12-13 00:06:20 -06:00
179 lines
4.2 KiB
C++
Vendored
179 lines
4.2 KiB
C++
Vendored
// ======================================================================
|
|
// \title EnumSerializableAc.hpp
|
|
// \author Generated by fpp-to-cpp
|
|
// \brief hpp file for Enum struct
|
|
// ======================================================================
|
|
|
|
#ifndef EnumSerializableAc_HPP
|
|
#define EnumSerializableAc_HPP
|
|
|
|
#include "EEnumAc.hpp"
|
|
#include "Fw/FPrimeBasicTypes.hpp"
|
|
#include "Fw/Types/ExternalString.hpp"
|
|
#include "Fw/Types/Serializable.hpp"
|
|
#include "Fw/Types/String.hpp"
|
|
|
|
class Enum :
|
|
public Fw::Serializable
|
|
{
|
|
|
|
public:
|
|
|
|
// ----------------------------------------------------------------------
|
|
// Types
|
|
// ----------------------------------------------------------------------
|
|
|
|
//! The type of eArr
|
|
using Type_of_eArr = M::E[3];
|
|
|
|
public:
|
|
|
|
// ----------------------------------------------------------------------
|
|
// Constants
|
|
// ----------------------------------------------------------------------
|
|
|
|
enum {
|
|
//! The size of the serial representation
|
|
SERIALIZED_SIZE =
|
|
M::E::SERIALIZED_SIZE +
|
|
M::E::SERIALIZED_SIZE * 3
|
|
};
|
|
|
|
public:
|
|
|
|
// ----------------------------------------------------------------------
|
|
// Constructors
|
|
// ----------------------------------------------------------------------
|
|
|
|
//! Constructor (default value)
|
|
Enum();
|
|
|
|
//! Member constructor
|
|
Enum(
|
|
M::E::T e,
|
|
const Type_of_eArr& eArr
|
|
);
|
|
|
|
//! Copy constructor
|
|
Enum(
|
|
const Enum& obj //!< The source object
|
|
);
|
|
|
|
//! Member constructor (scalar values for arrays)
|
|
Enum(
|
|
M::E::T e,
|
|
M::E::T eArr
|
|
);
|
|
|
|
public:
|
|
|
|
// ----------------------------------------------------------------------
|
|
// Operators
|
|
// ----------------------------------------------------------------------
|
|
|
|
//! Copy assignment operator
|
|
Enum& operator=(
|
|
const Enum& obj //!< The source object
|
|
);
|
|
|
|
//! Equality operator
|
|
bool operator==(
|
|
const Enum& obj //!< The other object
|
|
) const;
|
|
|
|
//! Inequality operator
|
|
bool operator!=(
|
|
const Enum& obj //!< The other object
|
|
) const;
|
|
|
|
#ifdef BUILD_UT
|
|
|
|
//! Ostream operator
|
|
friend std::ostream& operator<<(
|
|
std::ostream& os, //!< The ostream
|
|
const Enum& obj //!< The object
|
|
);
|
|
|
|
#endif
|
|
|
|
public:
|
|
|
|
// ----------------------------------------------------------------------
|
|
// Member functions
|
|
// ----------------------------------------------------------------------
|
|
|
|
//! Serialization
|
|
Fw::SerializeStatus serializeTo(
|
|
Fw::SerialBufferBase& buffer, //!< The serial buffer
|
|
Fw::Endianness mode = Fw::Endianness::BIG //!< Endianness of serialized buffer
|
|
) const;
|
|
|
|
//! Deserialization
|
|
Fw::SerializeStatus deserializeFrom(
|
|
Fw::SerialBufferBase& buffer, //!< The serial buffer
|
|
Fw::Endianness mode = Fw::Endianness::BIG //!< Endianness of serialized buffer
|
|
);
|
|
|
|
//! Get the dynamic serialized size of the struct
|
|
FwSizeType serializedSize() const;
|
|
|
|
#if FW_SERIALIZABLE_TO_STRING
|
|
|
|
//! Convert struct to string
|
|
void toString(
|
|
Fw::StringBase& sb //!< The StringBase object to hold the result
|
|
) const;
|
|
|
|
#endif
|
|
|
|
// ----------------------------------------------------------------------
|
|
// Getter functions
|
|
// ----------------------------------------------------------------------
|
|
|
|
//! Get member e
|
|
M::E::T get_e() const
|
|
{
|
|
return this->m_e.e;
|
|
}
|
|
|
|
//! Get member eArr
|
|
Type_of_eArr& get_eArr()
|
|
{
|
|
return this->m_eArr;
|
|
}
|
|
|
|
//! Get member eArr (const)
|
|
const Type_of_eArr& get_eArr() const
|
|
{
|
|
return this->m_eArr;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
// Setter functions
|
|
// ----------------------------------------------------------------------
|
|
|
|
//! Set all members
|
|
void set(
|
|
M::E::T e,
|
|
const Type_of_eArr& eArr
|
|
);
|
|
|
|
//! Set member e
|
|
void set_e(M::E::T e);
|
|
|
|
//! Set member eArr
|
|
void set_eArr(const Type_of_eArr& eArr);
|
|
|
|
protected:
|
|
|
|
// ----------------------------------------------------------------------
|
|
// Member variables
|
|
// ----------------------------------------------------------------------
|
|
|
|
M::E m_e;
|
|
M::E m_eArr[3];
|
|
|
|
};
|
|
|
|
#endif
|