[Asterisk-java-cvs] CVS: asterisk-java/src/java/net/sf/asterisk/manager ManagerReader.java,1.6,1.7 D
Brought to you by:
srt
From: Stefan R. <sr...@us...> - 2005-03-05 01:40:02
|
Update of /cvsroot/asterisk-java/asterisk-java/src/java/net/sf/asterisk/manager In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27309/src/java/net/sf/asterisk/manager Modified Files: ManagerReader.java DefaultManagerConnection.java ManagerConnection.java ManagerReaderImpl.java Log Message: Added registerUserEventClass() to ManagerConnection to allow users to add their custom event classes without changing asterisk-java's source code Index: ManagerReader.java =================================================================== RCS file: /cvsroot/asterisk-java/asterisk-java/src/java/net/sf/asterisk/manager/ManagerReader.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -p -r1.6 -r1.7 --- ManagerReader.java 2 Mar 2005 23:15:38 -0000 1.6 +++ ManagerReader.java 5 Mar 2005 01:39:51 -0000 1.7 @@ -16,6 +16,7 @@ */ package net.sf.asterisk.manager; +import net.sf.asterisk.manager.event.ManagerEvent; import net.sf.asterisk.manager.io.SocketConnectionFacade; /** @@ -41,6 +42,17 @@ interface ManagerReader extends Runnable */ void setSocket(final SocketConnectionFacade socket); + /** + * Registers a new event type with the underlying EventBuilder.<br> + * The eventClass must extend ManagerEvent. + * + * @see EventBuilder + * @see ManagerEvent + * + * @param eventClass class of the event to register. + */ + void registerEventClass(Class event); + void die(); } Index: DefaultManagerConnection.java =================================================================== RCS file: /cvsroot/asterisk-java/asterisk-java/src/java/net/sf/asterisk/manager/DefaultManagerConnection.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -p -r1.7 -r1.8 --- DefaultManagerConnection.java 5 Mar 2005 00:32:50 -0000 1.7 +++ DefaultManagerConnection.java 5 Mar 2005 01:39:51 -0000 1.8 @@ -194,6 +194,16 @@ public class DefaultManagerConnection im /* Implementation of ManagerConnection interface */ + public void registerUserEventClass(Class userEventClass) + { + if (reader == null) + { + reader = createReader(this, asteriskServer); + } + + reader.registerEventClass(userEventClass); + } + /** * Logs in to the asterisk manager using asterisk's MD5 based challenge/response protocol. The * login is delayed until the protocol identifier has been received by the reader. Index: ManagerConnection.java =================================================================== RCS file: /cvsroot/asterisk-java/asterisk-java/src/java/net/sf/asterisk/manager/ManagerConnection.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -p -r1.3 -r1.4 --- ManagerConnection.java 23 Feb 2005 23:00:50 -0000 1.3 +++ ManagerConnection.java 5 Mar 2005 01:39:51 -0000 1.4 @@ -19,6 +19,7 @@ package net.sf.asterisk.manager; import java.io.IOException; import net.sf.asterisk.manager.action.ManagerAction; +import net.sf.asterisk.manager.event.ManagerEvent; import net.sf.asterisk.manager.response.ManagerResponse; /** @@ -33,6 +34,19 @@ import net.sf.asterisk.manager.response. public interface ManagerConnection { /** + * Registers a new user event type.<br> + * Asterisk allows you to send custom events via the UserEvent application. If you choose to + * send such events you can extend the abstract class ManagerEvent and add your own attributes. + * After registering a user event type asterisk-java will handle such events the same way it + * handles the internal events and inform your registered event handlers. + * + * @see ManagerEvent + * + * @param userEventClass the class of the user event to register. + */ + void registerUserEventClass(Class userEventClass); + + /** * Logs in to the asterisk server with the username and password specified when this connection * was created. * @@ -132,6 +146,7 @@ public interface ManagerConnection /** * Returns the Asterisk server of this connection. + * * @return the Asterisk server of this connection. */ AsteriskServer getAsteriskServer(); Index: ManagerReaderImpl.java =================================================================== RCS file: /cvsroot/asterisk-java/asterisk-java/src/java/net/sf/asterisk/manager/ManagerReaderImpl.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -p -r1.1 -r1.2 --- ManagerReaderImpl.java 2 Mar 2005 23:15:50 -0000 1.1 +++ ManagerReaderImpl.java 5 Mar 2005 01:39:51 -0000 1.2 @@ -99,6 +99,11 @@ class ManagerReaderImpl implements Manag { this.socket = socket; } + + public void registerEventClass(Class eventClass) + { + eventBuilder.registerEventClass(eventClass); + } /** * Reads line by line from the asterisk server, sets the protocol identifier as soon as it is |