lib/nfs/FileReader: pass std::span to OnNfsFileRead()

This commit is contained in:
Max Kellermann
2022-11-17 06:13:40 +01:00
parent 3278ad2ed8
commit 73dc8ff6bd
3 changed files with 10 additions and 6 deletions

View File

@@ -71,7 +71,7 @@ protected:
private: private:
/* virtual methods from NfsFileReader */ /* virtual methods from NfsFileReader */
void OnNfsFileOpen(uint64_t size) noexcept override; void OnNfsFileOpen(uint64_t size) noexcept override;
void OnNfsFileRead(const void *data, size_t size) noexcept override; void OnNfsFileRead(std::span<const std::byte> src) noexcept override;
void OnNfsFileError(std::exception_ptr &&e) noexcept override; void OnNfsFileError(std::exception_ptr &&e) noexcept override;
}; };
@@ -159,14 +159,14 @@ NfsInputStream::OnNfsFileOpen(uint64_t _size) noexcept
} }
void void
NfsInputStream::OnNfsFileRead(const void *data, size_t data_size) noexcept NfsInputStream::OnNfsFileRead(std::span<const std::byte> src) noexcept
{ {
const std::scoped_lock<Mutex> protect(mutex); const std::scoped_lock<Mutex> protect(mutex);
assert(!IsBufferFull()); assert(!IsBufferFull());
assert(IsBufferFull() == (GetBufferSpace() == 0)); assert(IsBufferFull() == (GetBufferSpace() == 0));
AppendToBuffer(data, data_size); AppendToBuffer(src.data(), src.size());
next_offset += data_size; next_offset += src.size();
DoRead(); DoRead();
} }

View File

@@ -239,7 +239,10 @@ NfsFileReader::OnNfsCallback(unsigned status, void *data) noexcept
break; break;
case State::READ: case State::READ:
OnNfsFileRead(data, status); OnNfsFileRead({
static_cast<const std::byte *>(data),
static_cast<std::size_t>(status),
});
break; break;
} }
} }

View File

@@ -28,6 +28,7 @@
#include <cstddef> #include <cstddef>
#include <cstdint> #include <cstdint>
#include <exception> #include <exception>
#include <span>
#include <string> #include <string>
#include <sys/stat.h> #include <sys/stat.h>
@@ -125,7 +126,7 @@ protected:
* *
* This method will be called from within the I/O thread. * This method will be called from within the I/O thread.
*/ */
virtual void OnNfsFileRead(const void *data, size_t size) noexcept = 0; virtual void OnNfsFileRead(std::span<const std::byte> src) noexcept = 0;
/** /**
* An error has occurred, which can be either while waiting * An error has occurred, which can be either while waiting