Interface EventStreamRPCConnection.LifecycleHandler

  • Enclosing class:
    EventStreamRPCConnection

    public static interface EventStreamRPCConnection.LifecycleHandler
    Lifecycle handler is how a client can react and respond to connectivity interruptions. Connectivity interruptions are isolated from operation availability issues.
    • Method Summary

      All Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      void onConnect()
      Invoked only if there is a successful connection.
      void onDisconnect​(int errorCode)
      Invoked for both connect failures and disconnects from a healthy state
      boolean onError​(Throwable t)
      Used to communicate errors that occur on the connection during any phase of its lifecycle that may not appropriately or easily attach to onConnect() or onDisconnect().
      default void onPing​(List<software.amazon.awssdk.crt.eventstream.Header> headers, byte[] payload)
      Do nothing on ping by default.
    • Method Detail

      • onConnect

        void onConnect()
        Invoked only if there is a successful connection. Leaves out the error code since it will have already been compared to AWS_OP_SUCCESS
      • onDisconnect

        void onDisconnect​(int errorCode)
        Invoked for both connect failures and disconnects from a healthy state
        Parameters:
        errorCode - A code indicating the reason for the disconnect
      • onError

        boolean onError​(Throwable t)
        Used to communicate errors that occur on the connection during any phase of its lifecycle that may not appropriately or easily attach to onConnect() or onDisconnect(). Return value of this indicates whether or not the client should stay connected or terminate the connection. Returning true indicates the connection should terminate as a result of the error, and false indicates that the connection should not. If the handler throws, is the same as returning true. Note: Some conditions when onError() is called will not care about the return value and always result in closing the connection. AccessDeniedException is such an example
        Parameters:
        t - Exception
        Returns:
        true if the connection should be terminated as a result of handling the error
      • onPing

        default void onPing​(List<software.amazon.awssdk.crt.eventstream.Header> headers,
                            byte[] payload)
        Do nothing on ping by default. Inform handler of ping data TODO: Could use boolean return here as a hint on whether a pong reply should be sent?
        Parameters:
        headers - The ping headers
        payload - The ping payload