/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.communication.connection.api; import java.util.Collection; /** * Callback interface for connection-related events. TODO * * @author Robert Mischke */ public interface ConnectionSetupListener { /** * Reports that the collection of registered {@link ConnectionSetup}s has changed. This event is fired once for each new listener to * bring it up to sync, and then fired again together with each {@link #onCreated(ConnectionSetup)} and * {@link #onDisposed(ConnectionSetup)} callback. This approach allows listeners to choose whether to process the whole list again, or * only react to the new delta. (Note that listeners should make no assumptions about the order of the complete update vs. delta * callbacks). * * @param setups the new collection of {@link ConnectionSetup}s */ void onCollectionChanged(Collection<ConnectionSetup> setups); /** * Reports that a new {@link ConnectionSetup} was created and registered. * * @param setup the new {@link ConnectionSetup} */ void onCreated(ConnectionSetup setup); /** * Reports that a {@link ConnectionSetup} changed its internal state. * * @param setup the new {@link ConnectionSetup} * @param oldState the previous {@link ConnectionSetupState} * @param newState the new {@link ConnectionSetupState} */ void onStateChanged(ConnectionSetup setup, ConnectionSetupState oldState, ConnectionSetupState newState); /** * Reports that a connection attempt has failed, and whether the connection will be retried automatically. Not that this does not cover * the breakdown of established connections; use {@link #onStateChanged(ConnectionSetup, ConnectionSetupState)} for this. * * @param setup the affected {@link ConnectionSetup} * @param firstConsecutiveFailure true if this connection has neither failed nor connected successfully since startup or receiving a * manual "connect" command * @param willAutoRetry true if the connection will be auto-retried */ void onConnectionAttemptFailed(ConnectionSetup setup, boolean firstConsecutiveFailure, boolean willAutoRetry); /** * Reports that an established connection was closed. Possible reason parameters for this callback are * {@link DisconnectReason#ACTIVE_SHUTDOWN}, {@link DisconnectReason#REMOTE_SHUTDOWN}, and {@link DisconnectReason#ERROR}. * * @param setup the affected {@link ConnectionSetup} * @param disconnectReason the reason for the connection shutdown * @param willAutoRetry true if the connection will be auto-retried */ void onConnectionClosed(ConnectionSetup setup, DisconnectReason disconnectReason, boolean willAutoRetry); /** * Reports that a new {@link ConnectionSetup} was unregistered and disposed. * * @param setup the new {@link ConnectionSetup} */ void onDisposed(ConnectionSetup setup); }