diff --git a/Dependencies/zeromq/module.modulemap b/Dependencies/zeromq/module.modulemap index a135ff6..ad1f57c 100644 --- a/Dependencies/zeromq/module.modulemap +++ b/Dependencies/zeromq/module.modulemap @@ -1,4 +1,4 @@ -module ZeroMQ [system] { +module CZeroMQ [system] { header "zmq_swift.h" export * -} \ No newline at end of file +} diff --git a/Package.swift b/Package.swift new file mode 100644 index 0000000..7032d00 --- /dev/null +++ b/Package.swift @@ -0,0 +1,8 @@ +import PackageDescription + +let package = Package( + name: "SwiftZMQ", + dependencies: [ + .Package(url: "https://github.com/younata/CZeroMQ.git", majorVersion: 1) + ] +) diff --git a/SwiftZMQ/CURVE.swift b/Sources/CURVE.swift similarity index 98% rename from SwiftZMQ/CURVE.swift rename to Sources/CURVE.swift index 7db7018..47d333b 100644 --- a/SwiftZMQ/CURVE.swift +++ b/Sources/CURVE.swift @@ -22,7 +22,7 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. -import ZeroMQ +import CZeroMQ public func CURVEKeyPair() throws -> (publicKey: String, secretKey: String) { var publicKey = [Int8](count: 41, repeatedValue: 0) diff --git a/SwiftZMQ/Context.swift b/Sources/Context.swift similarity index 99% rename from SwiftZMQ/Context.swift rename to Sources/Context.swift index aaf94d5..bee8985 100644 --- a/SwiftZMQ/Context.swift +++ b/Sources/Context.swift @@ -22,7 +22,7 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. -import ZeroMQ +import CZeroMQ public enum SocketType { case Req diff --git a/SwiftZMQ/Error.swift b/Sources/Error.swift similarity index 98% rename from SwiftZMQ/Error.swift rename to Sources/Error.swift index ac88e4f..270eefb 100644 --- a/SwiftZMQ/Error.swift +++ b/Sources/Error.swift @@ -22,7 +22,7 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. -import ZeroMQ +import CZeroMQ public struct Error : ErrorType, CustomStringConvertible { public let description: String diff --git a/SwiftZMQ/Info.plist b/Sources/Info.plist similarity index 100% rename from SwiftZMQ/Info.plist rename to Sources/Info.plist diff --git a/SwiftZMQ/Message.swift b/Sources/Message.swift similarity index 99% rename from SwiftZMQ/Message.swift rename to Sources/Message.swift index 121150c..291c5dd 100644 --- a/SwiftZMQ/Message.swift +++ b/Sources/Message.swift @@ -22,7 +22,7 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. -import ZeroMQ +import CZeroMQ public final class Message { var message: zmq_msg_t diff --git a/SwiftZMQ/Poller.swift b/Sources/Poller.swift similarity index 99% rename from SwiftZMQ/Poller.swift rename to Sources/Poller.swift index c4d58b0..e1f6a25 100644 --- a/SwiftZMQ/Poller.swift +++ b/Sources/Poller.swift @@ -22,7 +22,7 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. -import ZeroMQ +import CZeroMQ public struct PollEvent : OptionSetType { public let rawValue: Int16 diff --git a/SwiftZMQ/Proxy.swift b/Sources/Proxy.swift similarity index 98% rename from SwiftZMQ/Proxy.swift rename to Sources/Proxy.swift index faacf10..348490d 100644 --- a/SwiftZMQ/Proxy.swift +++ b/Sources/Proxy.swift @@ -22,7 +22,7 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. -import ZeroMQ +import CZeroMQ public func proxy(frontend: Socket, backend: Socket, capture: Socket? = nil) { zmq_proxy(frontend.socket, backend.socket, capture?.socket ?? nil) diff --git a/SwiftZMQ/Socket.swift b/Sources/Socket.swift similarity index 88% rename from SwiftZMQ/Socket.swift rename to Sources/Socket.swift index 28a6326..67d4c7b 100644 --- a/SwiftZMQ/Socket.swift +++ b/Sources/Socket.swift @@ -22,7 +22,7 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. -import ZeroMQ +import CZeroMQ public struct SendMode : OptionSetType { public let rawValue: Int @@ -188,11 +188,13 @@ public struct SocketEvent : OptionSetType { } extension Socket { - public func setAffinity(var value: UInt64) throws { + public func setAffinity(value: UInt64) throws { + var value = value try setOption(ZMQ_AFFINITY, value: &value, length: strideof(UInt64)) } - public func setBacklog(var value: Int32) throws { + public func setBacklog(value: Int32) throws { + var value = value try setOption(ZMQ_BACKLOG, value: &value, length: strideof(Int32)) } @@ -207,7 +209,8 @@ extension Socket { try setOption(ZMQ_CONFLATE, value: &v, length: strideof(Int32)) } - public func setConnectTimeout(var value: Int32) throws { + public func setConnectTimeout(value: Int32) throws { + var value = value try setOption(ZMQ_CONNECT_TIMEOUT, value: &value, length: strideof(Int32)) } @@ -268,19 +271,23 @@ extension Socket { } } - public func setHandshakeInterval(var value: Int32) throws { + public func setHandshakeInterval(value: Int32) throws { + var value = value try setOption(ZMQ_HANDSHAKE_IVL, value: &value, length: strideof(Int32)) } - public func setHeartbeatInterval(var value: Int32) throws { + public func setHeartbeatInterval(value: Int32) throws { + var value = value try setOption(ZMQ_HEARTBEAT_IVL, value: &value, length: strideof(Int32)) } - public func setHeartbeatTimeout(var value: Int32) throws { + public func setHeartbeatTimeout(value: Int32) throws { + var value = value try setOption(ZMQ_HEARTBEAT_TIMEOUT, value: &value, length: strideof(Int32)) } - public func setHeartbeatTTTL(var value: Int32) throws { + public func setHeartbeatTTTL(value: Int32) throws { + var value = value try setOption(ZMQ_HEARTBEAT_TTL, value: &value, length: strideof(Int32)) } @@ -291,29 +298,32 @@ extension Socket { } public func setImmediate(value: Bool) throws { - var v = value ? 1 : 0 - try setOption(ZMQ_IMMEDIATE, value: &v, length: strideof(Int32)) + var value = value ? 1 : 0 + try setOption(ZMQ_IMMEDIATE, value: &value, length: strideof(Int32)) } public func setInvertMatching(value: Bool) throws { - var v = value ? 1 : 0 - try setOption(ZMQ_INVERT_MATCHING, value: &v, length: strideof(Int32)) + var value = value ? 1 : 0 + try setOption(ZMQ_INVERT_MATCHING, value: &value, length: strideof(Int32)) } public func setIPV6(value: Bool) throws { - var v = value ? 1 : 0 - try setOption(ZMQ_IPV6, value: &v, length: strideof(Int32)) + var value = value ? 1 : 0 + try setOption(ZMQ_IPV6, value: &value, length: strideof(Int32)) } - public func setLinger(var value: Int32) throws { + public func setLinger(value: Int32) throws { + var value = value try setOption(ZMQ_LINGER, value: &value, length: strideof(Int32)) } - public func setMaxMessageSize(var value: Int64) throws { + public func setMaxMessageSize(value: Int64) throws { + var value = value try setOption(ZMQ_MAXMSGSIZE, value: &value, length: strideof(Int64)) } - public func setMulticastHops(var value: Int32) throws { + public func setMulticastHops(value: Int32) throws { + var value = value try setOption(ZMQ_MULTICAST_HOPS, value: &value, length: strideof(Int32)) } @@ -343,78 +353,88 @@ extension Socket { } public func setProbeRouter(value: Bool) throws { - var v = value ? 1 : 0 - try setOption(ZMQ_PROBE_ROUTER, value: &v, length: strideof(Int32)) + var value = value ? 1 : 0 + try setOption(ZMQ_PROBE_ROUTER, value: &value, length: strideof(Int32)) } - public func setRate(var value: Int32) throws { + public func setRate(value: Int32) throws { + var value = value try setOption(ZMQ_RATE, value: &value, length: strideof(Int32)) } - public func setReceiveBuffer(var value: Int32) throws { + public func setReceiveBuffer(value: Int32) throws { + var value = value try setOption(ZMQ_RCVBUF, value: &value, length: strideof(Int32)) } - public func setReceiveHighWaterMark(var value: Int32) throws { + public func setReceiveHighWaterMark(value: Int32) throws { + var value = value try setOption(ZMQ_RCVHWM, value: &value, length: strideof(Int32)) } - public func setReceiveTimeout(var value: Int32) throws { + public func setReceiveTimeout(value: Int32) throws { + var value = value try setOption(ZMQ_RCVTIMEO, value: &value, length: strideof(Int32)) } - public func setReconnectInterval(var value: Int32) throws { + public func setReconnectInterval(value: Int32) throws { + var value = value try setOption(ZMQ_RECONNECT_IVL, value: &value, length: strideof(Int32)) } - public func setReconnectIntervalMax(var value: Int32) throws { + public func setReconnectIntervalMax(value: Int32) throws { + var value = value try setOption(ZMQ_RECONNECT_IVL_MAX, value: &value, length: strideof(Int32)) } - public func setRecoveryInterval(var value: Int32) throws { + public func setRecoveryInterval(value: Int32) throws { + var value = value try setOption(ZMQ_RECOVERY_IVL, value: &value, length: strideof(Int32)) } public func setReqCorrelate(value: Bool) throws { - var v = value ? 1 : 0 - try setOption(ZMQ_REQ_CORRELATE, value: &v, length: strideof(Int32)) + var value = value ? 1 : 0 + try setOption(ZMQ_REQ_CORRELATE, value: &value, length: strideof(Int32)) } public func setReqRelaxed(value: Bool) throws { - var v = value ? 1 : 0 - try setOption(ZMQ_REQ_RELAXED, value: &v, length: strideof(Int32)) + var value = value ? 1 : 0 + try setOption(ZMQ_REQ_RELAXED, value: &value, length: strideof(Int32)) } public func setRouterHandover(value: Bool) throws { - var v = value ? 1 : 0 - try setOption(ZMQ_ROUTER_HANDOVER, value: &v, length: strideof(Int32)) + var value = value ? 1 : 0 + try setOption(ZMQ_ROUTER_HANDOVER, value: &value, length: strideof(Int32)) } public func setRouterMandatory(value: Bool) throws { - var v = value ? 1 : 0 - try setOption(ZMQ_ROUTER_MANDATORY, value: &v, length: strideof(Int32)) + var value = value ? 1 : 0 + try setOption(ZMQ_ROUTER_MANDATORY, value: &value, length: strideof(Int32)) } public func setRouterRaw(value: Bool) throws { - var v = value ? 1 : 0 - try setOption(ZMQ_ROUTER_RAW, value: &v, length: strideof(Int32)) + var value = value ? 1 : 0 + try setOption(ZMQ_ROUTER_RAW, value: &value, length: strideof(Int32)) } - public func setSendBuffer(var value: Int32) throws { + public func setSendBuffer(value: Int32) throws { + var value = value try setOption(ZMQ_SNDBUF, value: &value, length: strideof(Int32)) } - public func setSendHighWaterMark(var value: Int32) throws { + public func setSendHighWaterMark(value: Int32) throws { + var value = value try setOption(ZMQ_SNDHWM, value: &value, length: strideof(Int32)) } - public func setSendTimeout(var value: Int32) throws { + public func setSendTimeout(value: Int32) throws { + var value = value try setOption(ZMQ_SNDTIMEO, value: &value, length: strideof(Int32)) } public func setStreamNotify(value: Bool) throws { - var v = value ? 1 : 0 - try setOption(ZMQ_STREAM_NOTIFY, value: &v, length: strideof(Int32)) + var value = value ? 1 : 0 + try setOption(ZMQ_STREAM_NOTIFY, value: &value, length: strideof(Int32)) } public func setSubscribe(value: String) throws { @@ -423,19 +443,23 @@ extension Socket { } } - public func setTCPKeepAlive(var value: Int32) throws { + public func setTCPKeepAlive(value: Int32) throws { + var value = value try setOption(ZMQ_TCP_KEEPALIVE, value: &value, length: strideof(Int32)) } - public func setTCPKeepAliveCount(var value: Int32) throws { + public func setTCPKeepAliveCount(value: Int32) throws { + var value = value try setOption(ZMQ_TCP_KEEPALIVE_CNT, value: &value, length: strideof(Int32)) } - public func setTCPKeepAliveIdle(var value: Int32) throws { + public func setTCPKeepAliveIdle(value: Int32) throws { + var value = value try setOption(ZMQ_TCP_KEEPALIVE_IDLE, value: &value, length: strideof(Int32)) } - public func setTCPKeepAliveInterval(var value: Int32) throws { + public func setTCPKeepAliveInterval(value: Int32) throws { + var value = value try setOption(ZMQ_TCP_KEEPALIVE_INTVL, value: &value, length: strideof(Int32)) } @@ -443,7 +467,8 @@ extension Socket { // try setOption(ZMQ_TCP_RETRANSMIT_TIMEOUT, value: &value, length: strideof(Int32)) // } - public func setTypeOfService(var value: Int32) throws { + public func setTypeOfService(value: Int32) throws { + var value = value try setOption(ZMQ_TOS, value: &value, length: strideof(Int32)) } @@ -832,7 +857,8 @@ extension SecurityMechanism { } extension Socket { - public func send(var buffer: [Int8], mode: SendMode = []) throws -> Bool { + public func send(buffer: [Int8], mode: SendMode = []) throws -> Bool { + var buffer = buffer return try send(&buffer, length: buffer.count, mode: mode) } diff --git a/SwiftZMQ.xcodeproj/project.pbxproj b/SwiftZMQ.xcodeproj/project.pbxproj index 80f762d..202cc7e 100644 --- a/SwiftZMQ.xcodeproj/project.pbxproj +++ b/SwiftZMQ.xcodeproj/project.pbxproj @@ -115,8 +115,8 @@ children = ( 53C76A2F1C4EE1FE00F0357B /* libc++.tbd */, B00ED9FA1BD8A2D900BBBBAE /* Dependencies */, - B00EDA351BDDD1FA00BBBBAE /* SwiftZMQ */, - B00EDA3F1BDDD1FB00BBBBAE /* SwiftZMQTests */, + B00EDA351BDDD1FA00BBBBAE /* Sources */, + B00EDA3F1BDDD1FB00BBBBAE /* Tests */, B00ED9E11BD8A2CD00BBBBAE /* Products */, ); sourceTree = ""; @@ -150,7 +150,7 @@ path = Dependencies/zeromq; sourceTree = ""; }; - B00EDA351BDDD1FA00BBBBAE /* SwiftZMQ */ = { + B00EDA351BDDD1FA00BBBBAE /* Sources */ = { isa = PBXGroup; children = ( B00EDA361BDDD1FB00BBBBAE /* Context.swift */, @@ -162,16 +162,16 @@ B00EDA371BDDD1FB00BBBBAE /* CURVE.swift */, B00EDA391BDDD1FB00BBBBAE /* Info.plist */, ); - path = SwiftZMQ; + path = Sources; sourceTree = ""; }; - B00EDA3F1BDDD1FB00BBBBAE /* SwiftZMQTests */ = { + B00EDA3F1BDDD1FB00BBBBAE /* Tests */ = { isa = PBXGroup; children = ( B00EDA401BDDD1FB00BBBBAE /* Info.plist */, B00EDA411BDDD1FB00BBBBAE /* ZMQTests.swift */, ); - path = SwiftZMQTests; + path = Tests; sourceTree = ""; }; /* End PBXGroup section */ @@ -407,7 +407,7 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_BITCODE = NO; FRAMEWORK_VERSION = A; - INFOPLIST_FILE = SwiftZMQ/Info.plist; + INFOPLIST_FILE = Sources/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; @@ -442,7 +442,7 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_BITCODE = NO; FRAMEWORK_VERSION = A; - INFOPLIST_FILE = SwiftZMQ/Info.plist; + INFOPLIST_FILE = Sources/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; @@ -563,7 +563,7 @@ DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; FRAMEWORK_VERSION = A; - INFOPLIST_FILE = SwiftZMQ/Info.plist; + INFOPLIST_FILE = Sources/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; LIBRARY_SEARCH_PATHS = ( @@ -596,7 +596,7 @@ DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; FRAMEWORK_VERSION = A; - INFOPLIST_FILE = SwiftZMQ/Info.plist; + INFOPLIST_FILE = Sources/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; LIBRARY_SEARCH_PATHS = ( @@ -621,7 +621,7 @@ isa = XCBuildConfiguration; buildSettings = { COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = SwiftZMQ/Info.plist; + INFOPLIST_FILE = Sources/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; OTHER_LDFLAGS = ""; PRODUCT_BUNDLE_IDENTIFIER = com.zewo.SwiftZMQTests; @@ -633,7 +633,7 @@ isa = XCBuildConfiguration; buildSettings = { COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = SwiftZMQ/Info.plist; + INFOPLIST_FILE = Sources/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; OTHER_LDFLAGS = ""; PRODUCT_BUNDLE_IDENTIFIER = com.zewo.SwiftZMQTests; diff --git a/SwiftZMQTests/Info.plist b/Tests/Info.plist similarity index 100% rename from SwiftZMQTests/Info.plist rename to Tests/Info.plist diff --git a/SwiftZMQTests/ZMQTests.swift b/Tests/ZMQTests.swift similarity index 100% rename from SwiftZMQTests/ZMQTests.swift rename to Tests/ZMQTests.swift