swift3 and c lib
This commit is contained in:
parent
df4a2b26a6
commit
2d7340b24d
|
@ -2,8 +2,8 @@ import PackageDescription
|
|||
|
||||
let package = Package(
|
||||
name: "SwiftZMQ",
|
||||
targets: [Target(name: "swiftzmq", dependencies: ["CLibzmq"])],
|
||||
dependencies: [
|
||||
.Package(url: "https://github.com/Zewo/CZeroMQ.git", majorVersion: 1),
|
||||
.Package(url: "https://github.com/Zewo/Data.git", majorVersion: 0, minor: 2)
|
||||
]
|
||||
)
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
module CLibzmq {
|
||||
header "/usr/local/include/zmq.h"
|
||||
link "zmq"
|
||||
export *
|
||||
}
|
|
@ -1,28 +0,0 @@
|
|||
<?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>CFBundleDevelopmentRegion</key>
|
||||
<string>en</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>Copyright © 2015 Zewo. All rights reserved.</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</plist>
|
|
@ -22,15 +22,15 @@
|
|||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
|
||||
import CZeroMQ
|
||||
import CLibzmq
|
||||
|
||||
public func CURVEKeyPair() throws -> (publicKey: String, secretKey: String) {
|
||||
var publicKey = [Int8](count: 41, repeatedValue: 0)
|
||||
var secretKey = [Int8](count: 41, repeatedValue: 0)
|
||||
var publicKey = [Int8](repeating: 0, count: 41)
|
||||
var secretKey = [Int8](repeating: 0, count: 41)
|
||||
|
||||
if zmq_curve_keypair(&publicKey, &secretKey) == -1 {
|
||||
throw Error.lastError
|
||||
}
|
||||
|
||||
return (String.fromCString(publicKey)!, String.fromCString(secretKey)!)
|
||||
return (String(validatingUTF8: publicKey)!, String(validatingUTF8: secretKey)!)
|
||||
}
|
|
@ -22,7 +22,7 @@
|
|||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
|
||||
import CZeroMQ
|
||||
import CLibzmq
|
||||
|
||||
public enum SocketType {
|
||||
case Req
|
|
@ -22,13 +22,13 @@
|
|||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
|
||||
import CZeroMQ
|
||||
import CLibzmq
|
||||
|
||||
public struct Error : ErrorType, CustomStringConvertible {
|
||||
public struct Error : ErrorProtocol, CustomStringConvertible {
|
||||
public let description: String
|
||||
|
||||
static var lastError: Error {
|
||||
let description = String.fromCString(zmq_strerror(zmq_errno()))!
|
||||
let description = String(validatingUTF8: zmq_strerror(zmq_errno()))!
|
||||
return Error(description: description)
|
||||
}
|
||||
}
|
|
@ -22,7 +22,7 @@
|
|||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
|
||||
import CZeroMQ
|
||||
import CLibzmq
|
||||
|
||||
public final class Message {
|
||||
var message: zmq_msg_t
|
||||
|
@ -78,7 +78,7 @@ public final class Message {
|
|||
throw Error.lastError
|
||||
}
|
||||
|
||||
return String.fromCString(result)!
|
||||
return String(validatingUTF8: result)!
|
||||
}
|
||||
|
||||
public func close() throws {
|
||||
|
@ -109,7 +109,7 @@ public final class Message {
|
|||
return message
|
||||
}
|
||||
|
||||
public func move(inout message: Message) throws {
|
||||
public func move(message: inout Message) throws {
|
||||
let message = try Message()
|
||||
|
||||
if zmq_msg_move(&message.message, &self.message) == -1 {
|
|
@ -22,9 +22,9 @@
|
|||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
|
||||
import CZeroMQ
|
||||
import CLibzmq
|
||||
|
||||
public struct PollEvent : OptionSetType {
|
||||
public struct PollEvent : OptionSet {
|
||||
public let rawValue: Int16
|
||||
|
||||
public init(rawValue: Int16) {
|
|
@ -22,7 +22,7 @@
|
|||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
|
||||
import CZeroMQ
|
||||
import CLibzmq
|
||||
|
||||
public func proxy(frontend: Socket, backend: Socket, capture: Socket? = nil) {
|
||||
zmq_proxy(frontend.socket, backend.socket, capture?.socket ?? nil)
|
|
@ -22,10 +22,10 @@
|
|||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
|
||||
import CZeroMQ
|
||||
import CLibzmq
|
||||
import Data
|
||||
|
||||
public struct SendMode : OptionSetType {
|
||||
public struct SendMode : OptionSet {
|
||||
public let rawValue: Int
|
||||
|
||||
public init(rawValue: Int) {
|
||||
|
@ -36,7 +36,7 @@ public struct SendMode : OptionSetType {
|
|||
public static let SendMore = SendMode(rawValue: Int(ZMQ_SNDMORE))
|
||||
}
|
||||
|
||||
public struct ReceiveMode : OptionSetType {
|
||||
public struct ReceiveMode : OptionSet {
|
||||
public let rawValue: Int
|
||||
|
||||
public init(rawValue: Int) {
|
||||
|
@ -169,7 +169,7 @@ public final class Socket {
|
|||
}
|
||||
}
|
||||
|
||||
public struct SocketEvent : OptionSetType {
|
||||
public struct SocketEvent : OptionSet {
|
||||
public let rawValue: Int32
|
||||
|
||||
public init(rawValue: Int32) {
|
||||
|
@ -541,24 +541,24 @@ extension Socket {
|
|||
}
|
||||
|
||||
public func getCURVEPublicKey() throws -> String {
|
||||
var value = [Int8](count: 41, repeatedValue: 0)
|
||||
var value = [Int8](repeating: 0, count: 41)
|
||||
var length = value.count
|
||||
try getOption(ZMQ_CURVE_PUBLICKEY, value: &value, length: &length)
|
||||
return String.fromCString(Array(value[0 ..< length]))!
|
||||
return String(validatingUTF8: Array(value[0 ..< length]))!
|
||||
}
|
||||
|
||||
public func getCURVESecretKey() throws -> String {
|
||||
var value = [Int8](count: 41, repeatedValue: 0)
|
||||
var value = [Int8](repeating: 0, count: 41)
|
||||
var length = value.count
|
||||
try getOption(ZMQ_CURVE_SECRETKEY, value: &value, length: &length)
|
||||
return String.fromCString(Array(value[0 ..< length]))!
|
||||
return String(validatingUTF8: Array(value[0 ..< length]))!
|
||||
}
|
||||
|
||||
public func getCURVEServerKey() throws -> String {
|
||||
var value = [Int8](count: 41, repeatedValue: 0)
|
||||
var value = [Int8](repeating: 0, count: 41)
|
||||
var length = value.count
|
||||
try getOption(ZMQ_CURVE_SERVERKEY, value: &value, length: &length)
|
||||
return String.fromCString(Array(value[0 ..< length]))!
|
||||
return String(validatingUTF8: Array(value[0 ..< length]))!
|
||||
}
|
||||
|
||||
public func getEvents() throws -> PollEvent? {
|
||||
|
@ -583,10 +583,10 @@ extension Socket {
|
|||
}
|
||||
|
||||
public func getGSSAPIPrincipal() throws -> String {
|
||||
var value = [Int8](count: 256, repeatedValue: 0)
|
||||
var value = [Int8](repeating: 0, count: 256)
|
||||
var length = value.count
|
||||
try getOption(ZMQ_GSSAPI_PRINCIPAL, value: &value, length: &length)
|
||||
return String.fromCString(Array(value[0 ..< length]))!
|
||||
return String(validatingUTF8: Array(value[0 ..< length]))!
|
||||
}
|
||||
|
||||
public func getGSSAPIServer() throws -> Bool {
|
||||
|
@ -597,10 +597,10 @@ extension Socket {
|
|||
}
|
||||
|
||||
public func getGSSAPIServicePrincipal() throws -> String {
|
||||
var value = [Int8](count: 256, repeatedValue: 0)
|
||||
var value = [Int8](repeating: 0, count: 256)
|
||||
var length = value.count
|
||||
try getOption(ZMQ_GSSAPI_SERVICE_PRINCIPAL, value: &value, length: &length)
|
||||
return String.fromCString(Array(value[0 ..< length]))!
|
||||
return String(validatingUTF8: Array(value[0 ..< length]))!
|
||||
}
|
||||
|
||||
public func getHandshakeInterval() throws -> Int32 {
|
||||
|
@ -611,10 +611,10 @@ extension Socket {
|
|||
}
|
||||
|
||||
public func getIdentity() throws -> String {
|
||||
var value = [Int8](count: 256, repeatedValue: 0)
|
||||
var value = [Int8](repeating: 0, count: 256)
|
||||
var length = value.count
|
||||
try getOption(ZMQ_IDENTITY, value: &value, length: &length)
|
||||
return String.fromCString(Array(value[0 ..< length])) ?? ""
|
||||
return String(validatingUTF8: Array(value[0 ..< length])) ?? ""
|
||||
}
|
||||
|
||||
public func getImmediate() throws -> Bool {
|
||||
|
@ -646,10 +646,10 @@ extension Socket {
|
|||
}
|
||||
|
||||
public func getLastEndpoint() throws -> String {
|
||||
var value = [Int8](count: 256, repeatedValue: 0)
|
||||
var value = [Int8](repeating: 0, count: 256)
|
||||
var length = value.count
|
||||
try getOption(ZMQ_LAST_ENDPOINT, value: &value, length: &length)
|
||||
return String.fromCString(Array(value[0 ..< length]))!
|
||||
return String(validatingUTF8: Array(value[0 ..< length]))!
|
||||
}
|
||||
|
||||
public func getLinger() throws -> Int32 {
|
||||
|
@ -681,10 +681,10 @@ extension Socket {
|
|||
}
|
||||
|
||||
public func getPlainPassword() throws -> String {
|
||||
var value = [Int8](count: 256, repeatedValue: 0)
|
||||
var value = [Int8](repeating: 0, count: 256)
|
||||
var length = value.count
|
||||
try getOption(ZMQ_PLAIN_PASSWORD, value: &value, length: &length)
|
||||
return String.fromCString(Array(value[0 ..< length]))!
|
||||
return String(validatingUTF8: Array(value[0 ..< length]))!
|
||||
}
|
||||
|
||||
public func getPlainServer() throws -> Bool {
|
||||
|
@ -695,10 +695,10 @@ extension Socket {
|
|||
}
|
||||
|
||||
public func getPlainUsername() throws -> String {
|
||||
var value = [Int8](count: 256, repeatedValue: 0)
|
||||
var value = [Int8](repeating: 0, count: 256)
|
||||
var length = value.count
|
||||
try getOption(ZMQ_PLAIN_USERNAME, value: &value, length: &length)
|
||||
return String.fromCString(Array(value[0 ..< length]))!
|
||||
return String(validatingUTF8: Array(value[0 ..< length]))!
|
||||
}
|
||||
|
||||
public func getRate() throws -> Int32 {
|
||||
|
@ -835,10 +835,10 @@ extension Socket {
|
|||
}
|
||||
|
||||
public func getZAPDomain() throws -> String {
|
||||
var value = [Int8](count: 256, repeatedValue: 0)
|
||||
var value = [Int8](repeating: 0, count: 256)
|
||||
var length = value.count
|
||||
try getOption(ZMQ_ZAP_DOMAIN, value: &value, length: &length)
|
||||
return String.fromCString(Array(value[0 ..< length]))!
|
||||
return String(validatingUTF8: Array(value[0 ..< length]))!
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue