- Restructured `listener.d` and `queue.d` into a new package called `queue`
- Added listener array (`SList`) and lock to `Queue`
This commit is contained in:
parent
077dfe457b
commit
22567fb3d4
|
@ -11,8 +11,9 @@ public import tristanable.manager;
|
|||
|
||||
/**
|
||||
* A queue of queue items all of the same tag
|
||||
* and queue-related facilities
|
||||
*/
|
||||
public import tristanable.queue : Queue;
|
||||
public import tristanable.queue;
|
||||
|
||||
/**
|
||||
* Error handling type definitions
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
module tristanable.listener;
|
||||
module tristanable.queue.listener;
|
||||
|
||||
// TODO: Implement me
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
/**
|
||||
* Queue type and related facilities
|
||||
*/
|
||||
module tristanable.queue;
|
||||
|
||||
|
||||
/**
|
||||
* The Queue type for enqueueing and dequeueing messages
|
||||
*/
|
||||
public import tristanable.queue.queue : Queue;
|
||||
|
||||
/**
|
||||
* Interface type for definining listeners which can be hooked
|
||||
* to queue actions
|
||||
*/
|
||||
public import tristanable.queue.listener : TListener;
|
|
@ -1,7 +1,9 @@
|
|||
/**
|
||||
* A queue of queue items all of the same tag
|
||||
*/
|
||||
module tristanable.queue;
|
||||
module tristanable.queue.queue;
|
||||
|
||||
import tristanable.queue.listener : TListener;
|
||||
|
||||
// TODO: Examine the below import which seemingly fixes stuff for libsnooze
|
||||
import libsnooze.clib;
|
||||
|
@ -25,6 +27,11 @@ version(unittest)
|
|||
*/
|
||||
public class Queue
|
||||
{
|
||||
/**
|
||||
* This queue's unique ID
|
||||
*/
|
||||
private ulong queueID;
|
||||
|
||||
/**
|
||||
* The libsnooze event used to sleep/wake
|
||||
* on queue events
|
||||
|
@ -40,12 +47,19 @@ public class Queue
|
|||
* The lock for the message queue
|
||||
*/
|
||||
private Mutex queueLock;
|
||||
|
||||
/**
|
||||
* This queue's unique ID
|
||||
*/
|
||||
private ulong queueID;
|
||||
|
||||
/**
|
||||
* Attached queue listeners
|
||||
*/
|
||||
private SList!(TListener) listeners;
|
||||
|
||||
/**
|
||||
* Lock for the listeners queue
|
||||
*/
|
||||
private Mutex listenersLock;
|
||||
|
||||
// TODO: Add listener add/remove methods
|
||||
// TODO: On queue actions add a notificaiton call to the listeners
|
||||
|
||||
/**
|
||||
* Constructs a new Queue and immediately sets up the notification
|
Loading…
Reference in New Issue