AsyncPacketQueue
AsyncPacketQueue
#include <icy/packetqueue.h>template<class T = IPacket>
class AsyncPacketQueueDefined in src/base/include/icy/packetqueue.h:145
Inherits:
AsyncQueue< IPacket >,PacketProcessor
Thread-based asynchronous packet dispatch queue.
List of all members
| Name | Kind | Owner |
|---|---|---|
emitter | variable | Declared here |
AsyncPacketQueue | function | Declared here |
~AsyncPacketQueue | function | Declared here |
close | function | Declared here |
process | function | Declared here |
accepts | function | Declared here |
retention | function | Declared here |
dispatch | function | Declared here |
onStreamStateChange | function | Declared here |
Queue | typedef | Declared here |
Processor | typedef | Declared here |
AsyncQueue | function | Inherited from AsyncQueue |
cancel | function | Inherited from AsyncQueue |
_thread | variable | Inherited from AsyncQueue |
~AsyncQueue | function | Inherited from AsyncQueue |
Queue | typedef | Inherited from AsyncQueue |
ondispatch | variable | Inherited from RunnableQueue |
RunnableQueue | function | Inherited from RunnableQueue |
~RunnableQueue | function | Inherited from RunnableQueue |
push | function | Inherited from RunnableQueue |
flush | function | Inherited from RunnableQueue |
clear | function | Inherited from RunnableQueue |
run | function | Inherited from RunnableQueue |
runTimeout | function | Inherited from RunnableQueue |
dispatch | function | Inherited from RunnableQueue |
timeout | function | Inherited from RunnableQueue |
setTimeout | function | Inherited from RunnableQueue |
dropped | function | Inherited from RunnableQueue |
_limit | variable | Inherited from RunnableQueue |
_timeout | variable | Inherited from RunnableQueue |
_dropped | variable | Inherited from RunnableQueue |
RunnableQueue | function | Inherited from RunnableQueue |
operator= | function | Inherited from RunnableQueue |
RunnableQueue | function | Inherited from RunnableQueue |
operator= | function | Inherited from RunnableQueue |
popNext | function | Inherited from RunnableQueue |
dispatchNext | function | Inherited from RunnableQueue |
push | function | Inherited from Queue |
push | function | Inherited from Queue |
empty | function | Inherited from Queue |
front | function | Inherited from Queue |
back | function | Inherited from Queue |
pop | function | Inherited from Queue |
sort | function | Inherited from Queue |
size | function | Inherited from Queue |
queue | function | Inherited from Queue |
_queue | variable | Inherited from Queue |
_mutex | variable | Inherited from Queue |
Runnable | function | Inherited from Runnable |
~Runnable | function | Inherited from Runnable |
run | function | Inherited from Runnable |
cancel | function | Inherited from Runnable |
cancelled | function | Inherited from Runnable |
exit | variable | Inherited from Runnable |
PacketProcessor | function | Inherited from PacketProcessor |
process | function | Inherited from PacketProcessor |
accepts | function | Inherited from PacketProcessor |
operator<< | function | Inherited from PacketProcessor |
PacketStreamAdapter | function | Inherited from PacketStreamAdapter |
~PacketStreamAdapter | function | Inherited from PacketStreamAdapter |
emit | function | Inherited from PacketStreamAdapter |
emit | function | Inherited from PacketStreamAdapter |
emit | function | Inherited from PacketStreamAdapter |
emit | function | Inherited from PacketStreamAdapter |
emit | function | Inherited from PacketStreamAdapter |
getEmitter | function | Inherited from PacketStreamAdapter |
retention | function | Inherited from PacketStreamAdapter |
onStreamStateChange | function | Inherited from PacketStreamAdapter |
_emitter | variable | Inherited from PacketStreamAdapter |
PacketStreamAdapter | function | Inherited from PacketStreamAdapter |
operator= | function | Inherited from PacketStreamAdapter |
PacketStreamAdapter | function | Inherited from PacketStreamAdapter |
operator= | function | Inherited from PacketStreamAdapter |
Inherited from AsyncQueue
| Kind | Name | Description |
|---|---|---|
function | AsyncQueue inline | |
function | cancel virtual inline override | Cancels the queue and joins the dispatch thread. |
variable | _thread | |
function | ~AsyncQueue virtual inline | |
typedef | Queue |
Inherited from RunnableQueue
| Kind | Name | Description |
|---|---|---|
variable | ondispatch | The default dispatch function. Must be set before the queue is running. |
function | RunnableQueue inline | |
function | ~RunnableQueue virtual inline | |
function | push virtual inline | Push an item onto the queue. The queue takes ownership of the item pointer. |
function | flush virtual inline | Flush all outgoing items. |
function | clear inline | |
function | run virtual inline override | Called asynchronously to dispatch queued items. If not timeout is set this method blocks until cancel() is called, otherwise runTimeout() will be called. |
function | runTimeout virtual inline | Called asynchronously to dispatch queued items until the queue is empty or the timeout expires. Pseudo protected for std::bind compatability. |
function | dispatch virtual inline | Dispatch a single item to listeners. |
function | timeout inline | |
function | setTimeout inline | Sets the dispatch timeout. Must only be called when the queue is empty. |
function | dropped const inline | |
variable | _limit | |
variable | _timeout | |
variable | _dropped | |
function | RunnableQueue | Deleted constructor. |
function | operator= | Deleted assignment operator. |
function | RunnableQueue | Deleted constructor. |
function | operator= | Deleted assignment operator. |
function | popNext virtual inline | Pops the next waiting item. |
function | dispatchNext virtual inline | Pops and dispatches the next waiting item. |
Inherited from Queue
| Kind | Name | Description |
|---|---|---|
function | push inline | Appends an item to the back of the queue (thread-safe). |
function | push inline | Appends an item to the back of the queue by move (thread-safe). |
function | empty const inline | |
function | front const inline | |
function | back const inline | |
function | pop inline | Removes the front item from the queue (thread-safe). |
function | sort inline | Sorts all queued items using the given comparator (thread-safe). |
function | size const inline | |
function | queue const inline | |
variable | _queue | |
variable | _mutex |
Inherited from Runnable
| Kind | Name | Description |
|---|---|---|
function | Runnable inline | |
function | ~Runnable virtual | Defaulted destructor. |
function | run virtual | The run method will be called by the asynchronous context. |
function | cancel virtual inline | Cancel the current task. The run() method should return ASAP. |
function | cancelled virtual const inline | Returns true when the task has been cancelled. |
variable | exit |
Inherited from PacketProcessor
| Kind | Name | Description |
|---|---|---|
function | PacketProcessor inline | |
function | process virtual | This method performs processing on the given packet and emits the result. |
function | accepts virtual inline | This method ensures compatibility with the given packet type. Return false to reject the packet. |
function | operator<< virtual inline | Stream operator alias for process() |
Inherited from PacketStreamAdapter
| Kind | Name | Description |
|---|---|---|
function | PacketStreamAdapter | Construct the adapter, binding it to the given packet signal. |
function | ~PacketStreamAdapter virtual inline | |
function | emit virtual | Emit a mutable raw buffer as a packet. |
function | emit virtual | Emit a read-only raw buffer as a packet (data is copied internally). |
function | emit virtual | Emit a string as a packet (data is copied internally). |
function | emit virtual | Emit a flag-only packet carrying no payload data. |
function | emit virtual | Emit an existing packet directly onto the outgoing signal. |
function | getEmitter | Returns a reference to the outgoing packet signal. |
function | retention virtual const | Returns how this adapter treats incoming packet lifetime. Most adapters are synchronous and therefore only borrow the packet for the current call chain. Queue-style adapters override this to advertise that they clone before deferred use. Callers may treat the first adapter reporting Cloned or Retained as the explicit ownership boundary in the stream graph. |
function | onStreamStateChange virtual inline | Called by the PacketStream to notify when the internal Stream state changes. On receiving the Stopped state, it is the responsibility of the adapter to have ceased all outgoing packet transmission, especially in multi-thread scenarios. |
variable | _emitter | |
function | PacketStreamAdapter | NonCopyable and NonMovable. |
function | operator= | Deleted assignment operator. |
function | PacketStreamAdapter | Deleted constructor. |
function | operator= | Deleted assignment operator. |
Public Attributes
| Return | Name | Description |
|---|---|---|
PacketSignal | emitter |
emitter
PacketSignal emitterDefined in src/base/include/icy/packetqueue.h:180
Public Methods
| Return | Name | Description |
|---|---|---|
AsyncPacketQueue inline | ||
void | close virtual inline | Flushes remaining packets, cancels the queue, and joins the dispatch thread. |
void | process virtual inline override | Clones the incoming packet and pushes it onto the async queue. This queue is therefore an explicit PacketStream ownership boundary. Drops the packet with a warning if the queue has been cancelled. |
bool | accepts virtual inline override | Returns true if the packet can be cast to type T. |
PacketRetention | retention virtual const inline override | Returns how this adapter treats incoming packet lifetime. Most adapters are synchronous and therefore only borrow the packet for the current call chain. Queue-style adapters override this to advertise that they clone before deferred use. Callers may treat the first adapter reporting Cloned or Retained as the explicit ownership boundary in the stream graph. |
AsyncPacketQueue
inline
inline AsyncPacketQueue(int maxSize = 1024)Defined in src/base/include/icy/packetqueue.h:153
Parameters
maxSizeMaximum number of queued packets before oldest are dropped.
close
virtual inline
virtual inline void close()Defined in src/base/include/icy/packetqueue.h:162
Flushes remaining packets, cancels the queue, and joins the dispatch thread.
process
virtual inline override
virtual inline void process(IPacket & packet) overrideDefined in src/base/include/icy/packetqueue.h:168
Clones the incoming packet and pushes it onto the async queue. This queue is therefore an explicit PacketStream ownership boundary. Drops the packet with a warning if the queue has been cancelled.
Parameters
packetIncoming packet to enqueue.
Reimplements
accepts
virtual inline override
virtual inline bool accepts(IPacket * packet) overrideDefined in src/base/include/icy/packetqueue.h:173
Returns true if the packet can be cast to type T.
Parameters
packetPacket to test.
Returns
True if dynamic_cast<T*>(packet) succeeds.
Reimplements
retention
virtual const inline override
virtual inline PacketRetention retention() const overrideDefined in src/base/include/icy/packetqueue.h:175
Returns how this adapter treats incoming packet lifetime. Most adapters are synchronous and therefore only borrow the packet for the current call chain. Queue-style adapters override this to advertise that they clone before deferred use. Callers may treat the first adapter reporting Cloned or Retained as the explicit ownership boundary in the stream graph.
Reimplements
Protected Methods
| Return | Name | Description |
|---|---|---|
void | dispatch virtual inline override | Emits the packet to downstream processors from the async thread. |
void | onStreamStateChange virtual inline override | Closes the queue on [Error](icy-Error.html#error) or Closed stream state transitions. |
dispatch
virtual inline override
virtual inline void dispatch(T & packet) overrideDefined in src/base/include/icy/packetqueue.h:185
Emits the packet to downstream processors from the async thread.
Parameters
packetPacket to dispatch.
Reimplements
onStreamStateChange
virtual inline override
virtual inline void onStreamStateChange(const PacketStreamState &) overrideDefined in src/base/include/icy/packetqueue.h:189
Closes the queue on [Error](icy-Error.html#error) or Closed stream state transitions.
Parameters
stateNew stream state.
Reimplements
Reimplemented by
Public Types
Queue
using Queue = AsyncQueue< T >Defined in src/base/include/icy/packetqueue.h:149
Processor
using Processor = PacketProcessor