[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-08-21 22:39:31
|
Update of /cvsroot/asterisk-java/asterisk-java/src/java/net/sf/asterisk/manager In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16160/src/java/net/sf/asterisk/manager Modified Files: DefaultAsteriskManager.java Queue.java Log Message: Fixed updating of queue entries (AJ-1) Added toString() to Queue Index: DefaultAsteriskManager.java =================================================================== RCS file: /cvsroot/asterisk-java/asterisk-java/src/java/net/sf/asterisk/manager/DefaultAsteriskManager.java,v retrieving revision 1.20 retrieving revision 1.21 diff -u -d -p -r1.20 -r1.21 --- DefaultAsteriskManager.java 16 Aug 2005 00:25:43 -0000 1.20 +++ DefaultAsteriskManager.java 21 Aug 2005 22:39:21 -0000 1.21 @@ -33,6 +33,8 @@ import net.sf.asterisk.manager.action.St import net.sf.asterisk.manager.event.ConnectEvent; import net.sf.asterisk.manager.event.DisconnectEvent; import net.sf.asterisk.manager.event.HangupEvent; +import net.sf.asterisk.manager.event.JoinEvent; +import net.sf.asterisk.manager.event.LeaveEvent; import net.sf.asterisk.manager.event.LinkEvent; import net.sf.asterisk.manager.event.ManagerEvent; import net.sf.asterisk.manager.event.NewCallerIdEvent; @@ -415,6 +417,14 @@ public class DefaultAsteriskManager { handleHangupEvent((HangupEvent) event); } + else if (event instanceof JoinEvent) + { + handleJoinEvent((JoinEvent) event); + } + else if (event instanceof LeaveEvent) + { + handleLeaveEvent((LeaveEvent) event); + } } /* Private helper methods */ @@ -603,6 +613,54 @@ public class DefaultAsteriskManager } } + protected void handleJoinEvent(JoinEvent event) + { + Queue queue = (Queue) queues.get(event.getQueue()); + Channel channel = getChannelByName(event.getChannel()); + + if (queue == null) + { + logger.error("ignored JoinEvent for unknown queue " + + event.getQueue()); + return; + } + if (channel == null) + { + logger.error("ignored JoinEvent for unknown channel " + + event.getChannel()); + return; + } + + if (!queue.getEntries().contains(channel)) + { + queue.addEntry(channel); + } + } + + protected void handleLeaveEvent(LeaveEvent event) + { + Queue queue = (Queue) queues.get(event.getQueue()); + Channel channel = getChannelByName(event.getChannel()); + + if (queue == null) + { + logger.error("ignored LeaveEvent for unknown queue " + + event.getQueue()); + return; + } + if (channel == null) + { + logger.error("ignored LeaveEvent for unknown channel " + + event.getChannel()); + return; + } + + if (queue.getEntries().contains(channel)) + { + queue.removeEntry(channel); + } + } + /** * Returns a channel by its name. * Index: Queue.java =================================================================== RCS file: /cvsroot/asterisk-java/asterisk-java/src/java/net/sf/asterisk/manager/Queue.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -p -r1.2 -r1.3 --- Queue.java 23 Feb 2005 22:50:57 -0000 1.2 +++ Queue.java 21 Aug 2005 22:39:22 -0000 1.3 @@ -70,4 +70,18 @@ public class Queue implements Serializab { entries.remove(entry); } + + public String toString() + { + StringBuffer sb; + + sb = new StringBuffer(getClass().getName() + ": "); + + sb.append("name='" + getName() + "'; "); + sb.append("max='" + getMax() + "'; "); + sb.append("entries='" + getEntries() + "'; "); + sb.append("systemHashcode=" + System.identityHashCode(this)); + + return sb.toString(); + } } |