/* * Copyright 2015 Netflix, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ package io.reactivex.netty.channel; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandler; /** * An event to indicate to {@link AbstractConnectionToChannelBridge} that the subscriber as published by * {@link ChannelSubscriberEvent} should be informed of a connection creation failure, instead of a new connection. * * <h2>Why do we need this?</h2> * * Since, emitting a connection can include a handshake for protocols such as TLS/SSL, it is not so that a new * {@link io.reactivex.netty.channel.Connection} should be emitted as soon as the channel is active (i.e. inside * {@link ChannelInboundHandler#channelActive(ChannelHandlerContext)}). * For this reason, this event leaves it to the pipeline or any other entity outside to decide, when is the rite time to * determine that a connection for a channel has failed creation. */ public final class ConnectionCreationFailedEvent { private final Throwable throwable; public ConnectionCreationFailedEvent(Throwable throwable) { this.throwable = throwable; } public Throwable getThrowable() { return throwable; } }