⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stopmessenger.java

📁 是一个用java实现的
💻 JAVA
字号:
/*
 * StopMessenger.java
 * 
 * Created on Mar 26, 2004
 *
 */
package gov.nist.applet.phone.ua;

import java.util.Iterator;

import javax.sip.ListeningPoint;
import javax.sip.ObjectInUseException;
import javax.sip.SipProvider;
import javax.sip.SipStack;

/**
 * @author Jean Deruelle <jean.deruelle@nist.gov>
 *
 * <a href="{@docRoot}/uncopyright.html">This code is in the public domain.</a>
 */
public class StopMessenger implements Runnable {
	private Thread stopThread=null;
	private MessageListener messageListener=null;
	/**
	 * 
	 */
	public StopMessenger(MessageListener messageListener) {
		this.messageListener=messageListener;
		if(stopThread==null){
			stopThread=new Thread(this);
			stopThread.setName("Stop Messenger Thread");
		}
			
		stopThread.start();
	}

	/* (non-Javadoc)
	 * @see java.lang.Runnable#run()
	 */
	public void run() {
		SipStack sipStack=messageListener.sipStack;		
		if (sipStack==null) return;                        					
		Iterator listeningPoints=sipStack.getListeningPoints();
		if (listeningPoints!=null) {
			while( listeningPoints.hasNext()) {
				ListeningPoint lp=(ListeningPoint)listeningPoints.next();							
				try{
					sipStack.deleteListeningPoint(lp);
					lp=null;
					System.out.println("One listening point removed!");	
				}
				catch(ObjectInUseException oiue){
					oiue.printStackTrace();					
				}				
				listeningPoints=sipStack.getListeningPoints();				
			}
		}
		else {
			System.out.println("WARNING, STOP, The NIST Messenger" +
				" has no listening points to remove!");
		} 
		try{
			Thread.currentThread().sleep(1000);
		}
		catch(InterruptedException ie){
			ie.printStackTrace();
		}
		Iterator sipProviders=sipStack.getSipProviders();
		if (sipProviders!=null) {
			while( sipProviders.hasNext()) {
				SipProvider sp=(SipProvider)sipProviders.next();                    
				sp.removeSipListener(messageListener);
				try{
					sipStack.deleteSipProvider(sp);
					sp=null;
					System.out.println("One sip Provider removed!");
				}
				catch(ObjectInUseException oiue){
					System.out.println("Waiting for the sip providers to " +
						"release their references");
					try{
						stopThread.sleep(2000);
					}
					catch(InterruptedException ie){
						ie.printStackTrace();
					}
				}
				sipProviders=sipStack.getSipProviders();				
			}
		}
		else {
			System.out.println("WARNING, STOP, NIST messenger" +
				" has no sip Provider to remove!");
		}
		sipStack=null;
		System.gc();      							
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -