A11 (C++ runtime)
Native C++ implementation of the A11 action and streaming runtime
Loading...
Searching...
No Matches
a11::net::HttpSseServerWireStream Class Referencefinal

The server-side HTTP SSE wire stream, accepted from a client. More...

#include <cpp/a11/net/http_sse_wire_stream.h>

Inheritance diagram for a11::net::HttpSseServerWireStream:
[legend]

Classes

struct  ServerStreamState
 

Public Member Functions

a11::Task Accepted () const
 
 HttpSseServerWireStream (ConstructorToken, std::string id, HttpSseOptions options, InProcessWireStream::Pair pair, std::shared_ptr< State > state, std::shared_ptr< ServerStreamState > server_state)
 
- Public Member Functions inherited from a11::net::HttpSseWireStream
 ~HttpSseWireStream () override=default
 
absl::Status Send (data::WireMessage message) override
 Enqueue a message for delivery to the peer.
 
a11::Task Start (OnMessage on_message, OnDone on_done) override
 Begin the stream as the initiating ("start") side.
 
a11::Task Accept (OnMessage on_message, OnDone on_done) override
 Begin the stream as the accepting ("accept") side.
 
absl::Status HalfClose (data::ByteMap trailers) override
 Signal that this side will send no more messages.
 
a11::Task DrainOutgoingMessages () override
 Await delivery of all buffered outbound messages.
 
absl::Status Abort (absl::Status status) override
 Abort the stream, discarding buffered work.
 
absl::Status SetDeadline (absl::Time deadline) override
 Set the absolute deadline after which the stream is aborted.
 
absl::Time deadline () const override
 
absl::Status GetStatus () const override
 
std::optional< data::ByteMapGetTrailers () const override
 
std::string GetId () const override
 
void *absl_nullable GetImpl () const override
 
HttpHeaders GetHttpRequestHeaders () const
 
std::optional< HttpHeadersGetHttpResponseHeaders () const
 
absl::Status SetHttpRequestHeaders (HttpHeaders headers)
 Sets HTTP headers to send on the SSE request; call before connecting.
 
absl::Status SetHttpResponseHeaders (HttpHeaders headers)
 Sets HTTP headers to send on the SSE response (server side).
 
a11::Task WaitForHttpHeaders () const
 
absl::Status HalfClose ()
 Half-close with no trailers.
 
virtual absl::Status HalfClose (data::ByteMap trailers)=0
 Signal that this side will send no more messages.
 
absl::Status SetDeadline ()
 Clear any deadline (equivalent to an infinite deadline).
 
virtual absl::Status SetDeadline (absl::Time deadline)=0
 Set the absolute deadline after which the stream is aborted.
 
- Public Member Functions inherited from a11::net::WireStream
virtual ~WireStream ()=default
 
absl::Status HalfClose ()
 Half-close with no trailers.
 
absl::Status SetDeadline ()
 Clear any deadline (equivalent to an infinite deadline).
 

Protected Member Functions

a11::Task OpenTransport () override
 
absl::Status Transmit (data::WireMessage message) override
 
void *absl_nullable TransportImpl () const override
 
void TransportDone () override
 
- Protected Member Functions inherited from a11::net::HttpSseWireStream
 HttpSseWireStream (Role role, std::string id, HttpSseOptions options, InProcessWireStream::Pair pair, std::shared_ptr< State > state)
 
a11::Task StartEndpoint (bool accept, OnMessage on_message, OnDone on_done)
 
a11::Task StartInternalBridge ()
 
a11::Task HandleBridgeMessage (std::optional< data::WireMessage > message)
 
a11::Task HandleBridgeDone ()
 
a11::Task ReceiveTransportMessage (data::WireMessage message)
 
void FailTransport (absl::Status status)
 
void MarkHttpHeadersReady (HttpHeaders headers)
 
void SetId (std::string id)
 
HttpSseOptions options () const
 
std::shared_ptr< InProcessWireStreambridge () const
 

Friends

class HttpSseServer
 

Additional Inherited Members

- Protected Types inherited from a11::net::HttpSseWireStream
enum class  Role { kClient , kServer }
 

Detailed Description

The server-side HTTP SSE wire stream, accepted from a client.

Delivered to an HttpSseServer's OnHttpSseConnect handler (or via WaitForStream) when a client opens an SSE connection.

Constructor & Destructor Documentation

◆ HttpSseServerWireStream()

a11::net::HttpSseServerWireStream::HttpSseServerWireStream ( ConstructorToken  ,
std::string  id,
HttpSseOptions  options,
InProcessWireStream::Pair  pair,
std::shared_ptr< State state,
std::shared_ptr< ServerStreamState server_state 
)

Member Function Documentation

◆ Accepted()

a11::Task a11::net::HttpSseServerWireStream::Accepted ( ) const
Returns
An awaitable that resolves once the stream is fully established and ready for the server to send on.

◆ OpenTransport()

a11::Task a11::net::HttpSseServerWireStream::OpenTransport ( )
overrideprotectedvirtual

◆ Transmit()

absl::Status a11::net::HttpSseServerWireStream::Transmit ( data::WireMessage  message)
overrideprotectedvirtual

◆ TransportDone()

void a11::net::HttpSseServerWireStream::TransportDone ( )
overrideprotectedvirtual

Reimplemented from a11::net::HttpSseWireStream.

◆ TransportImpl()

void *absl_nullable a11::net::HttpSseServerWireStream::TransportImpl ( ) const
overrideprotectedvirtual

Friends And Related Symbol Documentation

◆ HttpSseServer


The documentation for this class was generated from the following files: