// ====================================================================== // \title Modules4SerializableAc.cpp // \author Generated by fpp-to-cpp // \brief cpp file for Modules4 struct // ====================================================================== #include "cstdio" #include "cstring" #include "Fw/Types/Assert.hpp" #include "Fw/Types/StringUtils.hpp" #include "Modules4SerializableAc.hpp" // ---------------------------------------------------------------------- // Constructors // ---------------------------------------------------------------------- Modules4 :: Modules4() : Serializable() { for (NATIVE_UINT_TYPE i = 0; i < 3; i++) { this->arr1[i] = M::Modules2(M::Modules1(0, 0.0f)); } for (NATIVE_UINT_TYPE i = 0; i < 6; i++) { this->arr2[i] = M::Modules2(M::Modules1(0, 0.0f)); } } Modules4 :: Modules4( const Type_of_arr1& arr1, const Type_of_arr2& arr2 ) : Serializable() { for (NATIVE_UINT_TYPE i = 0; i < 3; i++) { this->arr1[i] = arr1[i]; } for (NATIVE_UINT_TYPE i = 0; i < 6; i++) { this->arr2[i] = arr2[i]; } } Modules4 :: Modules4(const Modules4& obj) : Serializable() { for (NATIVE_UINT_TYPE i = 0; i < 3; i++) { this->arr1[i] = obj.arr1[i]; } for (NATIVE_UINT_TYPE i = 0; i < 6; i++) { this->arr2[i] = obj.arr2[i]; } } Modules4 :: Modules4( const M::Modules2& arr1, const M::Modules2& arr2 ) : Serializable() { for (NATIVE_UINT_TYPE i = 0; i < 3; i++) { this->arr1[i] = arr1; } for (NATIVE_UINT_TYPE i = 0; i < 6; i++) { this->arr2[i] = arr2; } } // ---------------------------------------------------------------------- // Operators // ---------------------------------------------------------------------- Modules4& Modules4 :: operator=(const Modules4& obj) { if (this == &obj) { return *this; } set(obj.arr1, obj.arr2); return *this; } bool Modules4 :: operator==(const Modules4& obj) const { // Compare array members if (!(this->arr1 == obj.arr1)) { for (NATIVE_UINT_TYPE i = 0; i < 3; i++) { if (!(this->arr1[i] == obj.arr1[i])) { return false; } } } if (!(this->arr2 == obj.arr2)) { for (NATIVE_UINT_TYPE i = 0; i < 6; i++) { if (!(this->arr2[i] == obj.arr2[i])) { return false; } } } return true; } bool Modules4 :: operator!=(const Modules4& obj) const { return !(*this == obj); } #ifdef BUILD_UT std::ostream& operator<<(std::ostream& os, const Modules4& obj) { Fw::String s; obj.toString(s); os << s.toChar(); return os; } #endif // ---------------------------------------------------------------------- // Member functions // ---------------------------------------------------------------------- Fw::SerializeStatus Modules4 :: serialize(Fw::SerializeBufferBase& buffer) const { Fw::SerializeStatus status; for (NATIVE_UINT_TYPE i = 0; i < 3; i++) { status = buffer.serialize(this->arr1[i]); if (status != Fw::FW_SERIALIZE_OK) { return status; } } for (NATIVE_UINT_TYPE i = 0; i < 6; i++) { status = buffer.serialize(this->arr2[i]); if (status != Fw::FW_SERIALIZE_OK) { return status; } } return status; } Fw::SerializeStatus Modules4 :: deserialize(Fw::SerializeBufferBase& buffer) { Fw::SerializeStatus status; for (NATIVE_UINT_TYPE i = 0; i < 3; i++) { status = buffer.deserialize(this->arr1[i]); if (status != Fw::FW_SERIALIZE_OK) { return status; } } for (NATIVE_UINT_TYPE i = 0; i < 6; i++) { status = buffer.deserialize(this->arr2[i]); if (status != Fw::FW_SERIALIZE_OK) { return status; } } return status; } #if FW_SERIALIZABLE_TO_STRING void Modules4 :: toString(Fw::StringBase& sb) const { static const char* formatString = "( " "arr1 = [ %s, " "%s, " "%s ], " "arr2 = [ %s, " "%s, " "%s, " "%s, " "%s, " "%s ]" " )"; // Declare strings to hold any serializable toString() arguments Fw::String arr1Str[3]; Fw::String arr2Str[6]; // Call toString for arrays and serializable types for (NATIVE_UINT_TYPE i = 0; i < 3; i++) { this->arr1[i].toString(arr1Str[i]); } for (NATIVE_UINT_TYPE i = 0; i < 6; i++) { this->arr2[i].toString(arr2Str[i]); } char outputString[FW_SERIALIZABLE_TO_STRING_BUFFER_SIZE]; (void) snprintf( outputString, FW_SERIALIZABLE_TO_STRING_BUFFER_SIZE, formatString, arr1Str[0].toChar(), arr1Str[1].toChar(), arr1Str[2].toChar(), arr2Str[0].toChar(), arr2Str[1].toChar(), arr2Str[2].toChar(), arr2Str[3].toChar(), arr2Str[4].toChar(), arr2Str[5].toChar() ); outputString[FW_SERIALIZABLE_TO_STRING_BUFFER_SIZE-1] = 0; // NULL terminate sb = outputString; } #endif // ---------------------------------------------------------------------- // Setter functions // ---------------------------------------------------------------------- void Modules4 :: set( const Type_of_arr1& arr1, const Type_of_arr2& arr2 ) { for (NATIVE_UINT_TYPE i = 0; i < 3; i++) { this->arr1[i] = arr1[i]; } for (NATIVE_UINT_TYPE i = 0; i < 6; i++) { this->arr2[i] = arr2[i]; } } void Modules4 :: setarr1(const Type_of_arr1& arr1) { for (NATIVE_UINT_TYPE i = 0; i < 3; i++) { this->arr1[i] = arr1[i]; } } void Modules4 :: setarr2(const Type_of_arr2& arr2) { for (NATIVE_UINT_TYPE i = 0; i < 6; i++) { this->arr2[i] = arr2[i]; } }