-
Type:
New Feature
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: Internal Code
-
None
-
Service Arch
-
Fully Compatible
-
Service Arch 2023-02-20, Service Arch 2023-03-06, Service Arch 2023-03-20, Service Arch 2023-04-03
-
None
-
3
-
None
-
None
-
None
-
None
-
None
-
None
This extends the Session abstraction to wrap a gRPC bidirectional stream. IngressSession corresponds to non-internal clients (prior to completion of PM-2960), only supports blocking APIs, and does not support timeouts (blocking I/O is only interrupted due to cancellation or connection errors). Also, the ingress path only inquires SSL configuration for authentication, which is out of scope for this ticket. Therefore, IngressSession does not implement the following APIs:
Internally, this class maintains a ServerContext and a ServerReaderWriter for the gRPC stream, and implements the following APIs:
boost::optional<UUID> clientId() const; StatusWith<Message> sourceMessage(); Status sinkMessage(Message message); void terminate(Status status); bool isConnected() const; bool isFromLoadBalancer() const;