[ox/fs] Cleanup FileStoreTemplate::read

This commit is contained in:
Gary Talent 2019-06-21 23:30:06 -05:00
parent db04367579
commit 3938cb0282

View File

@ -313,27 +313,36 @@ Error FileStoreTemplate<size_t>::remove(InodeId_t id) {
template<typename size_t>
Error FileStoreTemplate<size_t>::read(InodeId_t id, void *data, FsSize_t dataSize, FsSize_t *size) const {
oxTrace("ox::fs::FileStoreTemplate::read") << "Attempting to read from inode" << id;
auto src = find(id);
if (src.valid()) {
auto srcData = m_buffer->template dataOf<uint8_t>(src);
oxTrace("ox::fs::FileStoreTemplate::read::found") << id << "found at"<< src.offset()
<< "with data section at" << srcData.offset();
oxTrace("ox::fs::FileStoreTemplate::read::outSize") << srcData.offset() << srcData.size() << dataSize;
if (srcData.valid() && srcData.size() <= dataSize) {
ox_memcpy(data, srcData, srcData.size());
if (size) {
*size = src.size();
}
return OxError(0);
} else {
oxTrace("ox::fs::FileStoreTemplate::read::fail") << "Could not read data section of item:" << id;
oxTrace("ox::fs::FileStoreTemplate::read::fail") << "Item data section size:" << srcData.size();
}
} else {
auto src = find(id);
// error check
if (!src.valid()) {
oxTrace("ox::fs::FileStoreTemplate::read::fail") << "Could not find requested item:" << id;
return OxError(1);
}
return OxError(1);
auto srcData = m_buffer->template dataOf<uint8_t>(src);
oxTrace("ox::fs::FileStoreTemplate::read::found") << id << "found at"<< src.offset()
<< "with data section at" << srcData.offset();
oxTrace("ox::fs::FileStoreTemplate::read::outSize") << srcData.offset() << srcData.size() << dataSize;
// error check
if (!(srcData.valid() && srcData.size() <= dataSize)) {
oxTrace("ox::fs::FileStoreTemplate::read::fail")
<< "Could not read data section of item:" << id;
oxTrace("ox::fs::FileStoreTemplate::read::fail").del("")
<< "Item data section size: " << srcData.size()
<< ", Expected size: " << dataSize;
return OxError(1);
}
ox_memcpy(data, srcData, srcData.size());
if (size) {
*size = src.size();
}
return OxError(0);
}
template<typename size_t>