| 183 | * @brief FatFS 文件操作实现 |
| 184 | */ |
| 185 | class FatFsFileOps : public vfs::FileOps { |
| 186 | public: |
| 187 | explicit FatFsFileOps(FatFsFileSystem* fs) : fs_(fs) {} |
| 188 | |
| 189 | /** |
| 190 | * @brief 打开文件,准备底层 FIL 句柄 |
| 191 | * @param file 文件对象 |
| 192 | * @return Expected<void> 成功或错误 |
| 193 | */ |
| 194 | auto Open(vfs::File* file) -> Expected<void> override; |
| 195 | |
| 196 | /** |
| 197 | * @brief 从文件读取数据 |
| 198 | * @param file 文件对象 |
| 199 | * @param buf 读取缓冲区 |
| 200 | * @param count 请求读取的字节数 |
| 201 | * @return Expected<size_t> 实际读取字节数或错误 |
| 202 | */ |
| 203 | auto Read(vfs::File* file, void* buf, size_t count) |
| 204 | -> Expected<size_t> override; |
| 205 | |
| 206 | /** |
| 207 | * @brief 向文件写入数据 |
| 208 | * @param file 文件对象 |
| 209 | * @param buf 写入数据缓冲区 |
| 210 | * @param count 请求写入的字节数 |
| 211 | * @return Expected<size_t> 实际写入字节数或错误 |
| 212 | */ |
| 213 | auto Write(vfs::File* file, const void* buf, size_t count) |
| 214 | -> Expected<size_t> override; |
| 215 | |
| 216 | /** |
| 217 | * @brief 移动文件读写位置 |
| 218 | * @param file 文件对象 |
| 219 | * @param offset 偏移量 |
| 220 | * @param whence 定位基准(kSet / kCur / kEnd) |
| 221 | * @return Expected<uint64_t> 新的文件偏移量或错误 |
| 222 | */ |
| 223 | auto Seek(vfs::File* file, int64_t offset, vfs::SeekWhence whence) |
| 224 | -> Expected<uint64_t> override; |
| 225 | |
| 226 | /** |
| 227 | * @brief 关闭文件,释放底层 FIL 对象 |
| 228 | * @param file 文件对象 |
| 229 | * @return Expected<void> 成功或错误 |
| 230 | */ |
| 231 | auto Close(vfs::File* file) -> Expected<void> override; |
| 232 | |
| 233 | /** |
| 234 | * @brief 读取目录条目 |
| 235 | * @param file 目录文件对象 |
| 236 | * @param dirent 输出缓冲区 |
| 237 | * @param count 最多读取的条目数 |
| 238 | * @return Expected<size_t> 实际读取条目数或错误 |
| 239 | */ |
| 240 | auto ReadDir(vfs::File* file, vfs::DirEntry* dirent, size_t count) |
| 241 | -> Expected<size_t> override; |
| 242 |
nothing calls this directly
no outgoing calls
no test coverage detected