SyncPacketQueue
SyncPacketQueue
#include <icy/packetqueue.h>template<class T = IPacket>
class SyncPacketQueueDefined in src/base/include/icy/packetqueue.h:31
Inherits:
SyncQueue< IPacket >,PacketProcessor
Synchronized packet queue for event loop integration.
List of all members
| Name | Kind | Owner |
|---|---|---|
emitter | variable | Declared here |
SyncPacketQueue | function | Declared here |
SyncPacketQueue | function | Declared here |
~SyncPacketQueue | 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 |
SyncQueue | function | Inherited from SyncQueue |
~SyncQueue | function | Inherited from SyncQueue |
push | function | Inherited from SyncQueue |
cancel | function | Inherited from SyncQueue |
sync | function | Inherited from SyncQueue |
_sync | variable | Inherited from SyncQueue |
Queue | typedef | Inherited from SyncQueue |
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 SyncQueue
| Kind | Name | Description |
|---|---|---|
function | SyncQueue inline | |
function | ~SyncQueue virtual inline | Destruction is deferred to allow enough time for all callbacks to return. |
function | push virtual inline override | Pushes an item onto the queue and wakes the event loop for dispatch. Ownership of item is transferred to the queue. |
function | cancel virtual inline override | Cancels the queue and its underlying synchronizer. |
function | sync inline | |
variable | _sync | |
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:72
Public Methods
| Return | Name | Description |
|---|---|---|
SyncPacketQueue inline | ||
SyncPacketQueue inline | Uses the default libuv event loop. | |
void | process virtual inline override | Clones the incoming packet and pushes it onto the queue for synchronized dispatch. 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. |
SyncPacketQueue
inline
inline SyncPacketQueue(uv::Loop * loop, int maxSize = 1024)Defined in src/base/include/icy/packetqueue.h:40
Parameters
loopEvent loop to synchronize dispatch onto.maxSizeMaximum number of queued packets before oldest are dropped.
SyncPacketQueue
inline
inline SyncPacketQueue(int maxSize = 1024)Defined in src/base/include/icy/packetqueue.h:48
Uses the default libuv event loop.
Parameters
maxSizeMaximum number of queued packets before oldest are dropped.
process
virtual inline override
virtual inline void process(IPacket & packet) overrideDefined in src/base/include/icy/packetqueue.h:60
Clones the incoming packet and pushes it onto the queue for synchronized dispatch. 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:65
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:67
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 event loop thread. |
void | onStreamStateChange virtual inline override | Cancels the queue on Closed or [Error](icy-Error.html#error) stream state transitions. |
dispatch
virtual inline override
virtual inline void dispatch(T & packet) overrideDefined in src/base/include/icy/packetqueue.h:77
Emits the packet to downstream processors from the event loop thread.
Parameters
packetPacket to dispatch.
Reimplements
onStreamStateChange
virtual inline override
virtual inline void onStreamStateChange(const PacketStreamState &) overrideDefined in src/base/include/icy/packetqueue.h:81
Cancels the queue on Closed or [Error](icy-Error.html#error) stream state transitions.
Parameters
stateNew stream state.
Reimplements
Public Types
Queue
using Queue = SyncQueue< T >Defined in src/base/include/icy/packetqueue.h:35
Processor
using Processor = PacketProcessor