From: jhurst Date: Thu, 28 Nov 2019 18:14:27 +0000 (-0800) Subject: created new type ArchivableUi16 X-Git-Tag: rel_2_10_35~2^2~12 X-Git-Url: https://git.carlh.net/gitweb/?a=commitdiff_plain;ds=sidebyside;h=7ce81497e2592d5787b9a4285d6a89ae09f79022;p=asdcplib.git created new type ArchivableUi16 --- diff --git a/src/KM_util.h b/src/KM_util.h index e8004c1..b209d27 100755 --- a/src/KM_util.h +++ b/src/KM_util.h @@ -256,6 +256,35 @@ namespace Kumu } }; + // + class ArchivableUi16 : public Kumu::IArchive + { + ui16_t m_Value; + + public: + ArchivableUi16() : m_Value(0) {} + ArchivableUi16(const ui16_t& value) : m_Value(value) {} + virtual ~ArchivableUi16() {} + + bool HasValue() const { return true; } + ui32_t ArchiveLength() const { return sizeof(ui16_t); } + + bool Archive(MemIOWriter* Writer) const { + if ( Writer == 0 ) return false; + return Writer->WriteUi16BE(m_Value); + } + + bool Unarchive(MemIOReader* Reader) { + if ( Reader == 0 ) return false; + return Reader->ReadUi16BE(&m_Value); + } + + const char* EncodeString(char* str_buf, ui32_t buf_len) const { + snprintf(str_buf, buf_len, "%hu", m_Value); + return str_buf; + } + }; + // typedef Kumu::ArchivableList StringList;