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

@@ -6,7 +6,6 @@
#include "input/RewindInputStream.hxx"
#include "input/InputStream.hxx"
#include "thread/Mutex.hxx"
#include "thread/Cond.hxx"
#include <cppunit/TestFixture.h>
#include <cppunit/extensions/TestFactoryRegistry.h>
@@ -24,9 +23,9 @@ class StringInputStream final : public InputStream {
public:
StringInputStream(const char *_uri,
Mutex &_mutex, Cond &_cond,
Mutex &_mutex,
const char *_data)
:InputStream(_uri, _mutex, _cond),
:InputStream(_uri, _mutex),
data(_data), remaining(strlen(data)) {
SetReady();
}
@@ -54,10 +53,9 @@ class RewindTest : public CppUnit::TestFixture {
public:
void TestRewind() {
Mutex mutex;
Cond cond;
StringInputStream *sis =
new StringInputStream("foo://", mutex, cond,
new StringInputStream("foo://", mutex,
"foo bar");
CPPUNIT_ASSERT(sis->IsReady());