sip.IOExceptionEvent Maven / Gradle / Ivy
/**
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Unpublished - rights reserved under the Copyright Laws of the United States.
* Copyright ? 2003 Sun Microsystems, Inc. All rights reserved.
* Copyright ? 2005 BEA Systems, Inc. All rights reserved.
*
* Use is subject to license terms.
*
* This distribution may include materials developed by third parties.
*
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*
* Module Name : JSIP Specification
* File Name : IOExceptionEvent.java
* Author : M. Ranganathan
*
* HISTORY
* Version Date Author Comments
* 1.2 05/03/2005 M. Ranganathan Initial version
*
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
package javax.sip;
import java.util.EventObject;
/**
* This object is used to signal to the application that an IO Exception has
* occured. The transaction state machine requires to report asynchronous IO Exceptions to
* the application immediately (according to RFC 3261).
* This class represents an IOExceptionEvent that is passed from a SipProvider to its SipListener.
* This event enables an implementation to propagate the asynchronous handling
* of IO Exceptions to the application. An application (SipListener) will
* register with the SIP protocol stack (SipProvider) and listen for
* IO Exceptions from the SipProvider.
* In many cases, when sending a SIP message, the sending function will return before
* the message was actually sent.
* This will happen for example if there is a need to wait for a response from a DNS server
* or to perform other asynchronous actions such as connecting a TCP connection.
* Later on if the message sending fails an IO exception event will be given to the application.
* IO Exception events may also be reported asynchronously when the Transaction State machine
* attempts to resend a pending request. Note that synchronous IO Exceptions
* are presented to the caller as SipException.
*
* @author BEA Systems, NIST
* @since v1.2
*/
public class IOExceptionEvent extends EventObject {
/** Constructor
*
* @param source -- the object that is logically deemed to have caused the IO Exception (dialog/transaction/provider).
* @param remoteHost -- host where the request/response was heading
* @param port -- port where the request/response was heading
* @param transport -- transport ( i.e. UDP/TCP/TLS).
*/
public IOExceptionEvent ( Object source, String remoteHost, int port, String transport) {
super(source);
this.m_host = remoteHost;
this.m_port = port;
this.m_transport = transport;
}
/**
* Return the host where Socket was pointing.
*
* @return host
*
*/
public String getHost() {
return m_host;
}
/**
* Returns the port where the socket was trying to send amessage.
*
* @return port associated with the IOException
*/
public int getPort () {
return m_port;
}
/**
* Return transport used for the failed write attempt.
*
* @return the transaction associated with the IOException
*/
public String getTransport() {
return this.m_transport;
}
private String m_host;
private int m_port;
private String m_transport;
}