[asterisk-scf-commits] asterisk-scf/integration/slice.git branch "single-build-dir" created.
Commits to the Asterisk SCF project code repositories
asterisk-scf-commits at lists.digium.com
Tue Apr 26 09:06:33 CDT 2011
branch "single-build-dir" has been created
at c913a14dc06a449b0bd8b526cafc7dcc362ab607 (commit)
- Log -----------------------------------------------------------------
commit c913a14dc06a449b0bd8b526cafc7dcc362ab607
Author: Kevin P. Fleming <kpfleming at digium.com>
Date: Mon Apr 25 17:46:21 2011 -0500
Changes to work with new single-build-directory CMake script.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8f26841..8d97fc1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,6 +6,8 @@
# All rights reserved.
#
+asterisk_scf_project(API 3.4)
+
asterisk_scf_component_init(asterisk-scf-api CXX)
# Make all of our slice definitions available to... themselves!
commit 93dd1c75d62768e08bd1a36dc46b3b9fabeee9d2
Merge: 5b26f4b 0e6af3e
Author: Joshua Colp <jcolp at digium.com>
Date: Thu Apr 21 12:10:38 2011 -0300
Merge branch 'indicate'
commit 5b26f4b5105b12808c7fe6159a947b0be28be2e6
Merge: e077c00 c2f50ad
Author: Mark Michelson <mmichelson at digium.com>
Date: Tue Apr 19 13:06:29 2011 -0500
Merge branch 'master' of git.asterisk.org:asterisk-scf/release/slice
commit e077c00402daaa531633522876fe75f3b8f4bf8b
Merge: 5264bb1 20084e7
Author: Mark Michelson <mmichelson at digium.com>
Date: Tue Apr 19 13:01:57 2011 -0500
Merge branch 'workqueue'
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);
/**
commit 20084e7794523ce2a8d631b3246868a00676e92d
Author: Mark Michelson <mmichelson at digium.com>
Date: Fri Apr 8 16:55:02 2011 -0500
Add a new parameter to QueueListener for number of items added to the queue.
diff --git a/AsteriskSCF/System/WorkQueue/WorkQueueIf.ice b/AsteriskSCF/System/WorkQueue/WorkQueueIf.ice
index 21df756..f09ad14 100644
--- a/AsteriskSCF/System/WorkQueue/WorkQueueIf.ice
+++ b/AsteriskSCF/System/WorkQueue/WorkQueueIf.ice
@@ -39,10 +39,11 @@ module V1
/**
* Indicates work has been added to the Queue or SuspendableQueue
*
+ * @param numNewWork The number of items of Work added to the queue
* @param wasEmpty True if the queue was empty prior
* to the addition of the work. False otherwise.
*/
- void workAdded(bool wasEmpty);
+ void workAdded(int numNewWork, bool wasEmpty);
/**
* Indicates that suspended work may be resumed
commit 86ae6dcd9240f59c511281c63a4ee10f4d897473
Author: Mark Michelson <mmichelson at digium.com>
Date: Thu Apr 7 22:14:05 2011 -0500
Add some documentation to thread pool and work queue interfaces.
diff --git a/AsteriskSCF/System/ThreadPool/ThreadPoolIf.ice b/AsteriskSCF/System/ThreadPool/ThreadPoolIf.ice
index ea40393..c3e9c9f 100644
--- a/AsteriskSCF/System/ThreadPool/ThreadPoolIf.ice
+++ b/AsteriskSCF/System/ThreadPool/ThreadPoolIf.ice
@@ -30,21 +30,86 @@ module ThreadPool
module V1
{
+ /**
+ * A thread pool
+ *
+ * The Pool maintains a Queue of Work to execute. Users of the
+ * Pool feed it Work by adding to this Queue directly.
+ */
local interface Pool
{
+ /**
+ * Set the number of threads in the Pool
+ *
+ * This method may be used to either add or
+ * remove threads from the pool.
+ *
+ * @param size The number of threads for the pool to be
+ * resized to.
+ */
void setSize(int size);
+
+ /**
+ * Get a handle to the Pool's Queue
+ *
+ * @return The Pool's Queue
+ */
AsteriskSCF::System::WorkQueue::V1::Queue getQueue();
};
+ /**
+ * Listener for events from a Pool
+ *
+ * All methods include as a parameter a handle to the Pool
+ * in case the listener wishes to alter the Pool as a result
+ * of the reported event.
+ */
local interface PoolListener
{
+ /**
+ * Indicates that the state of one or more of the Pool's threads has changed
+ *
+ * @param tpool A handle to the Pool
+ * @param activeThreads The number of active threads. Active threads are those
+ * that are currently executing work.
+ * @param idleThreads The number of idle threads. Idle threads are those that
+ * are currently waiting for work to be added.
+ * @param zombieThreads The number of zombie threads. Zombie threads are those
+ * that are still executing work but are marked for destruction as soon as they
+ * finish.
+ */
void stateChanged(Pool tpool, int activeThreads, int idleThreads, int zombieThreads);
+
+ /**
+ * Indicates that the Pool's queue has had work added to it.
+ *
+ * @param tpool A handle to the Pool
+ * @param newWorkCount The number of new items added to the Queue
+ * @param wasEmpty True if the Queue was empty prior to the addition of
+ * new Work. False otherwise.
+ */
void queueWorkAdded(Pool tpool, int newWorkCount, bool wasEmpty);
+
+ /**
+ * Indicates that the Pool's queue is empty
+ *
+ * @param tpool A handle to the Pool
+ */
void queueEmptied(Pool tpool);
};
+ /**
+ * Factory class for creating Pools
+ */
local interface PoolFactory
{
+ /**
+ * Creates a new Pool
+ *
+ * @param listener The PoolListener for the Pool to report events to
+ * @param wqueue The Queue for the ThreadPool to use internally
+ * @return A handle to the newly created Pool
+ */
Pool createPool(PoolListener listener, AsteriskSCF::System::WorkQueue::V1::Queue wqueue);
};
diff --git a/AsteriskSCF/System/WorkQueue/WorkQueueIf.ice b/AsteriskSCF/System/WorkQueue/WorkQueueIf.ice
index a14e043..21df756 100644
--- a/AsteriskSCF/System/WorkQueue/WorkQueueIf.ice
+++ b/AsteriskSCF/System/WorkQueue/WorkQueueIf.ice
@@ -28,71 +28,241 @@ module WorkQueue
module V1
{
+ /**
+ * Receiver of event notices from a Queue or SuspendableQueue
+ *
+ * It is safe to call any Queue or SuspendableQueue operations
+ * from within these methods.
+ */
local interface QueueListener
{
+ /**
+ * Indicates work has been added to the Queue or SuspendableQueue
+ *
+ * @param wasEmpty True if the queue was empty prior
+ * to the addition of the work. False otherwise.
+ */
void workAdded(bool wasEmpty);
+
+ /**
+ * Indicates that suspended work may be resumed
+ *
+ * This method is only ever called by SuspendableQueues
+ */
void workResumable();
+
+ /**
+ * Indicates that the Queue or SuspendableQueue is now empty
+ */
void emptied();
};
+ /**
+ * An item of Work
+ *
+ * Objects derived from this interface may only be
+ * used with Queues, not SuspendableQueues.
+ */
local interface Work
{
+ /**
+ * Execute a task
+ */
void execute();
};
local sequence<Work> WorkSeq;
+ /**
+ * Exception thrown when attempting to cancel a work item that is
+ * not in a Queue or SuspendableQueue
+ */
local exception WorkNotFound
{
};
+ /**
+ * A standard work queue
+ *
+ * Queues maintain a thread-safe FIFO of Work
+ */
local interface Queue
{
+ /**
+ * Enqueue a single item of Work
+ *
+ * @param item The item of Work to enqueue
+ */
void enqueueWork(Work item);
+
+ /**
+ * Enqueue multiple items of Work atomically
+ *
+ * The items will be added in the same order they
+ * appear in the input sequence.
+ *
+ * @param items The sequence of Work to add to the Queue.
+ */
void enqueueWorkSeq(WorkSeq items);
+
+ /**
+ * Cancel a previously queued work item.
+ *
+ * Searches the queue for the specified work item. If found,
+ * the item is removed, otherwise WorkNotFound is thrown. Note
+ * that if multiple copies of a Work item are in the queue, only
+ * the frontmost one will be removed as a result of this method
+ * call.
+ *
+ * @param item The item to be canceled
+ */
void cancelWork(Work item) throws WorkNotFound;
- /* return value indicates whether queue contains more work
- that can be executed immediately
- */
+ /**
+ * Pop the front item from the queue and call its execute() method
+ *
+ * @retval true The queue contains more Work to be executed
+ * @retval false The queue contains no more Work objects
+ */
bool executeWork();
- /* this is a snapshot and should only be used as a hint */
+ /**
+ * Obtain a snapshot of the number of items in the Queue.
+ *
+ * Given that multiple threads may be adding and removing
+ * items from the queue, this should be taken as a hint of
+ * how many items there are rather than as gospel.
+ *
+ * @return The number of Work objects in the Queue
+ */
int getSize();
+ /**
+ * Set a new QueueListener
+ *
+ * If the Queue currently has a listener, then the new
+ * one will replace its old listener.
+ *
+ * @param listener The new QueueListener to set
+ */
void setListener(QueueListener listener);
};
+ /**
+ * The set of potential results from executing SuspendableWork
+ */
enum SuspendableWorkResult
{
+ /**
+ * Work has finished.
+ */
Complete,
+ /**
+ * Work could not be completed immediately
+ */
Suspended
};
+ /**
+ * Listens for updates from SuspendableWork objects
+ */
local interface SuspendableWorkListener
{
+ /**
+ * Indicates that suspended SuspendableWork may be resumed
+ */
void workResumable();
};
+ /**
+ * Work items to be used in a SuspendableQueue
+ */
local interface SuspendableWork
{
+ /**
+ * Executes a piece of SuspendableWork
+ *
+ * @param listener A SuspendableWorkListener to alert when the
+ * SuspendableWork may be resumed.
+ *
+ * @retval Complete The work has completed
+ * @retval Suspended The work cannot be completed at the moment
+ * The listener will be alerted when the SuspendableWork may be resumed.
+ */
SuspendableWorkResult execute(SuspendableWorkListener listener);
};
local sequence<SuspendableWork> SuspendableWorkSeq;
+ /**
+ * A queue of SuspendableWork
+ *
+ * This is much like the Queue but allows for work to
+ * be suspended. This is useful for cases where an item
+ * of work makes an asynchronous RPC and does not wish to
+ * block the thread that is executing work.
+ */
local interface SuspendableQueue
{
+ /**
+ * Enqueue a single item of SuspendableWork
+ *
+ * @param item The item of work to enqueue
+ */
void enqueueWork(SuspendableWork item);
+
+ /**
+ * Enqueue multiple items of SuspendableWork atomically
+ *
+ * The items will be added in the same order they
+ * appear in the input sequence.
+ *
+ * @param items The sequence of SuspendableWork to enqueue
+ */
void enqueueWorkSeq(SuspendableWorkSeq items);
+
+ /**
+ * Cancel a previously queued SuspendableWork item.
+ *
+ * Searches the queue for the specified work item. If found,
+ * the item is removed, otherwise WorkNotFound is thrown. Note
+ * that if multiple copies of a SuspendableWork item are in the
+ * queue, only the frontmost one will be removed as a result of
+ * this method call.
+ *
+ * @param item The item to be canceled
+ */
void cancelWork(SuspendableWork item) throws WorkNotFound;
- /* return value indicates whether queue contains more work
- that can be executed immediately
- */
+ /**
+ * Pop the front item from the queue and call its execute() method
+ *
+ * @retval true The queue contains more SuspendableWork that may
+ * be immediately executed
+ * @retval false The queue either contains no more SuspendableWork
+ * items OR the item executed returned a Suspended result.
+ */
bool executeWork();
- /* this is a snapshot and should only be used as a hint */
+
+ /**
+ * Obtain a snapshot of the number of items in the SuspendableQueue.
+ *
+ * Given that multiple threads may be adding and removing
+ * items from the queue, this should be taken as a hint of
+ * how many items there are rather than as gospel.
+ *
+ * @return The number of SuspendableWork objects in the
+ * SuspendableQueue
+ */
int getSize();
+ /**
+ * Set a new QueueListener
+ *
+ * If the SuspendableQueue currently has a listener, then the new
+ * one will replace its old listener.
+ *
+ * @param listener The new QueueListener to set
+ */
void setListener(QueueListener listener);
};
commit 0e6af3eb07af0e4d4dd415d89926d368abb5d457
Author: Joshua Colp <jcolp at digium.com>
Date: Thu Apr 7 11:19:40 2011 -0300
Remove old stuff that is no longer used.
diff --git a/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice b/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
index 7d5131f..309d74a 100644
--- a/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
+++ b/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
@@ -270,59 +270,6 @@ module V1
* @see Indication
*/
void indicated(Session* source, Indication event);
-
- /**
- * Notification that a session has reached a known connected state.
- *
- * @param source The session the event occurred on.
- */
- void connected(Session* source);
-
- /**
- * Notification that a "flash" has occurred on a session.
- *
- * @param source The session the event occurred on.
- */
- void flashed(Session* source);
-
- /**
- * Notification that a session has entered a "held" state.
- *
- * @param source The session the event occurred on.
- */
- void held(Session* source);
-
- /**
- * Notification that a session is in a transitional state.
- *
- * @param source The session the event occurred on.
- *
- * @param response An code indentifying the details of the ongoing progress.
- */
- void progressing(Session* source, ResponseCode response);
-
- /**
- * Notification that a ring "event" has occurred.
- *
- * @param source The session the event occurred on.
- */
- void ringing(Session* source);
-
- /**
- * Notification that a session has completed.
- *
- * @param source The session the event occurred on.
- *
- * @param response An code describing the why the session stopped.
- */
- void stopped(Session* source, ResponseCode response);
-
- /**
- * Notification that a session has left the "held" state.
- *
- * @param source The session the event occurred on.
- */
- void unheld(Session* source);
};
/**
@@ -369,16 +316,6 @@ module V1
void indicate(Indication event) throws IndicationException;
/**
- * Method which requests that the session send a connect message.
- */
- void connect();
-
- /**
- * Method which requests that the session send a flash message.
- */
- void flash();
-
- /**
* Method which retrieves a proxy to the endpoint object that created the current session.
*
* @return The endpoint object that created the current session.
@@ -407,20 +344,6 @@ module V1
AsteriskSCF::Media::V1::Session* getMediaSession();
/**
- * Sends a hold notification to the peer.
- */
- void hold();
-
- /**
- * Sends a progress notification to the peer
- *
- * @param response A code detailing the current progress.
- *
- * @see ResponseCode
- */
- void progress(ResponseCode response);
-
- /**
* Removes a listener from the current list. Once removed, a listener
* no longer is notified of changes to the session.
*
@@ -429,11 +352,6 @@ module V1
void removeListener(SessionListener* listener);
/**
- * Send a ring notification to the peer.
- */
- void ring();
-
- /**
* Start a session dialogue with a peer.
*/
void start();
@@ -447,11 +365,6 @@ module V1
void stop(ResponseCode response);
/**
- * Send a request to a connected endpoint to remove a "hold".
- */
- void unhold();
-
- /**
* Gets the bridge object this Session is associated with.
*
* @return A proxy to the bridge the session is presently in.
commit eae5f79313d4e024b751d169b9ede161327c916e
Author: Joshua Colp <jcolp at digium.com>
Date: Thu Apr 7 10:18:42 2011 -0300
Add new indicate support.
diff --git a/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice b/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
index 01e9c1b..7d5131f 100644
--- a/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
+++ b/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
@@ -64,8 +64,10 @@ module V1
{
/**
* ISDN cause code @see http://tools.ietf.org/html/rfc3398
+ *
+ * Default value is normal clearing
*/
- int isdnCode;
+ int isdnCode = 34;
};
/**
@@ -112,6 +114,138 @@ module V1
};
/**
+ * Indication visitor class.
+ */
+ ["visitor"] local class IndicationVisitor
+ {
+ };
+
+ /**
+ * Basic indication class. Meant to be extended.
+ */
+ ["visitor:IndicationVisitor"] unsliceable class Indication
+ {
+ };
+
+ /**
+ * Telephony specific indication class. Useful if a consumer only cares
+ * about telephony specific indications.
+ */
+ unsliceable class TelephonyIndication extends Indication
+ {
+ };
+
+ /**
+ * Basic indication exception class. Meant to be extended.
+ */
+ unsliceable exception IndicationException
+ {
+ };
+
+ /**
+ * Indication that a session has reached a known connected state.
+ */
+ unsliceable class ConnectedIndication extends TelephonyIndication
+ {
+ };
+
+ /**
+ * Indication that a "flash" event has occurred on a session.
+ */
+ unsliceable class FlashedIndication extends TelephonyIndication
+ {
+ };
+
+ /**
+ * Indication that a session has entered a "held" state.
+ */
+ unsliceable class HeldIndication extends TelephonyIndication
+ {
+ };
+
+ /**
+ * Indication that a session is in a transitional state.
+ */
+ unsliceable class ProgressingIndication extends TelephonyIndication
+ {
+ /**
+ * Response code identifying the details of the ongoing progress.
+ */
+ ResponseCode response;
+ };
+
+ /**
+ * Indication that a "ring" event has occurred on a session.
+ */
+ unsliceable class RingingIndication extends TelephonyIndication
+ {
+ };
+
+ /**
+ * Indication that a session has completed.
+ */
+ unsliceable class StoppedIndication extends TelephonyIndication
+ {
+ /**
+ * Response code identifying the details of why the session stopped.
+ */
+ ResponseCode response;
+ };
+
+ /**
+ * Indication that a session has left the "held" state.
+ */
+ unsliceable class UnheldIndication extends TelephonyIndication
+ {
+ };
+
+ /**
+ * Indication that a connect message should be sent on the session.
+ */
+ unsliceable class ConnectIndication extends TelephonyIndication
+ {
+ };
+
+ /**
+ * Indication that a flash message should be sent on the session.
+ */
+ unsliceable class FlashIndication extends TelephonyIndication
+ {
+ };
+
+ /**
+ * Indication that a hold message should be sent on the session.
+ */
+ unsliceable class HoldIndication extends TelephonyIndication
+ {
+ };
+
+ /**
+ * Indication that an unhold message should be sent on the session.
+ */
+ unsliceable class UnholdIndication extends TelephonyIndication
+ {
+ };
+
+ /**
+ * Indication that a ring message should be sent on the session.
+ */
+ unsliceable class RingIndication extends TelephonyIndication
+ {
+ };
+
+ /**
+ * Indication that a progress message should be sent on the session.
+ */
+ unsliceable class ProgressIndication extends TelephonyIndication
+ {
+ /**
+ * Response code detailing the current progress.
+ */
+ ResponseCode response;
+ };
+
+ /**
* Instances of SessionListener are used for monitoring changes in one or
* more sessions. Session objects have an addListener method that allows
* SessionListener objects to be registered with a given session. The
@@ -124,6 +258,19 @@ module V1
*/
interface SessionListener
{
+ /**
+ * Notification that some indication event has occurred on the session.
+ *
+ * @param source The session the event occurred on.
+ *
+ * @param event The indication event that has occurred.
+ *
+ * @see Session
+ *
+ * @see Indication
+ */
+ void indicated(Session* source, Indication event);
+
/**
* Notification that a session has reached a known connected state.
*
@@ -208,6 +355,19 @@ module V1
*/
SessionInfo addListener(SessionListener* listener);
+ /**
+ * Request that an indication be performed on a session.
+ *
+ * @param event The indication event to perform.
+ *
+ * @throws IndicationException if an error occurs.
+ *
+ * @see Indication
+ *
+ * @see IndicationException
+ */
+ void indicate(Indication event) throws IndicationException;
+
/**
* Method which requests that the session send a connect message.
*/
commit b2f2ff479f36b49511c0ed021b488d7ca2996774
Author: Mark Michelson <mmichelson at digium.com>
Date: Thu Mar 31 14:00:06 2011 -0500
Address review comments.
I could have sworn I did this already...
diff --git a/AsteriskSCF/System/WorkQueue/WorkQueueIf.ice b/AsteriskSCF/System/WorkQueue/WorkQueueIf.ice
index 13ffc1c..a14e043 100644
--- a/AsteriskSCF/System/WorkQueue/WorkQueueIf.ice
+++ b/AsteriskSCF/System/WorkQueue/WorkQueueIf.ice
@@ -46,15 +46,10 @@ module V1
{
};
- local exception WorkExists
- {
- WorkSeq items;
- };
-
local interface Queue
{
- void enqueueWork(Work item) throws WorkExists;
- void enqueueWorkSeq(WorkSeq items) throws WorkExists;
+ void enqueueWork(Work item);
+ void enqueueWorkSeq(WorkSeq items);
void cancelWork(Work item) throws WorkNotFound;
/* return value indicates whether queue contains more work
@@ -62,7 +57,7 @@ module V1
*/
bool executeWork();
/* this is a snapshot and should only be used as a hint */
- int workCount();
+ int getSize();
void setListener(QueueListener listener);
};
@@ -85,15 +80,10 @@ module V1
local sequence<SuspendableWork> SuspendableWorkSeq;
- local exception SuspendableWorkExists
- {
- SuspendableWorkSeq items;
- };
-
local interface SuspendableQueue
{
- void enqueueWork(SuspendableWork item) throws SuspendableWorkExists;
- void enqueueWorkSeq(SuspendableWorkSeq items) throws SuspendableWorkExists;
+ void enqueueWork(SuspendableWork item);
+ void enqueueWorkSeq(SuspendableWorkSeq items);
void cancelWork(SuspendableWork item) throws WorkNotFound;
/* return value indicates whether queue contains more work
@@ -101,7 +91,7 @@ module V1
*/
bool executeWork();
/* this is a snapshot and should only be used as a hint */
- int workCount();
+ int getSize();
void setListener(QueueListener listener);
};
-----------------------------------------------------------------------
--
asterisk-scf/integration/slice.git
More information about the asterisk-scf-commits
mailing list