[Asterisk-java-cvs] CVS: asterisk-java/src/java/net/sf/asterisk/manager DefaultAsteriskManager.java,
Brought to you by:
srt
From: Stefan R. <sr...@us...> - 2005-07-26 11:37:57
|
Update of /cvsroot/asterisk-java/asterisk-java/src/java/net/sf/asterisk/manager In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1942/src/java/net/sf/asterisk/manager Modified Files: DefaultAsteriskManager.java Log Message: Allow skipping of Queue initialization for faster startup on buggy, i.e. 1.0 Asterisk servers. Index: DefaultAsteriskManager.java =================================================================== RCS file: /cvsroot/asterisk-java/asterisk-java/src/java/net/sf/asterisk/manager/DefaultAsteriskManager.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -p -r1.9 -r1.10 --- DefaultAsteriskManager.java 24 Jul 2005 18:06:13 -0000 1.9 +++ DefaultAsteriskManager.java 26 Jul 2005 11:37:49 -0000 1.10 @@ -66,18 +66,28 @@ public class DefaultAsteriskManager private final Map channels; /** - * Sequence to track calls. + * A map of ACD queues by there name. */ - private int callSequence; - private final Map queues; + /** + * Creates a new instance. + */ public DefaultAsteriskManager() { this.channels = Collections.synchronizedMap(new HashMap()); this.queues = Collections.synchronizedMap(new HashMap()); } + /** + * Creates a new instance. + */ + public DefaultAsteriskManager(ManagerConnection connection) + { + this(); + this.connection = connection; + } + public void setManagerConnection(ManagerConnection connection) { this.connection = connection; @@ -86,10 +96,19 @@ public class DefaultAsteriskManager public void initialize() throws TimeoutException, IOException, AuthenticationFailedException { + initialize(false); + } + + public void initialize(boolean skipQueues) throws TimeoutException, + IOException, AuthenticationFailedException + { connection.login(); initializeChannels(); - initializeQueues(); + if (!skipQueues) + { + initializeQueues(); + } connection.addEventHandler(this); } @@ -251,6 +270,8 @@ public class DefaultAsteriskManager } } + /* Private helper methods */ + protected void addChannel(Channel channel) { channels.put(channel.getId(), channel); @@ -414,15 +435,18 @@ public class DefaultAsteriskManager */ private Channel getChannelByName(String name) { - // TODO must get unique Channel channel = null; - Iterator channelIterator = channels.values().iterator(); - while (channelIterator.hasNext()) + + synchronized (channels) { - Channel tmp = (Channel) channelIterator.next(); - if (tmp.getName() != null && tmp.getName().equals(name)) + Iterator channelIterator = channels.values().iterator(); + while (channelIterator.hasNext()) { - channel = tmp; + Channel tmp = (Channel) channelIterator.next(); + if (tmp.getName() != null && tmp.getName().equals(name)) + { + channel = tmp; + } } } return channel; |