/* This code is part of Freenet. It is distributed under the GNU General
* Public License, version 2 (or at your option any later version). See
* http://www.gnu.org/ for further details of the GPL. */
package freenet.io.comm;
/**
* Callback interface for async message sending.
*/
public interface AsyncMessageCallback {
/** Called when the packet actually leaves the node.
* This DOES NOT MEAN that it has been successfully recieved
* by the partner node (on a lossy transport).
*/
public void sent();
/** Called when the packet is actually acknowledged by the
* other node. This is the end of the transaction. On a
* non-lossy transport this may be called immediately after
* sent().
*/
public void acknowledged();
/** Called if the node is disconnected while the packet is
* queued, or after it has been sent. Terminal.
*/
public void disconnected();
/** Called if the packet is lost due to an internal error. */
public void fatalError();
}