// ====================================================================== // \title E2EnumAc.hpp // \author Generated by fpp-to-cpp // \brief hpp file for E2 enum // ====================================================================== #ifndef E2EnumAc_HPP #define E2EnumAc_HPP #include "Fw/FPrimeBasicTypes.hpp" #include "Fw/Types/Serializable.hpp" #include "Fw/Types/String.hpp" //! An enum with specified default value class E2 : public Fw::Serializable { public: // ---------------------------------------------------------------------- // Types // ---------------------------------------------------------------------- //! The serial representation type typedef I32 SerialType; //! The raw enum type enum T { A = 10, B = 20, C = 30, D = 40, }; //! For backwards compatibility typedef T t; public: // ---------------------------------------------------------------------- // Constants // ---------------------------------------------------------------------- enum { //! The size of the serial representation SERIALIZED_SIZE = sizeof(SerialType), //! The number of enumerated constants NUM_CONSTANTS = 4, }; public: // ---------------------------------------------------------------------- // Constructors // ---------------------------------------------------------------------- //! Constructor (default value of C) E2() { this->e = C; } //! Constructor (user-provided value) E2( const T e1 //!< The raw enum value ) { this->e = e1; } //! Copy constructor E2( const E2& obj //!< The source object ) { this->e = obj.e; } public: // ---------------------------------------------------------------------- // Operators // ---------------------------------------------------------------------- //! Copy assignment operator (object) E2& operator=( const E2& obj //!< The source object ); //! Copy assignment operator (raw enum) E2& operator=( T e1 //!< The enum value ); //! Conversion operator operator T() const { return this->e; } //! Equality operator bool operator==(T e1) const { return this->e == e1; } //! Inequality operator bool operator!=(T e1) const { return !(*this == e1); } #ifdef BUILD_UT //! Ostream operator friend std::ostream& operator<<( std::ostream& os, //!< The ostream const E2& obj //!< The object ); #endif public: // ---------------------------------------------------------------------- // Member functions // ---------------------------------------------------------------------- //! Check raw enum value for validity bool isValid() const; //! Serialize raw enum value to SerialType Fw::SerializeStatus serializeTo( Fw::SerialBufferBase& buffer, //!< The serial buffer Fw::Endianness mode = Fw::Endianness::BIG //!< Endianness of serialized buffer ) const; //! Deserialize raw enum value from SerialType Fw::SerializeStatus deserializeFrom( Fw::SerialBufferBase& buffer, //!< The serial buffer Fw::Endianness mode = Fw::Endianness::BIG //!< Endianness of serialized buffer ); #if FW_SERIALIZABLE_TO_STRING //! Convert enum to string void toString( Fw::StringBase& sb //!< The StringBase object to hold the result ) const; #endif public: // ---------------------------------------------------------------------- // Member variables // ---------------------------------------------------------------------- //! The raw enum value T e; }; #endif