From 7ce81497e2592d5787b9a4285d6a89ae09f79022 Mon Sep 17 00:00:00 2001 From: jhurst Date: Thu, 28 Nov 2019 10:14:27 -0800 Subject: [PATCH] created new type ArchivableUi16 --- src/KM_util.h | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) 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; -- 2.30.2