F4BEF00E1B11A645004702B8 /* HMUITestWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F4BEF0101B11A645004702B8 /* HMUITestWindowController.xib */; };
F4C041BA1875CAF5009273EB /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F4C041B91875CAF5009273EB /* JavaScriptCore.framework */; };
F4C1190518A71AEA005D5B25 /* HMJSONReciever.m in Sources */ = {isa = PBXBuildFile; fileRef = F4C1190418A71AEA005D5B25 /* HMJSONReciever.m */; };
- F4C1190818A746EB005D5B25 /* HMJSONTracker.m in Sources */ = {isa = PBXBuildFile; fileRef = F4C1190718A746EB005D5B25 /* HMJSONTracker.m */; };
F4C2ACA51D7167C2007BFE90 /* HMTimeSignalNotifier.m in Sources */ = {isa = PBXBuildFile; fileRef = F4C2ACA41D7167C2007BFE90 /* HMTimeSignalNotifier.m */; };
F4C3957418CDDFE500A1E918 /* HMKenzoDockStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = F4C3957318CDDFE500A1E918 /* HMKenzoDockStatus.m */; };
F4C5A2231C3533E800533FB6 /* HMEnhancementListItem.m in Sources */ = {isa = PBXBuildFile; fileRef = F4C5A2221C3533E800533FB6 /* HMEnhancementListItem.m */; };
F4C6686F1C54524900601AFB /* HMVerticalFleetViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F4C668711C54524900601AFB /* HMVerticalFleetViewController.xib */; };
F4C668721C54525300601AFB /* HMCombileViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F4C668741C54525300601AFB /* HMCombileViewController.xib */; };
F4CF25A81E325ABA00C02A66 /* HMAPIResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4CF25A71E325ABA00C02A66 /* HMAPIResponse.swift */; };
+ F4CF25AA1E338ED000C02A66 /* HMJSONTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4CF25A91E338ED000C02A66 /* HMJSONTracker.swift */; };
F4D05BC61E0ABD6800688D66 /* HMSlotItemWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4D05BC51E0ABD6800688D66 /* HMSlotItemWindowController.swift */; };
F4D05BC81E0C0DA100688D66 /* HMAirBaseWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4D05BC71E0C0DA100688D66 /* HMAirBaseWindowController.swift */; };
F4D05BCA1E0CADA100688D66 /* HMExternalBrowserWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4D05BC91E0CADA100688D66 /* HMExternalBrowserWindowController.swift */; };
F4C041B91875CAF5009273EB /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
F4C1190318A71AEA005D5B25 /* HMJSONReciever.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMJSONReciever.h; sourceTree = "<group>"; };
F4C1190418A71AEA005D5B25 /* HMJSONReciever.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMJSONReciever.m; sourceTree = "<group>"; };
- F4C1190618A746EB005D5B25 /* HMJSONTracker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMJSONTracker.h; sourceTree = "<group>"; };
- F4C1190718A746EB005D5B25 /* HMJSONTracker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMJSONTracker.m; sourceTree = "<group>"; };
F4C2ACA31D7167C2007BFE90 /* HMTimeSignalNotifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMTimeSignalNotifier.h; sourceTree = "<group>"; };
F4C2ACA41D7167C2007BFE90 /* HMTimeSignalNotifier.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMTimeSignalNotifier.m; sourceTree = "<group>"; };
F4C3957218CDDFE500A1E918 /* HMKenzoDockStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMKenzoDockStatus.h; sourceTree = "<group>"; };
F4C5A2351C37F87600533FB6 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
F4C5A23D1C380E0400533FB6 /* HMEnhancementListItem.plist */ = {isa = PBXFileReference; lastKnownFileType = file.bplist; path = HMEnhancementListItem.plist; sourceTree = "<group>"; };
F4CF25A71E325ABA00C02A66 /* HMAPIResponse.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HMAPIResponse.swift; sourceTree = "<group>"; };
+ F4CF25A91E338ED000C02A66 /* HMJSONTracker.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HMJSONTracker.swift; sourceTree = "<group>"; };
F4D05BC51E0ABD6800688D66 /* HMSlotItemWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HMSlotItemWindowController.swift; sourceTree = "<group>"; };
F4D05BC71E0C0DA100688D66 /* HMAirBaseWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HMAirBaseWindowController.swift; sourceTree = "<group>"; };
F4D05BC91E0CADA100688D66 /* HMExternalBrowserWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HMExternalBrowserWindowController.swift; sourceTree = "<group>"; };
F47215A11E1F38280083D3BC /* HMQueue.swift */,
F4C1190318A71AEA005D5B25 /* HMJSONReciever.h */,
F4C1190418A71AEA005D5B25 /* HMJSONReciever.m */,
- F4C1190618A746EB005D5B25 /* HMJSONTracker.h */,
- F4C1190718A746EB005D5B25 /* HMJSONTracker.m */,
+ F4CF25A91E338ED000C02A66 /* HMJSONTracker.swift */,
F4CF25A71E325ABA00C02A66 /* HMAPIResponse.swift */,
F494DC5D18C30AE100AE97E4 /* HMMissionStatus.h */,
F494DC5E18C30AE100AE97E4 /* HMMissionStatus.m */,
F4AA59251E1CE7E5001667AF /* HMKCMasterSlotItemEquipTypeObject+CoreDataClass.m in Sources */,
F44BC6F11E23A10C004644E3 /* HMRemodelSlotItemCommand.swift in Sources */,
F4048A9F1E19308A008ACFD6 /* HMStrokeTextFieldCell.swift in Sources */,
+ F4CF25AA1E338ED000C02A66 /* HMJSONTracker.swift in Sources */,
F44BC6D11E224299004644E3 /* HMPortCommand.swift in Sources */,
F45F3BE11E067A870009434E /* HMHistoryItemCleaner.swift in Sources */,
F4E5FF0C1E1645280026868C /* HMScreenshotListViewController.swift in Sources */,
F44BC71D1E29DF32004644E3 /* HMMemberNDockCommand.swift in Sources */,
F4D05BCE1E0D50D300688D66 /* HMBrowserContentAdjuster.swift in Sources */,
F4D05BD01E0D667600688D66 /* HMBookmarkListViewController.swift in Sources */,
- F4C1190818A746EB005D5B25 /* HMJSONTracker.m in Sources */,
F44BC6C51E222279004644E3 /* HMPortNotifyCommand.swift in Sources */,
F4D05BD71E0F696C00688D66 /* HMRepairListViewController.swift in Sources */,
F44BC7191E29D9DC004644E3 /* HMMemberDeckCommand.swift in Sources */,
+++ /dev/null
-//
-// HMJSONTracker.m
-// KCD
-//
-// Created by Hori,Masaki on 2014/02/09.
-// Copyright (c) 2014年 Hori,Masaki. All rights reserved.
-//
-
-#import "HMJSONTracker.h"
-
-#import "KCD-Swift.h"
-
-static HMJSONTracker *sTracker = nil;
-
-@interface HMJSONTracker ()
-@property (strong) HMQueue *queue;
-
-@property (strong) HMJSONReciever *reciever;
-
-@end
-
-@implementation HMJSONTracker
-+ (void)load
-{
- static dispatch_once_t onceToken;
- dispatch_once(&onceToken, ^{
- sTracker = [HMJSONTracker new];
- });
-}
-- (id)init
-{
- self = [super init];
- if(self) {
- _queue = [[HMQueue alloc] init];
- _reciever = [HMJSONReciever new];
- self.reciever.queueu = self.queue;
- [self start];
- }
- return self;
-}
-
-- (void)start
-{
- dispatch_queue_t queue = dispatch_queue_create("HMJSONTracker", DISPATCH_QUEUE_SERIAL);
- dispatch_async(queue, ^{
- while(YES) {
- @autoreleasepool {
- @try {
- id item = [self.queue dequeue];
- NSError *error = nil;
- HMJSONCommand *command = [HMJSONCommand commandFor:item
- error:&error];
-// HMJSONCommand *command = [HMJSONCommand commandForAPIRes:item];
- [command execute];
- [NSThread sleepForTimeInterval:0.1];
- }
- @catch (id e) {
- NSLog(@"HMJSONTracker Cought Exception -> %@", e);
- }
- }
- }
- });
-}
-
-@end
--- /dev/null
+//
+// HMJSONTracker.swift
+// KCD
+//
+// Created by Hori,Masaki on 2017/01/21.
+// Copyright © 2017年 Hori,Masaki. All rights reserved.
+//
+
+import Cocoa
+
+class HMJSONTracker: NSObject {
+ private let queue: HMQueue
+ private let reciever: HMJSONReciever
+
+ override init() {
+ queue = HMQueue()
+ reciever = HMJSONReciever()
+ super.init()
+ reciever.queueu = self.queue
+ start()
+ }
+ deinit {
+ print("DEINIT")
+ }
+
+ private func doAction() {
+ guard let item = queue.dequeue() as? HMAPIResponse
+ else { return print("Dequeued item is not HMAPIResponse") }
+ do {
+ let command = try HMJSONCommand.command(for: item)
+ command.execute()
+ }
+ catch {
+ print("HMJSONTracker Cought Exception -> \(error)")
+ }
+ }
+
+ private func start() {
+ let dQueue = DispatchQueue(label: "HMJSONTracker")
+ dQueue.async { while true { autoreleasepool() { self.doAction() } } }
+ }
+}