input/InputStreams: pass std::unique_lock<> to various methods

This commit is contained in:
Max Kellermann
2019-04-26 19:19:45 +02:00
parent 040573c636
commit 1b5c1f75a4
33 changed files with 212 additions and 156 deletions

View File

@@ -91,8 +91,9 @@ class CdioParanoiaInputStream final : public InputStream {
/* virtual methods from InputStream */
bool IsEOF() noexcept override;
size_t Read(void *ptr, size_t size) override;
void Seek(offset_type offset) override;
size_t Read(std::unique_lock<Mutex> &lock,
void *ptr, size_t size) override;
void Seek(std::unique_lock<Mutex> &lock, offset_type offset) override;
};
static constexpr Domain cdio_domain("cdio");
@@ -255,7 +256,8 @@ input_cdio_open(const char *uri,
}
void
CdioParanoiaInputStream::Seek(offset_type new_offset)
CdioParanoiaInputStream::Seek(std::unique_lock<Mutex> &,
offset_type new_offset)
{
if (new_offset > size)
throw FormatRuntimeError("Invalid offset to seek %ld (%ld)",
@@ -276,7 +278,8 @@ CdioParanoiaInputStream::Seek(offset_type new_offset)
}
size_t
CdioParanoiaInputStream::Read(void *ptr, size_t length)
CdioParanoiaInputStream::Read(std::unique_lock<Mutex> &,
void *ptr, size_t length)
{
size_t nbytes = 0;
char *wptr = (char *) ptr;

View File

@@ -49,8 +49,10 @@ public:
/* virtual methods from InputStream */
bool IsEOF() noexcept override;
size_t Read(void *ptr, size_t size) override;
void Seek(offset_type offset) override;
size_t Read(std::unique_lock<Mutex> &lock,
void *ptr, size_t size) override;
void Seek(std::unique_lock<Mutex> &lock,
offset_type offset) override;
};
gcc_const
@@ -79,7 +81,8 @@ input_ffmpeg_open(const char *uri,
}
size_t
FfmpegInputStream::Read(void *ptr, size_t read_size)
FfmpegInputStream::Read(std::unique_lock<Mutex> &,
void *ptr, size_t read_size)
{
size_t result;
@@ -99,7 +102,7 @@ FfmpegInputStream::IsEOF() noexcept
}
void
FfmpegInputStream::Seek(offset_type new_offset)
FfmpegInputStream::Seek(std::unique_lock<Mutex> &, offset_type new_offset)
{
uint64_t result;

View File

@@ -48,8 +48,10 @@ public:
return GetOffset() >= GetSize();
}
size_t Read(void *ptr, size_t size) override;
void Seek(offset_type offset) override;
size_t Read(std::unique_lock<Mutex> &lock,
void *ptr, size_t size) override;
void Seek(std::unique_lock<Mutex> &lock,
offset_type offset) override;
};
InputStreamPtr
@@ -74,7 +76,8 @@ OpenFileInputStream(Path path, Mutex &mutex)
}
void
FileInputStream::Seek(offset_type new_offset)
FileInputStream::Seek(std::unique_lock<Mutex> &,
offset_type new_offset)
{
{
const ScopeUnlock unlock(mutex);
@@ -85,7 +88,8 @@ FileInputStream::Seek(offset_type new_offset)
}
size_t
FileInputStream::Read(void *ptr, size_t read_size)
FileInputStream::Read(std::unique_lock<Mutex> &,
void *ptr, size_t read_size)
{
size_t nbytes;

View File

@@ -56,8 +56,9 @@ public:
return offset >= size;
}
size_t Read(void *ptr, size_t size) override;
void Seek(offset_type offset) override;
size_t Read(std::unique_lock<Mutex> &lock,
void *ptr, size_t size) override;
void Seek(std::unique_lock<Mutex> &lock, offset_type offset) override;
};
/*
@@ -118,7 +119,8 @@ input_smbclient_open(const char *uri,
}
size_t
SmbclientInputStream::Read(void *ptr, size_t read_size)
SmbclientInputStream::Read(std::unique_lock<Mutex> &,
void *ptr, size_t read_size)
{
ssize_t nbytes;
@@ -136,7 +138,8 @@ SmbclientInputStream::Read(void *ptr, size_t read_size)
}
void
SmbclientInputStream::Seek(offset_type new_offset)
SmbclientInputStream::Seek(std::unique_lock<Mutex> &,
offset_type new_offset)
{
off_t result;