All Downloads are FREE. Search and download functionalities are using the official Maven repository.

sip.TimeoutEvent 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     : TimeoutEvent.java
 * Author        : Phelim O'Doherty
 *
 *  HISTORY
 *  Version   Date      Author              Comments
 *  1.1     08/10/2002  Phelim O'Doherty    Initial version
 *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
package javax.sip;

import java.util.*;

/**
 * This class represents an Timeout event that is passed from a SipProvider to
 * its SipListener. A specific message may need retransmitted on a specific
 * transaction numerous times before it is acknowledged by the receiver. If the
 * message is not acknowledged after a specified period in the underlying
 * implementation the transaction will expire, this occurs usually
 * after seven retransmissions. The mechanism to alert an application that a
 * message for a an underlying transaction needs retransmitted (i.e. 200OK) or 
 * an underlying transaction has expired is a Timeout Event.
 * 

* A Timeout Event can be of two different types, namely: *

    *
  • {@link Timeout#RETRANSMIT} *
  • {@link Timeout#TRANSACTION} *
* A TimeoutEvent contains the following information: *
    *
  • source - the SipProvider that sent the TimeoutEvent. *
  • transaction - the transaction that this Timeout applies to. *
  • isServerTransaction - boolean indicating whether the transaction refers to * a client or server transaction. *
  • timeout - indicates what type of {@link Timeout} occurred. *
* * @see Timeout * * @author BEA Systems, NIST * @version 1.2 */ public class TimeoutEvent extends EventObject { /** * Constructs a TimeoutEvent to indicate a server retransmission or transaction * timeout. * * @param source - the source of TimeoutEvent. * @param serverTransaction - the server transaction that timed out. * @param timeout - indicates if this is a retranmission or transaction * timeout event. */ public TimeoutEvent(Object source, ServerTransaction serverTransaction, Timeout timeout) { super(source); m_serverTransaction = serverTransaction; m_isServerTransaction = true; m_timeout = timeout; } /** * Constructs a TimeoutEvent to indicate a client retransmission or transaction * timeout. * * @param source - source of TimeoutEvent. * @param clientTransaction - the client transaction that timed out. * @param timeout - indicates if this is a retranmission or transaction * timeout event. */ public TimeoutEvent(Object source, ClientTransaction clientTransaction, Timeout timeout) { super(source); m_clientTransaction = clientTransaction; m_isServerTransaction = false; m_timeout = timeout; } /** * Gets the server transaction associated with this TimeoutEvent. * * @return server transaction associated with this TimeoutEvent, or null if this * event is specific to a client transaction. */ public ServerTransaction getServerTransaction(){ return m_serverTransaction; } /** * Gets the client transaction associated with this TimeoutEvent. * * @return client transaction associated with this TimeoutEvent, or null if * this event is specific to a server transaction. */ public ClientTransaction getClientTransaction(){ return m_clientTransaction; } /** * Indicates if the transaction associated with this TimeoutEvent is a server * transaction. * * @return returns true if a server transaction or false if a client * transaction. */ public boolean isServerTransaction() { return m_isServerTransaction; } /** * Gets the event type of this TimeoutEvent. The event type can be used to * determine if this Timeout Event is one of the following types: *
    *
  • {@link Timeout#TRANSACTION} *
  • {@link Timeout#RETRANSMIT} *
* * @return the event type of this TimeoutEvent */ public Timeout getTimeout() { return m_timeout; } // internal variables private Timeout m_timeout; private boolean m_isServerTransaction; private ServerTransaction m_serverTransaction = null; private ClientTransaction m_clientTransaction = null; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy