OSDN Git Service

HMJSONTrackerをSwiftに変換した
authormasakih <masakih@users.sourceforge.jp>
Sat, 21 Jan 2017 14:21:23 +0000 (23:21 +0900)
committermasakih <masakih@users.sourceforge.jp>
Sat, 21 Jan 2017 14:21:23 +0000 (23:21 +0900)
KCD.xcodeproj/project.pbxproj
KCD/HMCalculateDamageCommand.swift
KCD/HMJSONTracker.h [deleted file]
KCD/HMJSONTracker.m [deleted file]
KCD/HMJSONTracker.swift [new file with mode: 0644]
KCD/HMJSONViewCommand.swift

index 10dc92a..caa2444 100644 (file)
                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 */,
index ecee04b..118cb4c 100644 (file)
@@ -314,7 +314,7 @@ class HMCalculateDamageCommand: HMJSONCommand {
         // 連合vs通常(機動) 第2
         // 連合vs連合(水上) 第2 全体 use kouku nor kouku2
         // 連合vs連合(機動) 第1 全体 use kouku nor kouku2
-        let bf: () -> BattleFleet = { [unowned self] in
+        let bf: () -> BattleFleet = {
             switch self.battleType {
             case .combinedWater, .combinedAir: return .second
             case .eachCombinedWater, .eachCombinedAir: return .each
diff --git a/KCD/HMJSONTracker.h b/KCD/HMJSONTracker.h
deleted file mode 100644 (file)
index eaf8f8a..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-//
-//  HMJSONTracker.h
-//  KCD
-//
-//  Created by Hori,Masaki on 2014/02/09.
-//  Copyright (c) 2014年 Hori,Masaki. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-
-#import "HMJSONReciever.h"
-
-
-@interface HMJSONTracker : NSObject
-
-@end
diff --git a/KCD/HMJSONTracker.m b/KCD/HMJSONTracker.m
deleted file mode 100644 (file)
index 0cf914a..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-//
-//  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
diff --git a/KCD/HMJSONTracker.swift b/KCD/HMJSONTracker.swift
new file mode 100644 (file)
index 0000000..d189da6
--- /dev/null
@@ -0,0 +1,42 @@
+//
+//  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() } } }
+    }
+}
index d1bdf82..d54c275 100644 (file)
@@ -15,7 +15,7 @@ class HMJSONViewCommand: HMJSONCommand {
         guard let _ = jsonTree else { return print("jsonTree is nil.") }
         guard let _ = recieveDate else { return print("recieveDate is nil.") }
         
-        DispatchQueue.main.async { [unowned self] in
+        DispatchQueue.main.async {
             guard let appDelegate = NSApplication.shared().delegate as? HMAppDelegate
                 else { return print("Can not get HMAppDelegate") }
             guard let jw = appDelegate.jsonViewWindowController