?? dispatcherpool.java
字號:
/*
* Created on 2003-12-22
*
* To change the template for this generated file go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
package com.product.util.event;
import java.util.Iterator;
import java.util.Vector;
/**
* @author Renzhichao
*
* To change the template for this generated type comment go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
public class DispatcherPool implements Runnable {
private static DispatcherPool inst = new DispatcherPool() ;
static Vector pool = null ;
private boolean flag = true ;
private DispatcherPool(){
pool = new Vector() ;
loadFromConfig() ;
new Thread(this).start() ;
}
public static DispatcherPool getInstance(){
return inst ;
}
public Vector getPool(){
return pool ;
}
/**
* 停止所有的事件處理器。
*
*/
public void stopAll(){
for (Iterator iter = pool.iterator(); iter.hasNext(); ) {
Dispatcher element = (Dispatcher) iter.next();
element.stop() ;
}
}
/**
* 待實現的監控類。用來監控對應的處理池,一旦有問題可以stop.
*
*/
private void monite(){
}
/* (non-Javadoc)
* @see java.lang.Runnable#run()
*/
public void run() {
while(flag){
monite() ;
}
}
/**
* 停止監控,用于系統繁忙的時候可以停止。
*
*/
public void stopMonite(){
flag=false ;
}
/**
* 向池中添加一個Dispatcher.
* @param dispatcher
*/
private void addDispatcher(Dispatcher dispatcher){
new Thread(dispatcher).start() ;
pool.add(dispatcher) ;
}
private void loadFromConfig(){
// Config root = ServiceLoader.getInstance().getConfig().getConfig("DispatcherList");
// Config[] configs = root.getSection("Dispatcher");
// System.out.println("++++++++++++++ Dispatcher number is:"+configs.length);
// for (int i = 0; i < configs.length; i++) {
// Config config = configs[i];
// try {
// String evtName = config.getString("canHandlerEventClass") ;
// boolean willTurnBack = config.getBoolean("willTurnBack") ;
// Dispatcher dispatcher = new Dispatcher() ;
// dispatcher.setCanHandlerEventClass(evtName) ;
// dispatcher.setWillTurnBack(willTurnBack) ;
// /**
// * 得到Dispatcher能夠處理的EVENT和對應的Handler的信息
// */
// Config[] handleCfgs = config.getSection("EventHandlers") ;
// for (int j = 0; j < handleCfgs.length; j++) {
// Config handlerCfg = handleCfgs[j];
// String className = handlerCfg.getString("className") ;
// EventHandler handler = (EventHandler) Class.forName(className).newInstance() ;
// dispatcher.add(handler) ;
// }
// addDispatcher(dispatcher) ;
// }
// catch (ConfigException e) {
// e.printStackTrace();
// }
// catch (InstantiationException e) {
// e.printStackTrace();
// }
// catch (IllegalAccessException e) {
// e.printStackTrace();
// }
// catch (ClassNotFoundException e) {
// e.printStackTrace();
// }
// }
System.out.println("++++++++++++++ Add Dispatcher number is:"+pool.size());
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -