feat(datastore): add getter and setter for float

This commit is contained in:
fallenoak 2023-02-09 23:49:06 -06:00
parent 1113e846da
commit a4dfbeff7a
No known key found for this signature in database
GPG key ID: 7628F8E61AEA070D
3 changed files with 44 additions and 0 deletions

View file

@ -106,6 +106,22 @@ CDataStore& CDataStore::Get(uint64_t& val) {
return *this;
}
CDataStore& CDataStore::Get(float& 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<float*>(ptr);
this->m_read += bytes;
}
return *this;
}
void CDataStore::GetBufferParams(const void** data, uint32_t* size, uint32_t* alloc) const {
if (data) {
*data = this->m_data;
@ -229,6 +245,20 @@ CDataStore& CDataStore::Put(uint64_t val) {
return *this;
}
CDataStore& CDataStore::Put(float val) {
STORM_ASSERT(!this->IsFinal());
this->FetchWrite(this->m_size, sizeof(val), nullptr, 0);
auto ofs = this->m_size - this->m_base;
auto ptr = &this->m_data[ofs];
*reinterpret_cast<float*>(ptr) = val;
this->m_size += sizeof(val);
return *this;
}
CDataStore& CDataStore::PutArray(const uint8_t* val, uint32_t count) {
STORM_ASSERT(!this->IsFinal());
STORM_ASSERT(val || !count);

View file

@ -33,12 +33,14 @@ class CDataStore {
CDataStore& Get(uint16_t& val);
CDataStore& Get(uint32_t& val);
CDataStore& Get(uint64_t& val);
CDataStore& Get(float& val);
CDataStore& GetDataInSitu(void*& val, uint32_t bytes);
int32_t IsFinal();
CDataStore& Put(uint8_t val);
CDataStore& Put(uint16_t val);
CDataStore& Put(uint32_t val);
CDataStore& Put(uint64_t val);
CDataStore& Put(float val);
CDataStore& PutArray(const uint8_t* val, uint32_t count);
CDataStore& PutData(const void* val, uint32_t bytes);
CDataStore& Set(uint32_t pos, uint16_t val);