[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