|
Avaya Conferencing Provider API | |||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | |||||||||
See:
Description
| Interface Summary | |
|---|---|
| AvailableVerbsChangeListener<S extends ConferencingObject<S>> | A listener for AvailableVerbsChangeEvents. |
| ChildListener<P,C> | A listener for ChildEvents. |
| ConferenceEndPointListener | A listener for EndPoint instances joining and leaving Conference instances. |
| ConferenceListener | A listener for Conference instances starting and stopping on the connected Avaya Conferencing Provider
Connection. |
| ConferenceQueueListener | A listener for Conference instances joining and leaving a ConferenceQueue. |
| ConferencingObjectQueueListener<Q extends ConferencingObjectQueue<Q,E>,E extends ConferencingObject<E>> | A listener for entries being added to, reordered within or removed from ConferencingObjectQueues. |
| DTMFListener | A listener for DTMFEvents. |
| EndPointQueueListener | A listener for EndPoint instances joining and leaving a EndPointQueue. |
| SourceSequentialEventListener | A marker interface for event listeners that will ensure that events are notified in the order in which they occur in return for the listener committing to an upper bound on the number of events that are pending notification. |
| StateChangeListener | Created by IntelliJ IDEA. |
| Class Summary | |
|---|---|
| AvailableVerbsChangeEvent<S extends ConferencingObject<S>> | An event indicating that the available verbs for a specific ConferencingObject have changed. |
| ChildEvent<P,C> | A parent-child lifecycle event. |
| DTMFEvent | A DTMF event. |
| PropertiesChangeEvent | An extended form of PropertyChangeEvent that allows the receiver to obtain more information when multiple properties change in the same event. |
| StateChangeEvent | A state change event. |
Conferencing event handling faces a number of challenges:
For these reasons, the ACP by default uses a parallel model of event listener execution. A thread pool is used to execute events. Events are submitted to the thread pool in the order in which they occur, and event listeners are assumed to be thread safe and support parallel execution. Thus, even if processing of a previous event has not completed, the listener may be called in a separate thread to notify of a subsequent event.
It should be noted that the JVM specifications for threading do not guarantee an order in which threads will be resumed. Thus if, for example a child added event is raised and followed shortly thereafter by a child removed event (this could happen when making a call to an invalid destination), the events will be assigned to threads and scheduled for execution in the order in which they were raised, however, scheduling does not imply starting execution, and both events may be awaiting execution in the thread pool at the same time. As the JVM does not guarantee the order in which threads will be resumed, it may be that the child removed event will start execution prior to the child added event starting.
If the order of events is critical to an application, it can request that the ACP deliver events in sequence by having the event listener implement SourceSequentialEventListener. which will ensure that events will be notified to the listener instance in the order in which they occurred. ACP implementations are still free to make parallel invocations of the listener instance, however, for any one source of events, at most one event can be processed at a time. A side effect of implementing SourceSequentialEventListener is that the listener must commit to an upper bound of events that are pending notification in order to allow ACP implementations to isolate the effects of a poorly performing SourceSequentialEventListener from any other event listeners.
|
Avaya Conferencing Provider API | |||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | |||||||||