// Representation of a single, muxed (we only really care about bytes/blocks) stream.
// Fed by Input, sent out by Server (to Client).
+#include <stddef.h>
#include <stdint.h>
#include <string>
#include <vector>
-struct Client;
class MarkPool;
class StreamProto;
+struct Client;
struct Stream {
Stream(const std::string &stream_id, size_t backlog_size);
// in the list of clients to wake up when we do.
void put_client_to_sleep(Client *client);
- // We have more data, so mark all clients that are sleeping as ready to go.
- void wake_up_all_clients();
+ // Add more input data to the stream, and wake up all clients that are sleeping.
+ void add_data(const char *data, ssize_t bytes);
private:
Stream(const Stream& other);
+
+ // We have more data, so mark all clients that are sleeping as ready to go.
+ void wake_up_all_clients();
};
#endif // !defined(_STREAM_H)