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

gov.nist.javax.sip.stack.timers.SipTimer Maven / Gradle / Ivy

There is a newer version: 1.3.0-91
Show newest version
/*
* Conditions Of Use
*
* This software was developed by employees of the National Institute of
* Standards and Technology (NIST), an agency of the Federal Government.
* Pursuant to title 15 Untied States Code Section 105, works of NIST
* employees are not subject to copyright protection in the United States
* and are considered to be in the public domain.  As a result, a formal
* license is not needed to use the software.
*
* This software is provided by NIST as a service and is expressly
* provided "AS IS."  NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
* AND DATA ACCURACY.  NIST does not warrant or make any representations
* regarding the use of the software or the results thereof, including but
* not limited to the correctness, accuracy, reliability or usefulness of
* the software.
*
* Permission to use this software is contingent upon your acceptance
* of the terms of this agreement
*
* .
*
*/
package gov.nist.javax.sip.stack.timers;

import gov.nist.javax.sip.SipStackImpl;
import gov.nist.javax.sip.stack.SIPStackTimerTask;

import java.util.Properties;

/**
 * Interface to implement to plug a new Timer implementation. currently the  ones provided with the stack are based on java.util.Timer
 * or java.util.concurrent.ScheduledThreadPoolExecutor
 * 
 * @author [email protected]
 *
 */
public interface SipTimer {

	/**
	 * Schedule a new SIPStackTimerTask after the specified delay
	 * @param task the task to schedule
	 * @param delay the delay in milliseconds to schedule the task
	 * @return true if the task was correctly scheduled, false otherwise
	 */
	boolean schedule(SIPStackTimerTask task, long delay);
	
	/**
	 * Schedule a new SIPStackTimerTask after the specified delay
	 * @param task the task to schedule
	 * @param delay the delay in milliseconds to schedule the task
	 * @param period the period to run the task after it has been first scheduled 
	 * @return true if the task was correctly scheduled, false otherwise
	 */
	boolean scheduleWithFixedDelay(SIPStackTimerTask task, long delay, long period);
	
	/**
	 * Stop the Timer (called when the stack is stop or reinitialized)
	 */
	void stop();
	
	/**
	 * cancel a previously scheduled task
	 * @param task task to cancel
	 * @return true if the task was cancelled, false otherwise
	 */
	boolean cancel(SIPStackTimerTask task);
	
	/**
	 * Start the SIP Timer, called when the stack is created. The stack configuration is passed
	 * so that different implementations can use specific config properties to configure themselves
	 * @param sipStack TODO
	 * @param configurationProperties the stack properties
	 */
	void start(SipStackImpl sipStack, Properties configurationProperties);
	
	/**
	 * Check if the timer is started or stopped
	 * @return true is the timer is started false otherwise
	 */
	boolean isStarted();
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy