fixing up errors
This commit is contained in:
parent
f84b56d42a
commit
92e45d56d6
|
@ -99,7 +99,7 @@ public:
|
|||
|
||||
template <typename T> class ErrorOr : public ErrorOrValue {
|
||||
private:
|
||||
std::variant<FixVoid<T>, Error> value_or_error;
|
||||
std::variant<Error, FixVoid<T>> value_or_error;
|
||||
|
||||
public:
|
||||
ErrorOr() = default;
|
||||
|
@ -127,4 +127,9 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
template <typename T> class ErrorOr<ErrorOr<T>> {
|
||||
private:
|
||||
ErrorOr() = delete;
|
||||
};
|
||||
|
||||
} // namespace gin
|
||||
|
|
|
@ -12,7 +12,9 @@ AsyncIoStream::AsyncIoStream(Own<IoStream> str)
|
|||
.sink()},
|
||||
read_disconnected{stream->onReadDisconnected()
|
||||
.then([this]() {
|
||||
|
||||
if (read_stepper.on_read_disconnect) {
|
||||
read_stepper.on_read_disconnect->feed();
|
||||
}
|
||||
})
|
||||
.sink()} {}
|
||||
|
||||
|
@ -24,6 +26,12 @@ Conveyor<size_t> AsyncIoStream::readDone() {
|
|||
return std::move(caf.conveyor);
|
||||
}
|
||||
|
||||
Conveyor<void> AsyncIoStream::onReadDisconnected() {
|
||||
auto caf = newConveyorAndFeeder<void>();
|
||||
read_stepper.on_read_disconnect = std::move(caf.feeder);
|
||||
return std::move(caf.conveyor);
|
||||
}
|
||||
|
||||
void AsyncIoStream::write(const void *buffer, size_t length) {}
|
||||
|
||||
Conveyor<size_t> AsyncIoStream::writeDone() {
|
||||
|
|
|
@ -48,6 +48,7 @@ public:
|
|||
virtual void read(void *buffer, size_t min_length, size_t max_length) = 0;
|
||||
|
||||
virtual Conveyor<size_t> readDone() = 0;
|
||||
virtual Conveyor<void> onReadDisconnected() = 0;
|
||||
};
|
||||
|
||||
class AsyncOutputStream {
|
||||
|
@ -77,6 +78,8 @@ public:
|
|||
|
||||
Conveyor<size_t> readDone() override;
|
||||
|
||||
Conveyor<void> onReadDisconnected() override;
|
||||
|
||||
void write(const void *buffer, size_t length) override;
|
||||
|
||||
Conveyor<size_t> writeDone() override;
|
||||
|
|
Loading…
Reference in New Issue