mirror of
https://github.com/nasa/fpp.git
synced 2025-12-13 08:41:15 -06:00
140 lines
4.5 KiB
C++
140 lines
4.5 KiB
C++
/*
|
|
* S1.hpp
|
|
*
|
|
* Created on: Thursday, 07 July 2022
|
|
* Author: tchieu
|
|
*
|
|
*/
|
|
#ifndef S1_HPP_
|
|
#define S1_HPP_
|
|
|
|
#include <Fw/Types/BasicTypes.hpp>
|
|
#include <Fw/Types/Serializable.hpp>
|
|
#if FW_SERIALIZABLE_TO_STRING
|
|
#include <Fw/Types/StringType.hpp>
|
|
#include <cstdio> // snprintf
|
|
#ifdef BUILD_UT
|
|
#include <iostream>
|
|
#include <Fw/Types/String.hpp>
|
|
#endif
|
|
#endif
|
|
|
|
namespace M {
|
|
|
|
class S1 : public Fw::Serializable {
|
|
|
|
|
|
public:
|
|
class mStringString : public Fw::StringBase {
|
|
public:
|
|
|
|
enum {
|
|
SERIALIZED_SIZE = 80 + sizeof(FwBuffSizeType) //!<size of buffer + storage of two size words
|
|
};
|
|
|
|
mStringString(const char* src); //!< char array constructor
|
|
mStringString(const Fw::StringBase& src); //!< string base constructor
|
|
mStringString(const mStringString& src); //!< string base constructor
|
|
mStringString(); //!< default constructor
|
|
mStringString& operator=(const mStringString& other); //!< assignment operator
|
|
mStringString& operator=(const Fw::StringBase& other); //!< other string assignment operator
|
|
mStringString& operator=(const char* other); //!< char* assignment operator
|
|
~mStringString(); //!< destructor
|
|
|
|
const char* toChar() const; //!< retrieves char buffer of string
|
|
NATIVE_UINT_TYPE getCapacity() const ;
|
|
|
|
private:
|
|
|
|
char m_buf[80]; //!< buffer for string storage
|
|
};
|
|
|
|
|
|
public:
|
|
|
|
enum {
|
|
SERIALIZED_SIZE =
|
|
sizeof(F32) +
|
|
sizeof(F64) +
|
|
sizeof(I16) +
|
|
sizeof(I32) +
|
|
sizeof(I64) +
|
|
sizeof(I8) +
|
|
sizeof(U16) +
|
|
sizeof(U32) +
|
|
sizeof(U64) +
|
|
sizeof(U8) +
|
|
sizeof(bool) +
|
|
S1::mStringString::SERIALIZED_SIZE
|
|
}; //!< serializable size of S1
|
|
|
|
S1(); //!< Default constructor
|
|
S1(const S1* src); //!< pointer copy constructor
|
|
S1(const S1& src); //!< reference copy constructor
|
|
S1(F32 mF32, F64 mF64, I16 mI16, I32 mI32, I64 mI64, I8 mI8, U16 mU16, U32 mU32, U64 mU64, U8 mU8, bool mBool, const S1::mStringString& mString); //!< constructor with arguments
|
|
S1& operator=(const S1& src); //!< equal operator
|
|
bool operator==(const S1& src) const; //!< equality operator
|
|
#ifdef BUILD_UT
|
|
// to support GoogleTest framework in unit tests
|
|
friend std::ostream& operator<<(std::ostream& os, const S1& obj);
|
|
#endif
|
|
|
|
void set(F32 mF32, F64 mF64, I16 mI16, I32 mI32, I64 mI64, I8 mI8, U16 mU16, U32 mU32, U64 mU64, U8 mU8, bool mBool, const S1::mStringString& mString); //!< set values
|
|
|
|
F32 getmF32() const; //!< get member mF32
|
|
F64 getmF64() const; //!< get member mF64
|
|
I16 getmI16() const; //!< get member mI16
|
|
I32 getmI32() const; //!< get member mI32
|
|
I64 getmI64() const; //!< get member mI64
|
|
I8 getmI8() const; //!< get member mI8
|
|
U16 getmU16() const; //!< get member mU16
|
|
U32 getmU32() const; //!< get member mU32
|
|
U64 getmU64() const; //!< get member mU64
|
|
U8 getmU8() const; //!< get member mU8
|
|
bool getmBool() const; //!< get member mBool
|
|
const S1::mStringString& getmString() const; //!< get member mString
|
|
|
|
void setmF32(F32 val); //!< set member mF32
|
|
void setmF64(F64 val); //!< set member mF64
|
|
void setmI16(I16 val); //!< set member mI16
|
|
void setmI32(I32 val); //!< set member mI32
|
|
void setmI64(I64 val); //!< set member mI64
|
|
void setmI8(I8 val); //!< set member mI8
|
|
void setmU16(U16 val); //!< set member mU16
|
|
void setmU32(U32 val); //!< set member mU32
|
|
void setmU64(U64 val); //!< set member mU64
|
|
void setmU8(U8 val); //!< set member mU8
|
|
void setmBool(bool val); //!< set member mBool
|
|
void setmString(const S1::mStringString& val); //!< set member mString
|
|
|
|
|
|
Fw::SerializeStatus serialize(Fw::SerializeBufferBase& buffer) const; //!< serialization function
|
|
Fw::SerializeStatus deserialize(Fw::SerializeBufferBase& buffer); //!< deserialization function
|
|
#if FW_SERIALIZABLE_TO_STRING || BUILD_UT
|
|
void toString(Fw::StringBase& text) const; //!< generate text from serializable
|
|
#endif
|
|
protected:
|
|
|
|
enum {
|
|
TYPE_ID = 0xC75528FE //!< type id
|
|
};
|
|
|
|
F32 m_mF32; //<! mF32 -
|
|
F64 m_mF64; //<! mF64 -
|
|
I16 m_mI16; //<! mI16 -
|
|
I32 m_mI32; //<! mI32 -
|
|
I64 m_mI64; //<! mI64 -
|
|
I8 m_mI8; //<! mI8 -
|
|
U16 m_mU16; //<! mU16 -
|
|
U32 m_mU32; //<! mU32 -
|
|
U64 m_mU64; //<! mU64 -
|
|
U8 m_mU8; //<! mU8 -
|
|
bool m_mBool; //<! mBool -
|
|
S1::mStringString m_mString; //<! mString -
|
|
private:
|
|
|
|
};
|
|
} // end namespace M
|
|
#endif /* S1_HPP_ */
|
|
|