mirror of
https://github.com/thunderbrewhq/common.git
synced 2025-12-12 03:02:29 +00:00
feat(datastore): add getter for uint16_t
This commit is contained in:
parent
c1c685bdca
commit
1113e846da
3 changed files with 29 additions and 0 deletions
|
|
@ -58,6 +58,22 @@ CDataStore& CDataStore::Get(uint8_t& val) {
|
|||
return *this;
|
||||
}
|
||||
|
||||
CDataStore& CDataStore::Get(uint16_t& val) {
|
||||
STORM_ASSERT(this->IsFinal());
|
||||
|
||||
auto bytes = sizeof(val);
|
||||
|
||||
if (this->FetchRead(this->m_read, bytes)) {
|
||||
auto ofs = this->m_read - this->m_base;
|
||||
auto ptr = &this->m_data[ofs];
|
||||
val = *reinterpret_cast<uint16_t*>(ptr);
|
||||
|
||||
this->m_read += bytes;
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
CDataStore& CDataStore::Get(uint32_t& val) {
|
||||
STORM_ASSERT(this->IsFinal());
|
||||
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ class CDataStore {
|
|||
int32_t FetchRead(uint32_t pos, uint32_t bytes);
|
||||
int32_t FetchWrite(uint32_t pos, uint32_t bytes, const char* fileName, int32_t lineNumber);
|
||||
CDataStore& Get(uint8_t& val);
|
||||
CDataStore& Get(uint16_t& val);
|
||||
CDataStore& Get(uint32_t& val);
|
||||
CDataStore& Get(uint64_t& val);
|
||||
CDataStore& GetDataInSitu(void*& val, uint32_t bytes);
|
||||
|
|
|
|||
|
|
@ -21,6 +21,18 @@ TEST_CASE("CDataStore::Get", "[datastore]") {
|
|||
REQUIRE(readVal == writeVal);
|
||||
}
|
||||
|
||||
SECTION("gets uint16_t") {
|
||||
uint16_t writeVal = 0x1234;
|
||||
uint16_t readVal = -1;
|
||||
|
||||
CDataStore msg;
|
||||
msg.Put(writeVal);
|
||||
msg.Finalize();
|
||||
msg.Get(readVal);
|
||||
|
||||
REQUIRE(readVal == writeVal);
|
||||
}
|
||||
|
||||
SECTION("gets uint32_t") {
|
||||
uint32_t writeVal = 0x12345678;
|
||||
uint32_t readVal = 0x12345678;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue