3 /// The MemoryQueue is a **not thread safe** in memory Queue.
4 public final class MemoryQueue: NSObject, Queue {
5 private var items = [Event]()
7 public var eventCount: Int {
11 public func enqueue(events: [Event], completion: (()->())?) {
13 items.append(contentsOf: events)
17 public func first(limit: Int, completion: (_ items: [Event])->()) {
19 let amount = [limit,eventCount].min()!
20 let dequeuedItems = Array(items[0..<amount])
21 completion(dequeuedItems)
24 public func remove(events: [Event], completion: ()->()) {
26 items = items.filter({ event in !events.contains(where: { eventToRemove in eventToRemove.uuid == event.uuid })})