[ox/fs] Cleanup FileStoreTemplate::read
This commit is contained in:
parent
db04367579
commit
3938cb0282
@ -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>
|
||||
|
Loading…
x
Reference in New Issue
Block a user