Commit 751b5936 authored by Ignacio Corderi's avatar Ignacio Corderi
Browse files

Style changes

parent cb3e514d
Loading
Loading
Loading
Loading
+0 −27
Original line number Diff line number Diff line
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>SchemeUserState</key>
	<dict>
		<key>Kinetic.xcscheme</key>
		<dict>
			<key>orderHint</key>
			<integer>0</integer>
		</dict>
	</dict>
	<key>SuppressBuildableAutocreation</key>
	<dict>
		<key>3EDAAB3C1B66D32D00F30808</key>
		<dict>
			<key>primary</key>
			<true/>
		</dict>
		<key>3EDAAB461B66D32D00F30808</key>
		<dict>
			<key>primary</key>
			<true/>
		</dict>
	</dict>
</dict>
</plist>
+32 −25
Original line number Diff line number Diff line
//
//  Discovery.swift
//  Kinetic
//
//  Created by James Hughes on 9/4/15.
//  Copyright © 2015 Seagate. All rights reserved.
//

import Foundation
import Socket
// Copyright (c) 2015 Seagate Technology

// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:

// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.

// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

// @author: James Hughes

import Socket

public class KineticDiscovery {
    
@@ -31,32 +43,28 @@ public class KineticDiscovery {
        case name = "name"
    }
    

    
    
    public private(set) var discoverRunning: Bool = false
    public private(set) var active: Bool
    public private(set) var error:ErrorType? = nil
    
    private var discoverStopping = false
    private var s:Datagram? = nil

    private var stopping: Bool
    private var socket: Datagram?
    
    init (multicast mAddr:String = "239.1.2.3", port mPort:String = "8123", timeout:Double = 0, f:(AnyObject)->()) throws {
        
        s = try Datagram(multicast: mAddr, port: mPort)
        
        discoverRunning = true
        self.active = true
        self.stopping = false
        self.socket = try Datagram(multicast: mAddr, port: mPort)
        
        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0)) {
            do {
                defer {
                    self.discoverRunning = false
                    self.active = false
                }
    
                while true {
                    // recieve it on the multicast socket
                    var (_, _, bytes) = try self.s!.recv(65535, timeout:timeout) // assumes you have access to
                    if self.discoverStopping {
                    var (_, _, bytes) = try self.socket!.recv(65535, timeout:timeout) // assumes you have access to
                    if self.stopping {
                        return
                    }
                    let data = NSData(bytesNoCopy: &bytes, length: bytes.count, freeWhenDone:false)
@@ -68,11 +76,10 @@ public class KineticDiscovery {
                self.error = x
            }
        }
        
    }
    
    public func stop() {
        discoverStopping = true
        s!.sockClose()
        self.active = true
        self.socket!.sockClose()
    }
}
 No newline at end of file
+8 −10
Original line number Diff line number Diff line
@@ -18,18 +18,16 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

// @author: Ignacio Corderi :-P

// @author: Ignacio Corderi

import Socket

public let connect = NetworkChannel.connect
public func connect(host: String, port: Int = NetworkChannel.DEFAULT_PORT, timeout: Double = NetworkChannel.DEFAULT_CONNECT_TIMEOUT) throws ->  KineticSession {
public func connect(host: String, port: Int = NetworkChannel.DEFAULT_PORT,
                    timeout: Double = NetworkChannel.DEFAULT_CONNECT_TIMEOUT) throws ->  KineticSession {
    return try NetworkChannel.connect(host, port: port, timeout: timeout)
}

import Socket


public class NetworkChannel: CustomStringConvertible, KineticChannel {

    public static let DEFAULT_CONNECT_TIMEOUT = 1.0
@@ -48,15 +46,15 @@ public class NetworkChannel: CustomStringConvertible, KineticChannel {
    // KineticChannel
    weak public private(set) var session: KineticSession? = nil
    public var connected: Bool {
        if stream!.eof     {return false}
        if stream!.closing {return false}
        if self.stream!.eof     {return false}
        if self.stream!.closing {return false}
        return true
    }
    
    internal init(host:String, port:Int, timeout: Double = NetworkChannel.DEFAULT_CONNECT_TIMEOUT) throws {
        self.port = port
        self.host = host
        stream = try Stream(connectTo: host, port: String(port), timeout: timeout)
        self.stream = try Stream(connectTo: host, port: String(port), timeout: timeout)
    }
    
    public static func connect(host: String, port: Int, timeout: Double = NetworkChannel.DEFAULT_CONNECT_TIMEOUT) throws -> KineticSession {
@@ -73,7 +71,7 @@ public class NetworkChannel: CustomStringConvertible, KineticChannel {
    }
    
    public func close() {
        stream!.releaseSock()
        self.stream!.releaseSock()
    }
    
    public func send(builder: Builder) throws {