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
|