OSDN Git Service

コード整形
[kcd/KCD.git] / KCD / JSONTracker.swift
1 //
2 //  JSONTracker.swift
3 //  KCD
4 //
5 //  Created by Hori,Masaki on 2017/01/21.
6 //  Copyright © 2017年 Hori,Masaki. All rights reserved.
7 //
8
9 import Cocoa
10
11 final class JSONTracker {
12     
13     private let queue: Queue
14     private let reciever: JSONReciever
15     
16     init() {
17         
18         queue = Queue()
19         reciever = JSONReciever(queue: queue)
20         
21         start()
22     }
23     
24     deinit {
25         
26         print("DEINIT")
27     }
28     
29     private func doAction() {
30         
31         guard let item = queue.dequeue() as? APIResponse
32             else { return print("Dequeued item is not APIResponse") }
33         
34         do {
35             
36             try CommandRegister.command(for: item).execute()
37             
38         } catch {
39             
40             print("JSONTracker Cought Exception -> \(error)")
41             
42         }
43     }
44     
45     private func start() {
46         
47         DispatchQueue(label: "JSONTracker")
48             .async { while true { autoreleasepool { self.doAction() } } }
49     }
50 }