// ====================================================================== // \title String1ArrayAc.hpp // \author Generated by fpp-to-cpp // \brief hpp file for String1 array // ====================================================================== #ifndef String1ArrayAc_HPP #define String1ArrayAc_HPP #include #include "Fw/FPrimeBasicTypes.hpp" #include "Fw/Types/ExternalString.hpp" #include "Fw/Types/Serializable.hpp" #include "Fw/Types/String.hpp" //! An array of strings class String1 : public Fw::Serializable { public: // ---------------------------------------------------------------------- // Types // ---------------------------------------------------------------------- //! The element type using ElementType = Fw::ExternalString; public: // ---------------------------------------------------------------------- // Constants // ---------------------------------------------------------------------- enum { //! The size of the array SIZE = 3, //! The string size of each element ELEMENT_STRING_SIZE = 80, //! The buffer size of each element ELEMENT_BUFFER_SIZE = Fw::StringBase::BUFFER_SIZE(ELEMENT_STRING_SIZE), //! The serialized size of each element ELEMENT_SERIALIZED_SIZE = Fw::StringBase::STATIC_SERIALIZED_SIZE(ELEMENT_STRING_SIZE), //! The size of the serial representation SERIALIZED_SIZE = SIZE * ELEMENT_SERIALIZED_SIZE }; public: // ---------------------------------------------------------------------- // Constructors // ---------------------------------------------------------------------- //! Constructor (default value) String1(); //! Constructor (primitive array) String1( const ElementType (&a)[SIZE] //!< The array ); //! Constructor (single element) explicit String1( const Fw::StringBase& e //!< The element ); //! Constructor (initializer list) String1( const std::initializer_list& il //!< The initializer list ); //! Copy constructor String1( const String1& obj //!< The source object ); public: // ---------------------------------------------------------------------- // Operators // ---------------------------------------------------------------------- //! Subscript operator ElementType& operator[]( const FwSizeType i //!< The subscript index ); //! Const subscript operator const ElementType& operator[]( const FwSizeType i //!< The subscript index ) const; //! Copy assignment operator (object) String1& operator=( const String1& obj //!< The source object ); //! Copy assignment operator (primitive array) String1& operator=( const ElementType (&a)[SIZE] //!< The source array ); //! Copy assignment operator (initializer list) String1& operator=( const std::initializer_list& il //!< The initializer list ); //! Copy assignment operator (single element) String1& operator=( const ElementType& e //!< The element ); //! Equality operator bool operator==( const String1& obj //!< The other object ) const; //! Inequality operator bool operator!=( const String1& obj //!< The other object ) const; #ifdef BUILD_UT //! Ostream operator friend std::ostream& operator<<( std::ostream& os, //!< The ostream const String1& obj //!< The object ); #endif public: // ---------------------------------------------------------------------- // Public member functions // ---------------------------------------------------------------------- //! Serialization Fw::SerializeStatus serializeTo( Fw::LinearBufferBase& buffer, //!< The serial buffer Fw::Endianness mode = Fw::Endianness::BIG //!< Endianness of serialized buffer ) const; //! Deserialization Fw::SerializeStatus deserializeFrom( Fw::LinearBufferBase& buffer, //!< The serial buffer Fw::Endianness mode = Fw::Endianness::BIG //!< Endianness of serialized buffer ); //! Get the dynamic serialized size of the array FwSizeType serializedSize() const; #if FW_SERIALIZABLE_TO_STRING //! Convert array to string void toString( Fw::StringBase& sb //!< The StringBase object to hold the result ) const; #endif private: // ---------------------------------------------------------------------- // Private member functions // ---------------------------------------------------------------------- //! Initialize elements void initElements(); private: // ---------------------------------------------------------------------- // Member variables // ---------------------------------------------------------------------- //! The char buffers char buffers[SIZE][ELEMENT_BUFFER_SIZE]; //! The array elements ElementType elements[SIZE]; }; #endif