X-Git-Url: https://git.mdrn.pl/wl-app.git/blobdiff_plain/53b27422d140022594fc241cca91c3183be57bca..48b2fe9f7c2dc3d9aeaaa6dbfb27c7da4f3235ff:/iOS/Pods/MatomoTracker/MatomoTracker/MemoryQueue.swift diff --git a/iOS/Pods/MatomoTracker/MatomoTracker/MemoryQueue.swift b/iOS/Pods/MatomoTracker/MatomoTracker/MemoryQueue.swift new file mode 100644 index 0000000..8ef8192 --- /dev/null +++ b/iOS/Pods/MatomoTracker/MatomoTracker/MemoryQueue.swift @@ -0,0 +1,29 @@ +import Foundation + +/// The MemoryQueue is a **not thread safe** in memory Queue. +public final class MemoryQueue: NSObject, Queue { + private var items = [Event]() + + public var eventCount: Int { + return items.count + } + + public func enqueue(events: [Event], completion: (()->())?) { + assertMainThread() + items.append(contentsOf: events) + completion?() + } + + public func first(limit: Int, completion: (_ items: [Event])->()) { + assertMainThread() + let amount = [limit,eventCount].min()! + let dequeuedItems = Array(items[0..()) { + assertMainThread() + items = items.filter({ event in !events.contains(where: { eventToRemove in eventToRemove.uuid == event.uuid })}) + completion() + } +}