Package org.red5.server.net.rtmp
Class ReceivedMessageTaskQueue
java.lang.Object
org.red5.server.net.rtmp.ReceivedMessageTaskQueue
Contains queue of tasks for processing messages in the specified channel. Ensures that all messages which has got in channel will be processed sequentially.
- Author:
- Maria Chabanets (m.e.platova@gmail.com)
-
Nested Class Summary
Modifier and TypeClassDescriptionprivate class
Prevents deadlocked message handling. -
Field Summary
Modifier and TypeFieldDescriptionprivate final IReceivedMessageTaskQueueListener
Listener which tries to process message from queue if queue has been changed.private static final org.slf4j.Logger
private final int
Stream id.private final Queue<ReceivedMessageTask>
Task queue. -
Constructor Summary
ConstructorDescriptionReceivedMessageTaskQueue
(int streamId, IReceivedMessageTaskQueueListener listener) -
Method Summary
Modifier and TypeMethodDescriptionvoid
addTask
(ReceivedMessageTask task) Adds new task to the end of the queue.int
Gets first task from queue if it can be processed.void
Removes all tasks from the queue.void
Removes the specified task from the queue.
-
Field Details
-
log
private static final org.slf4j.Logger log -
streamId
private final int streamIdStream id. -
tasks
Task queue. -
listener
Listener which tries to process message from queue if queue has been changed.
-
-
Constructor Details
-
ReceivedMessageTaskQueue
-
-
Method Details
-
addTask
Adds new task to the end of the queue.- Parameters:
task
- received message task
-
removeTask
Removes the specified task from the queue.- Parameters:
task
- received message task
-
getTaskToProcess
Gets first task from queue if it can be processed. If first task is already in process it returns null.- Returns:
- task that can be processed or null otherwise
-
removeAllTasks
public void removeAllTasks()Removes all tasks from the queue. -
getStreamId
public int getStreamId()
-