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;
|