[asterisk-scf-commits] asterisk-scf/release/slice.git branch "master" updated.

Commits to the Asterisk SCF project code repositories asterisk-scf-commits at lists.digium.com
Tue Apr 19 07:15:23 CDT 2011


branch "master" has been updated
       via  c2f50ada09a97344830c244f5a875cb3b6527202 (commit)
      from  015148f4e1d0f9f3853d8c4c445a0c95f260c92e (commit)

Summary of changes:
 .../SessionCommunicationsIf.ice                    |   43 ++++++++++++++++++-
 1 files changed, 40 insertions(+), 3 deletions(-)


- Log -----------------------------------------------------------------
commit c2f50ada09a97344830c244f5a875cb3b6527202
Author: Brent Eagles <beagles at digium.com>
Date:   Tue Apr 19 09:41:13 2011 -0230

    Merging slice changes for async-bridging and bridge-replication branches.
    Adds some exceptions to allow reporting of exceptions that occurred during
    asynchronous batch operations. Also added AMD metadata to some key bridging
    operations.

diff --git a/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice b/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
index 01e9c1b..d7582f9 100644
--- a/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
+++ b/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
@@ -509,6 +509,37 @@ module V1
     };
 
     /**
+     *
+     * Some operations that take a collection of sessions may be executed asynchronously and may fail in an unatomic
+     * fashion. In the event that such an operation failed, a BridgeSessionOperationFailed exception is thrown with the
+     * session proxies that experienced the failure as well as a description of the exception (most often the result of
+     * a what() call on the exception itself.
+     *
+     * When such an exception occurs, it can be assumed that the operation succeeded for any session proxy that is in
+     * the SessionErrorSeq.
+     *
+     **/
+    struct SessionError
+    {
+        Session* failedSession;
+        string message;
+    };
+    sequence<SessionError> SessionErrorSeq;
+    exception BridgeSessionOperationFailed
+    {
+        SessionErrorSeq failures;
+    };
+
+    /**
+     * The bridge throws SessionNotFound exception if a specified session is
+     * not currently on the bridge.
+     **/
+    exception SessionNotFound
+    {
+        Session* missingSession;
+    };
+
+    /**
      * Forward declaration for the BridgeListener interface.
      */
     interface BridgeListener;
@@ -530,8 +561,9 @@ module V1
 	* @see Session
 	* @see InvalidSessions
 	*/
+       ["amd"]
        void addSessions(SessionSeq session)
-	  throws InvalidSessions;
+       throws InvalidSessions, BridgeSessionOperationFailed;
 
        /**
 	* Abruptly destroy the bridge. Sessions will not be stopped.
@@ -556,8 +588,9 @@ module V1
 	* @see Session
 	* @see InvalidSessions
 	*/
+        ["amd"]
        void removeSessions(SessionSeq sessions)
-	  throws InvalidSessions;
+        throws InvalidSessions, BridgeSessionOperationFailed;
 
        /**
 	* Nicely shutdown the bridge. Participating sessions are disconnected.
@@ -595,9 +628,12 @@ module V1
 	*   be already participating in another bridge.
 	*
 	* @throws InvalidSessions if any of the provided sessions are invalid.
+        *
+        * @throws SessionNotFound if the session to be replaced is not on the bridge.
 	*/
+       ["amd"]
        void replaceSession(Session* sessionToReplace, SessionSeq newSessions)
-	  throws InvalidSessions;
+           throws InvalidSessions, SessionNotFound, BridgeSessionOperationFailed;
     };
 
     /**
@@ -674,6 +710,7 @@ module V1
 	 *
 	 * @return Bridge* Returns a proxy to the newly created bridge.
 	 */
+        ["amd"]
 	Bridge* createBridge(SessionSeq sessions, BridgeListener* listener);
 
 	/**

-----------------------------------------------------------------------


-- 
asterisk-scf/release/slice.git



More information about the asterisk-scf-commits mailing list