input/Stream: remove attribute "cond", replace with handler interface

This adds a bit of overhead, but also adds flexibility to the API,
because arbitrary triggers may be invoked from that virtual method
implementation, not just Cond::signal().

The motivation for this is to make the handlers more dynamic, for the
upcoming buffering class utilizing ProxyInputStream.
This commit is contained in:
Max Kellermann
2018-06-22 19:37:18 +02:00
parent 01d8eb6290
commit d0fbf6db59
66 changed files with 403 additions and 280 deletions

View File

@@ -35,8 +35,8 @@ class FileInputStream final : public InputStream {
public:
FileInputStream(const char *path, FileReader &&_reader, off_t _size,
Mutex &_mutex, Cond &_cond)
:InputStream(path, _mutex, _cond),
Mutex &_mutex)
:InputStream(path, _mutex),
reader(std::move(_reader)) {
size = _size;
seekable = true;
@@ -54,8 +54,7 @@ public:
};
InputStreamPtr
OpenFileInputStream(Path path,
Mutex &mutex, Cond &cond)
OpenFileInputStream(Path path, Mutex &mutex)
{
FileReader reader(path);
@@ -75,7 +74,7 @@ OpenFileInputStream(Path path,
return std::make_unique<FileInputStream>(path.ToUTF8().c_str(),
std::move(reader), info.GetSize(),
mutex, cond);
mutex);
}
void