diff --git a/common/datastore/CDataStore.cpp b/common/datastore/CDataStore.cpp index 0374c18..7087ce7 100644 --- a/common/datastore/CDataStore.cpp +++ b/common/datastore/CDataStore.cpp @@ -346,6 +346,14 @@ CDataStore& CDataStore::Set(uint32_t pos, uint16_t val) { return *this; } +void CDataStore::SetSize(uint32_t size) { + this->m_size = size; +} + +uint32_t CDataStore::Size() { + return this->m_size; +} + bool CDataStore::Sub8CBBF0(uint32_t a2) { return this->m_read <= this->m_size && this->m_size - this->m_read >= a2; } diff --git a/common/datastore/CDataStore.hpp b/common/datastore/CDataStore.hpp index 3f616b8..b1c5d6e 100644 --- a/common/datastore/CDataStore.hpp +++ b/common/datastore/CDataStore.hpp @@ -46,6 +46,8 @@ class CDataStore { CDataStore& PutData(const void* val, uint32_t bytes); CDataStore& PutString(const char* val); CDataStore& Set(uint32_t pos, uint16_t val); + void SetSize(uint32_t size); + uint32_t Size(); bool Sub8CBBF0(uint32_t a2); }; diff --git a/test/DataStore.cpp b/test/DataStore.cpp index 952098d..dd64126 100644 --- a/test/DataStore.cpp +++ b/test/DataStore.cpp @@ -108,3 +108,31 @@ TEST_CASE("CDataStore::Get", "[datastore]") { REQUIRE(msg.m_read == 0); } } + +TEST_CASE("CDataStore::SetSize", "[datastore]") { + SECTION("sets size") { + uint8_t writeVal = 8; + + CDataStore msg; + msg.Put(writeVal); + + CHECK(msg.Size() == 1); + + msg.SetSize(0); + + CHECK(msg.Size() == 0); + } +} + +TEST_CASE("CDataStore::Size", "[datastore]") { + SECTION("gets size") { + uint8_t writeVal1 = 8; + uint16_t writeVal2 = 9; + + CDataStore msg; + msg.Put(writeVal1); + msg.Put(writeVal2); + + REQUIRE(msg.Size() == 3); + } +}