Skip to content

Commit

Permalink
Merge d22a4fa into 5cafbb8
Browse files Browse the repository at this point in the history
  • Loading branch information
deavmi committed Oct 2, 2023
2 parents 5cafbb8 + d22a4fa commit 2a448a8
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 0 deletions.
1 change: 1 addition & 0 deletions source/tristanable/package.d
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ public import tristanable.manager;

/**
* A queue of queue items all of the same tag
* and queue-related facilities
*/
public import tristanable.queue.queue : Queue;

Expand Down
12 changes: 12 additions & 0 deletions source/tristanable/queue/listener.d
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
module tristanable.queue.listener;

// TODO: Implement me

import tristanable.queue;
import tristanable.encoding;

public interface TListener
{
// TODO: See if this is all we need / what we want
public void onQueueReceive(Queue queue, TaggedMessage message);
}
16 changes: 16 additions & 0 deletions source/tristanable/queue/package.d
Original file line number Diff line number Diff line change
@@ -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;
14 changes: 14 additions & 0 deletions source/tristanable/queue/queue.d
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
*/
module tristanable.queue.queue;

import tristanable.queue.listener : TListener;

import core.sync.mutex : Mutex;
import core.sync.condition : Condition;
import core.sync.exception : SyncError;
Expand Down Expand Up @@ -52,6 +54,18 @@ public class Queue
*/
private Mutex queueLock;

/**
* 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
/**
* If a message is enqueued prior
* to us sleeping then we won't
Expand Down

0 comments on commit 2a448a8

Please sign in to comment.