30 |
import java.net.SocketTimeoutException; |
import java.net.SocketTimeoutException; |
31 |
|
|
32 |
import java.util.ArrayList; |
import java.util.ArrayList; |
33 |
|
import java.util.TreeMap; |
34 |
import java.util.Vector; |
import java.util.Vector; |
35 |
import java.util.logging.Level; |
import java.util.logging.Level; |
36 |
import java.util.logging.Logger; |
import java.util.logging.Logger; |
95 |
|
|
96 |
private Vector<ResultSetEntry> resultSetQueue = new Vector<ResultSetEntry>(); |
private Vector<ResultSetEntry> resultSetQueue = new Vector<ResultSetEntry>(); |
97 |
|
|
98 |
|
/* Used for caching the engines' info */ |
99 |
|
private final TreeMap<String, SamplerEngine> engineMap = new TreeMap<String, SamplerEngine>(); |
100 |
|
|
101 |
class EventThread extends Thread { |
class EventThread extends Thread { |
102 |
private Vector<String> queue = new Vector<String>(); |
private Vector<String> queue = new Vector<String>(); |
103 |
private boolean terminate = false; |
private boolean terminate = false; |
327 |
if(sock != null) disconnect(); |
if(sock != null) disconnect(); |
328 |
if(getPrintOnlyMode()) return; |
if(getPrintOnlyMode()) return; |
329 |
|
|
330 |
|
engineMap.clear(); |
331 |
|
|
332 |
// Initializing LSCP event thread |
// Initializing LSCP event thread |
333 |
if(eventThread.isAlive()) { |
if(eventThread.isAlive()) { |
334 |
getLogger().warning("LSCP event thread already running!"); |
getLogger().warning("LSCP event thread already running!"); |
447 |
eventThread.terminate(); |
eventThread.terminate(); |
448 |
eventThread = new EventThread(); |
eventThread = new EventThread(); |
449 |
} |
} |
450 |
|
|
451 |
|
engineMap.clear(); |
452 |
} |
} |
453 |
|
|
454 |
/** |
/** |
3511 |
*/ |
*/ |
3512 |
private synchronized SamplerEngine |
private synchronized SamplerEngine |
3513 |
getEngineInfo(String engineName) throws IOException, LscpException, LSException { |
getEngineInfo(String engineName) throws IOException, LscpException, LSException { |
3514 |
SamplerEngine se = new SamplerEngine(); |
SamplerEngine se = engineMap.get(engineName); |
3515 |
|
if(se != null) return se; |
3516 |
|
|
3517 |
|
se = new SamplerEngine(); |
3518 |
if(!retrieveInfo("GET ENGINE INFO " + engineName, se)) return null; |
if(!retrieveInfo("GET ENGINE INFO " + engineName, se)) return null; |
3519 |
se.setName(engineName); |
se.setName(engineName); |
3520 |
|
engineMap.put(engineName, se); |
3521 |
|
|
3522 |
return se; |
return se; |
3523 |
} |
} |