// ====================================================================== // \title PrimitiveSerializableAc.cpp // \author Generated by fpp-to-cpp // \brief cpp file for Primitive struct // ====================================================================== #include "cstdio" #include "cstring" #include "Fw/Types/Assert.hpp" #include "Fw/Types/StringUtils.hpp" #include "PrimitiveSerializableAc.hpp" // ---------------------------------------------------------------------- // StringSize80 class // ---------------------------------------------------------------------- Primitive::StringSize80 :: StringSize80() : StringBase() { this->m_buf[0] = 0; } Primitive::StringSize80 :: StringSize80(const char* src) : StringBase() { Fw::StringUtils::string_copy(this->m_buf, src, sizeof(this->m_buf)); } Primitive::StringSize80 :: StringSize80(const Fw::StringBase& src) : StringBase() { Fw::StringUtils::string_copy(this->m_buf, src.toChar(), sizeof(this->m_buf)); } Primitive::StringSize80 :: StringSize80(const StringSize80& src) : StringBase() { Fw::StringUtils::string_copy(this->m_buf, src.toChar(), sizeof(this->m_buf)); } Primitive::StringSize80 :: ~StringSize80() { } Primitive::StringSize80& Primitive::StringSize80 :: operator=(const StringSize80& other) { if (this == &other) { return *this; } Fw::StringUtils::string_copy(this->m_buf, other.toChar(), sizeof(this->m_buf)); return *this; } Primitive::StringSize80& Primitive::StringSize80 :: operator=(const Fw::StringBase& other) { if (this == &other) { return *this; } Fw::StringUtils::string_copy(this->m_buf, other.toChar(), sizeof(this->m_buf)); return *this; } Primitive::StringSize80& Primitive::StringSize80 :: operator=(const char* other) { Fw::StringUtils::string_copy(this->m_buf, other, sizeof(this->m_buf)); return *this; } const char* Primitive::StringSize80 :: toChar() const { return this->m_buf; } NATIVE_UINT_TYPE Primitive::StringSize80 :: getCapacity() const { return sizeof(this->m_buf); } // ---------------------------------------------------------------------- // Constructors // ---------------------------------------------------------------------- Primitive :: Primitive() : Serializable(), m_varF64(0.0), m_varI16(0), m_varI32(0), m_varI64(0), m_varI8(0), m_varU16(0), m_varU32(0), m_varU64(0), m_varU8(0), m_varBool(false), m_varString("") { for (NATIVE_UINT_TYPE i = 0; i < 3; i++) { this->m_varF32[i] = 0.0f; } } Primitive :: Primitive( const Type_of_varF32& varF32, F64 varF64, I16 varI16, I32 varI32, I64 varI64, I8 varI8, U16 varU16, U32 varU32, U64 varU64, U8 varU8, bool varBool, const StringSize80& varString ) : Serializable(), m_varF64(varF64), m_varI16(varI16), m_varI32(varI32), m_varI64(varI64), m_varI8(varI8), m_varU16(varU16), m_varU32(varU32), m_varU64(varU64), m_varU8(varU8), m_varBool(varBool), m_varString(varString) { for (NATIVE_UINT_TYPE i = 0; i < 3; i++) { this->m_varF32[i] = varF32[i]; } } Primitive :: Primitive(const Primitive& obj) : Serializable(), m_varF64(obj.m_varF64), m_varI16(obj.m_varI16), m_varI32(obj.m_varI32), m_varI64(obj.m_varI64), m_varI8(obj.m_varI8), m_varU16(obj.m_varU16), m_varU32(obj.m_varU32), m_varU64(obj.m_varU64), m_varU8(obj.m_varU8), m_varBool(obj.m_varBool), m_varString(obj.m_varString) { for (NATIVE_UINT_TYPE i = 0; i < 3; i++) { this->m_varF32[i] = obj.m_varF32[i]; } } Primitive :: Primitive( F32 varF32, F64 varF64, I16 varI16, I32 varI32, I64 varI64, I8 varI8, U16 varU16, U32 varU32, U64 varU64, U8 varU8, bool varBool, const StringSize80& varString ) : Serializable(), m_varF64(varF64), m_varI16(varI16), m_varI32(varI32), m_varI64(varI64), m_varI8(varI8), m_varU16(varU16), m_varU32(varU32), m_varU64(varU64), m_varU8(varU8), m_varBool(varBool), m_varString(varString) { for (NATIVE_UINT_TYPE i = 0; i < 3; i++) { this->m_varF32[i] = varF32; } } // ---------------------------------------------------------------------- // Operators // ---------------------------------------------------------------------- Primitive& Primitive :: operator=(const Primitive& obj) { if (this == &obj) { return *this; } set(obj.m_varF32, obj.m_varF64, obj.m_varI16, obj.m_varI32, obj.m_varI64, obj.m_varI8, obj.m_varU16, obj.m_varU32, obj.m_varU64, obj.m_varU8, obj.m_varBool, obj.m_varString); return *this; } bool Primitive :: operator==(const Primitive& obj) const { // Compare non-array members if (!( (this->m_varF64 == obj.m_varF64) && (this->m_varI16 == obj.m_varI16) && (this->m_varI32 == obj.m_varI32) && (this->m_varI64 == obj.m_varI64) && (this->m_varI8 == obj.m_varI8) && (this->m_varU16 == obj.m_varU16) && (this->m_varU32 == obj.m_varU32) && (this->m_varU64 == obj.m_varU64) && (this->m_varU8 == obj.m_varU8) && (this->m_varBool == obj.m_varBool) && (this->m_varString == obj.m_varString) )) { return false; } // Compare array members if (!(this->m_varF32 == obj.m_varF32)) { for (NATIVE_UINT_TYPE i = 0; i < 3; i++) { if (!(this->m_varF32[i] == obj.m_varF32[i])) { return false; } } } return true; } bool Primitive :: operator!=(const Primitive& obj) const { return !(*this == obj); } #ifdef BUILD_UT std::ostream& operator<<(std::ostream& os, const Primitive& obj) { Fw::String s; obj.toString(s); os << s.toChar(); return os; } #endif // ---------------------------------------------------------------------- // Member functions // ---------------------------------------------------------------------- Fw::SerializeStatus Primitive :: serialize(Fw::SerializeBufferBase& buffer) const { Fw::SerializeStatus status; for (NATIVE_UINT_TYPE i = 0; i < 3; i++) { status = buffer.serialize(this->m_varF32[i]); if (status != Fw::FW_SERIALIZE_OK) { return status; } } status = buffer.serialize(this->m_varF64); if (status != Fw::FW_SERIALIZE_OK) { return status; } status = buffer.serialize(this->m_varI16); if (status != Fw::FW_SERIALIZE_OK) { return status; } status = buffer.serialize(this->m_varI32); if (status != Fw::FW_SERIALIZE_OK) { return status; } status = buffer.serialize(this->m_varI64); if (status != Fw::FW_SERIALIZE_OK) { return status; } status = buffer.serialize(this->m_varI8); if (status != Fw::FW_SERIALIZE_OK) { return status; } status = buffer.serialize(this->m_varU16); if (status != Fw::FW_SERIALIZE_OK) { return status; } status = buffer.serialize(this->m_varU32); if (status != Fw::FW_SERIALIZE_OK) { return status; } status = buffer.serialize(this->m_varU64); if (status != Fw::FW_SERIALIZE_OK) { return status; } status = buffer.serialize(this->m_varU8); if (status != Fw::FW_SERIALIZE_OK) { return status; } status = buffer.serialize(this->m_varBool); if (status != Fw::FW_SERIALIZE_OK) { return status; } status = buffer.serialize(this->m_varString); if (status != Fw::FW_SERIALIZE_OK) { return status; } return status; } Fw::SerializeStatus Primitive :: deserialize(Fw::SerializeBufferBase& buffer) { Fw::SerializeStatus status; for (NATIVE_UINT_TYPE i = 0; i < 3; i++) { status = buffer.deserialize(this->m_varF32[i]); if (status != Fw::FW_SERIALIZE_OK) { return status; } } status = buffer.deserialize(this->m_varF64); if (status != Fw::FW_SERIALIZE_OK) { return status; } status = buffer.deserialize(this->m_varI16); if (status != Fw::FW_SERIALIZE_OK) { return status; } status = buffer.deserialize(this->m_varI32); if (status != Fw::FW_SERIALIZE_OK) { return status; } status = buffer.deserialize(this->m_varI64); if (status != Fw::FW_SERIALIZE_OK) { return status; } status = buffer.deserialize(this->m_varI8); if (status != Fw::FW_SERIALIZE_OK) { return status; } status = buffer.deserialize(this->m_varU16); if (status != Fw::FW_SERIALIZE_OK) { return status; } status = buffer.deserialize(this->m_varU32); if (status != Fw::FW_SERIALIZE_OK) { return status; } status = buffer.deserialize(this->m_varU64); if (status != Fw::FW_SERIALIZE_OK) { return status; } status = buffer.deserialize(this->m_varU8); if (status != Fw::FW_SERIALIZE_OK) { return status; } status = buffer.deserialize(this->m_varBool); if (status != Fw::FW_SERIALIZE_OK) { return status; } status = buffer.deserialize(this->m_varString); if (status != Fw::FW_SERIALIZE_OK) { return status; } return status; } #if FW_SERIALIZABLE_TO_STRING void Primitive :: toString(Fw::StringBase& sb) const { static const char* formatString = "( " "m_varF32 = [ %f, " "%f, " "%f ], " "m_varF64 = %f, " "m_varI16 = %" PRIi16 ", " "m_varI32 = %" PRIi32 ", " "m_varI64 = %" PRIi64 ", " "m_varI8 = %" PRIi8 ", " "m_varU16 = %" PRIu16 ", " "m_varU32 = %" PRIu32 ", " "m_varU64 = %" PRIu64 ", " "m_varU8 = %" PRIu8 ", " "m_varBool = %d, " "m_varString = %s" " )"; char outputString[FW_SERIALIZABLE_TO_STRING_BUFFER_SIZE]; (void) snprintf( outputString, FW_SERIALIZABLE_TO_STRING_BUFFER_SIZE, formatString, this->m_varF32[0], this->m_varF32[1], this->m_varF32[2], this->m_varF64, this->m_varI16, this->m_varI32, this->m_varI64, this->m_varI8, this->m_varU16, this->m_varU32, this->m_varU64, this->m_varU8, this->m_varBool, this->m_varString.toChar() ); outputString[FW_SERIALIZABLE_TO_STRING_BUFFER_SIZE-1] = 0; // NULL terminate sb = outputString; } #endif // ---------------------------------------------------------------------- // Setter functions // ---------------------------------------------------------------------- void Primitive :: set( const Type_of_varF32& varF32, F64 varF64, I16 varI16, I32 varI32, I64 varI64, I8 varI8, U16 varU16, U32 varU32, U64 varU64, U8 varU8, bool varBool, const StringSize80& varString ) { this->m_varF64 = varF64; this->m_varI16 = varI16; this->m_varI32 = varI32; this->m_varI64 = varI64; this->m_varI8 = varI8; this->m_varU16 = varU16; this->m_varU32 = varU32; this->m_varU64 = varU64; this->m_varU8 = varU8; this->m_varBool = varBool; this->m_varString = varString; for (NATIVE_UINT_TYPE i = 0; i < 3; i++) { this->m_varF32[i] = varF32[i]; } } void Primitive :: setvarF32(const Type_of_varF32& varF32) { for (NATIVE_UINT_TYPE i = 0; i < 3; i++) { this->m_varF32[i] = varF32[i]; } } void Primitive :: setvarF64(F64 varF64) { this->m_varF64 = varF64; } void Primitive :: setvarI16(I16 varI16) { this->m_varI16 = varI16; } void Primitive :: setvarI32(I32 varI32) { this->m_varI32 = varI32; } void Primitive :: setvarI64(I64 varI64) { this->m_varI64 = varI64; } void Primitive :: setvarI8(I8 varI8) { this->m_varI8 = varI8; } void Primitive :: setvarU16(U16 varU16) { this->m_varU16 = varU16; } void Primitive :: setvarU32(U32 varU32) { this->m_varU32 = varU32; } void Primitive :: setvarU64(U64 varU64) { this->m_varU64 = varU64; } void Primitive :: setvarU8(U8 varU8) { this->m_varU8 = varU8; } void Primitive :: setvarBool(bool varBool) { this->m_varBool = varBool; } void Primitive :: setvarString(const StringSize80& varString) { this->m_varString = varString; }