diff --git a/Sources/Venice/Handle.swift b/Sources/Venice/Handle.swift index a5c0691..64edd47 100644 --- a/Sources/Venice/Handle.swift +++ b/Sources/Venice/Handle.swift @@ -10,65 +10,15 @@ public typealias HandleDescriptor = Int32 /// Representation of a Venice resource like `Coroutine` and `Channel`. open class Handle { + /// Raw handle representing the resource. public var handle: HandleDescriptor + /// Initializes `Handle` with the raw handle. + /// + /// - Parameter handle: Raw handle representing the resource. public init(handle: HandleDescriptor) { self.handle = handle } - - /// Returns an opaque pointer associated with the passed type. - /// This function is a fundamental construct for building APIs on top of handles. - /// - /// The `type` argument is used as a unique ID. - /// An unique ID can be created like this: - /// - /// ```swift - /// let type = TypeIdentifier.make() - /// ``` - /// - /// The return value has no specified semantics. It is an opaque pointer. - /// - /// Pointers returned by hquery are meant to be cachable. - /// In other words, if you call hquery on the same handle with the same type multiple times, - /// the result should be the same. - /// - /// - Parameter type: Unique ID for a protocol type. - /// - Returns: An opaque pointer. - /// - Throws: The following errors might be thrown: - /// #### VeniceError.invalidFileDescriptor - /// Thrown when the operation is performed on an invalid a handle. - /// #### VeniceError.operationNotSupported - /// Thrown when the provided type parameter doesn't match any of the - /// types supported by the handle. - /// #### VeniceError.unexpectedError - /// Thrown when an unexpected error occurs. - /// This should never happen in the regular flow of an application. - func query(_ type: TypeIdentifier) throws -> T { - guard let result = hquery(handle, type.type) else { - switch errno { - case EBADF: - throw VeniceError.invalidHandle - case ENOTSUP: - throw VeniceError.operationNotSupported - default: - throw VeniceError.unexpectedError - } - } - - return result.assumingMemoryBound(to: T.self).pointee - } - - /// Checks if the handle is open. - /// - /// - Throws: The following errors might be thrown: - /// #### VeniceError.invalidHandle - /// Thrown when the operation is performed on an invalid a handle. - func check() throws { - errno = 0 - if hquery(handle, nil) == nil && errno == EBADF { - throw VeniceError.invalidHandle - } - } /// This function is used to inform the handle that there will be no more input. /// This gives it time to finish it's work and possibly inform the user when it is @@ -147,377 +97,3 @@ open class Handle { } } } - - - - - - - - - - -class Bar : CustomHandle, Bytestream { - private let bytestreamTable = BytestreamTable() - - public override init() throws { - try super.init() - - table.query = onQuery - table.done = onDone - table.close = onClose - - bytestreamTable.receive = onReceive - bytestreamTable.send = onSend - } - - public func frobnicate() throws { - try check() - print("bar frobnicate") - } - - private func onQuery(type: TypeIdentifier) -> QueryContext? { - print("bar query") - - switch type { - case BytestreamTable.type: - return bytestreamTable - default: - return nil - } - } - - private func onDone(deadline: Deadline) throws { - print("bar done") - } - - private func onClose() { - print("bar close") - } - - private func onReceive(buffers: [UnsafeMutableRawBufferPointer], deadline: Deadline) throws { - print("bar read") - } - - private func onSend(buffers: [UnsafeRawBufferPointer], deadline: Deadline) throws { - print("bar write") - } -} - -class Foo : CustomHandle { - private let bar: Bar - - public init(bar: Bar) throws { - self.bar = bar - - try super.init() - - table.done = onDone - table.close = onClose - } - - public func detach() throws -> Bar { - try check() - try close() - return bar - } - - private func onDone(deadline: Deadline) throws { - print("foo done") - } - - private func onClose() { - print("foo close") - } -} - -class CustomHandle : Handle { - public let table: HandleTable - - public init() throws { - table = try HandleTable() - super.init(handle: table.handle) - } -} - -/// Representation of a Venice resource. -final class HandleTable : QueryContext { - public var handle: HandleDescriptor - fileprivate let table: UnsafeMutablePointer - - public var query: (TypeIdentifier) -> QueryContext? = { _ in - return nil - } - - public var done: (Deadline) throws -> Void = { _ in - throw VeniceError.operationNotSupported - } - - public var close: (Void) -> Void = {} - - public var pointer: UnsafeMutableRawPointer { - return UnsafeMutableRawPointer(table) - } - - public init() throws { - table = UnsafeMutablePointer.allocate(capacity: 1) - table.pointee.query = hvfs_query - table.pointee.close = hvfs_close - table.pointee.done = hvfs_done - - let result = hmake(table) - - guard result != -1 else { - table.deallocate(capacity: 1) - - switch errno { - case ECANCELED: - throw VeniceError.canceled - case EINVAL: - throw VeniceError.unexpectedError - case ENOMEM: - throw VeniceError.outOfMemory - default: - throw VeniceError.unexpectedError - } - } - - handle = result - table.pointee.context = Unmanaged.passUnretained(self).toOpaque() - } - - deinit { - table.deallocate(capacity: 1) - } -} - -protocol QueryContext { - var pointer: UnsafeMutableRawPointer { get } -} - -protocol Bytestream { - var handle: HandleDescriptor { get } -} - -extension Bytestream { - func read(_ buffer: UnsafeMutableRawBufferPointer, deadline: Deadline) throws { - let result = brecv(handle, buffer.baseAddress, buffer.count, deadline.value) - - guard result != -1 else { - switch errno { - case EBADF: - throw VeniceError.invalidHandle - case ECANCELED: - throw VeniceError.canceled - case ECONNRESET: - throw VeniceError.brokenConnection - case EINVAL: - throw VeniceError.invalidArguments - case ENOMEM: - throw VeniceError.outOfMemory - case ENOTSUP: - throw VeniceError.operationNotSupported - case EPIPE: - throw VeniceError.closedConnection - case ETIMEDOUT: - throw VeniceError.deadlineReached - default: - throw VeniceError.unexpectedError - } - } - } - - func write(_ buffer: UnsafeRawBufferPointer, deadline: Deadline) throws{ - let result = bsend(handle, buffer.baseAddress, buffer.count, deadline.value) - - guard result != -1 else { - switch errno { - case EBADF: - throw VeniceError.invalidHandle - case ECANCELED: - throw VeniceError.canceled - case ECONNRESET: - throw VeniceError.brokenConnection - case EINVAL: - throw VeniceError.invalidArguments - case ENOMEM: - throw VeniceError.outOfMemory - case ENOTSUP: - throw VeniceError.operationNotSupported - case EPIPE: - throw VeniceError.closedConnection - case ETIMEDOUT: - throw VeniceError.deadlineReached - default: - throw VeniceError.unexpectedError - } - } - } -} - -final class BytestreamTable : QueryContext { - public static var type: TypeIdentifier { - return TypeIdentifier(bsock_type) - } - - public var receive: ([UnsafeMutableRawBufferPointer], Deadline) throws -> Void = { _ in} - public var send: ([UnsafeRawBufferPointer], Deadline) throws -> Void = { _ in } - - fileprivate var table: UnsafeMutablePointer - - public var pointer: UnsafeMutableRawPointer { - return UnsafeMutableRawPointer(table) - } - - public init() { - self.table = UnsafeMutablePointer.allocate(capacity: 1) - self.table.pointee.bsendl = bsendl - self.table.pointee.brecvl = brecvl - self.table.pointee.context = Unmanaged.passUnretained(self).toOpaque() - } - - deinit { - table.deallocate(capacity: 1) - } -} - -func brecvl( - table: UnsafeMutablePointer?, - first: UnsafeMutablePointer?, - last: UnsafeMutablePointer?, - deadline: Int64 -) -> Int { - guard let table = table else { - errno = ENOTSUP - return -1 - } - - let context = Unmanaged.fromOpaque(table.pointee.context).takeUnretainedValue() - var buffers: [UnsafeMutableRawBufferPointer] = [] - var next = first - - while let element = next?.pointee { - let buffer = UnsafeMutableRawBufferPointer( - start: element.iol_base, - count: element.iol_len - ) - - buffers.append(buffer) - next = element.iol_next - } - - do { - try context.receive(buffers, Deadline(deadline)) - return 0 - } catch { - return -1 - } -} - -func bsendl( - table: UnsafeMutablePointer?, - first: UnsafeMutablePointer?, - last: UnsafeMutablePointer?, - deadline: Int64 -) -> Int32 { - guard let table = table else { - errno = ENOTSUP - return -1 - } - - let context = Unmanaged.fromOpaque(table.pointee.context).takeUnretainedValue() - var buffers: [UnsafeRawBufferPointer] = [] - var next = first - - while let element = next?.pointee { - let buffer = UnsafeRawBufferPointer( - start: element.iol_base, - count: element.iol_len - ) - - buffers.append(buffer) - next = element.iol_next - } - - do { - try context.send(buffers, Deadline(deadline)) - return 0 - } catch { - return -1 - } -} - -fileprivate func hvfs_query( - table: UnsafeMutablePointer?, - type: UnsafeRawPointer? -) -> UnsafeMutableRawPointer? { - guard let table = table, let type = type else { - errno = ENOTSUP - return nil - } - - let context = Unmanaged.fromOpaque(table.pointee.context).takeUnretainedValue() - - guard let result = context.query(TypeIdentifier(type)) else { - errno = ENOTSUP - return nil - } - - return result.pointer -} - -fileprivate func hvfs_done(table: UnsafeMutablePointer?, deadline: Int64) -> Int32 { - guard let table = table else { - errno = ENOTSUP - return -1 - } - - let context = Unmanaged.fromOpaque(table.pointee.context).takeUnretainedValue() - - do { - try context.done(Deadline(deadline)) - return 0 - } catch { - return -1 - } -} - -fileprivate func hvfs_close(table: UnsafeMutablePointer?) { - guard let table = table else { - return - } - - let context = Unmanaged.fromOpaque(table.pointee.context).takeUnretainedValue() - return context.close() -} - -class TypeIdentifier { - let type: UnsafeRawPointer - let owned: Bool - - init(_ type: UnsafeRawPointer, owned: Bool = false) { - self.type = type - self.owned = owned - } - - convenience init() { - let type = UnsafeMutableRawPointer.allocate(bytes: 1, alignedTo: 1) - self.init(UnsafeRawPointer(type), owned: true) - } - - deinit { - if owned { - type.deallocate(bytes: 1, alignedTo: 1) - } - } - - public static func make() -> TypeIdentifier { - return TypeIdentifier() - } -} - -extension TypeIdentifier : Equatable { - static func == (lhs: TypeIdentifier, rhs: TypeIdentifier) -> Bool { - return lhs.type == rhs.type - } -} diff --git a/Sources/Venice/Time.swift b/Sources/Venice/Time.swift index e525f2a..0acb98d 100644 --- a/Sources/Venice/Time.swift +++ b/Sources/Venice/Time.swift @@ -54,6 +54,7 @@ extension Duration : Equatable { /// let deadline = 30.seconds.fromNow() /// ``` public struct Deadline { + /// Raw value representing the deadline. public let value: Int64 init(_ deadline: Int64) { diff --git a/docs/Channels.html b/docs/Channels.html index 533b3be..076044d 100644 --- a/docs/Channels.html +++ b/docs/Channels.html @@ -160,7 +160,7 @@

Declaration

diff --git a/docs/Classes/Channel.html b/docs/Classes/Channel.html index e0b9ea1..6a34885 100644 --- a/docs/Classes/Channel.html +++ b/docs/Classes/Channel.html @@ -397,7 +397,7 @@

Declaration

diff --git a/docs/Classes/Channel/ReceiveOnly.html b/docs/Classes/Channel/ReceiveOnly.html index 6b2aa8e..6b12f9d 100644 --- a/docs/Classes/Channel/ReceiveOnly.html +++ b/docs/Classes/Channel/ReceiveOnly.html @@ -153,7 +153,7 @@

Declaration

diff --git a/docs/Classes/Channel/SendOnly.html b/docs/Classes/Channel/SendOnly.html index fea4f06..1fc90df 100644 --- a/docs/Classes/Channel/SendOnly.html +++ b/docs/Classes/Channel/SendOnly.html @@ -180,7 +180,7 @@

Declaration

diff --git a/docs/Classes/Coroutine.html b/docs/Classes/Coroutine.html index 2601dab..aceb7d7 100644 --- a/docs/Classes/Coroutine.html +++ b/docs/Classes/Coroutine.html @@ -330,7 +330,7 @@

Declaration

diff --git a/docs/Classes/Coroutine/Group.html b/docs/Classes/Coroutine/Group.html index 51685ef..be01b91 100644 --- a/docs/Classes/Coroutine/Group.html +++ b/docs/Classes/Coroutine/Group.html @@ -316,7 +316,7 @@

Declaration

diff --git a/docs/Classes/FileDescriptor.html b/docs/Classes/FileDescriptor.html index ddfee8a..290e2f4 100644 --- a/docs/Classes/FileDescriptor.html +++ b/docs/Classes/FileDescriptor.html @@ -430,7 +430,7 @@

Declaration

diff --git a/docs/Classes/FileDescriptor/PollEvent.html b/docs/Classes/FileDescriptor/PollEvent.html index fdef4af..c8dae21 100644 --- a/docs/Classes/FileDescriptor/PollEvent.html +++ b/docs/Classes/FileDescriptor/PollEvent.html @@ -177,7 +177,7 @@

Declaration

diff --git a/docs/Classes/Handle.html b/docs/Classes/Handle.html index 16ab7ba..d3cf19c 100644 --- a/docs/Classes/Handle.html +++ b/docs/Classes/Handle.html @@ -102,7 +102,7 @@

Handle

-
public class Handle
+
open class Handle
@@ -112,6 +112,79 @@

Handle

    +
  • +
    + + + + handle + +
    +
    +
    +
    +
    +
    +

    Raw handle representing the resource.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var handle: HandleDescriptor
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(handle:) + +
    +
    +
    +
    +
    +
    +

    Initializes Handle with the raw handle.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(handle: HandleDescriptor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + handle + + +
    +

    Raw handle representing the resource.

    +
    +
    +
    +
    +
    +
  • @@ -170,7 +243,7 @@

    VeniceError.unexpectedError

    Declaration

    Swift

    -
    public func done(deadline: Deadline) throws
    +
    open func done(deadline: Deadline) throws
    @@ -238,7 +311,7 @@

    VeniceError.unexpectedError

    Declaration

    Swift

    -
    public func close() throws
    +
    open func close() throws
@@ -250,7 +323,7 @@

Declaration

diff --git a/docs/Coroutines.html b/docs/Coroutines.html index f6902aa..ba3d758 100644 --- a/docs/Coroutines.html +++ b/docs/Coroutines.html @@ -163,7 +163,7 @@

Declaration

diff --git a/docs/Enums/VeniceError.html b/docs/Enums/VeniceError.html index 2c3a460..25ffb9e 100644 --- a/docs/Enums/VeniceError.html +++ b/docs/Enums/VeniceError.html @@ -486,7 +486,7 @@

Declaration

diff --git a/docs/Errors.html b/docs/Errors.html index e9caedd..8d8f686 100644 --- a/docs/Errors.html +++ b/docs/Errors.html @@ -137,7 +137,7 @@

Declaration

diff --git a/docs/Extensions/Int.html b/docs/Extensions/Int.html index a4f6dc3..c3b4263 100644 --- a/docs/Extensions/Int.html +++ b/docs/Extensions/Int.html @@ -332,7 +332,7 @@

Declaration

diff --git a/docs/File Descriptors.html b/docs/File Descriptors.html index 91e2dc8..34dabc1 100644 --- a/docs/File Descriptors.html +++ b/docs/File Descriptors.html @@ -138,7 +138,7 @@

Declaration

diff --git a/docs/Handles.html b/docs/Handles.html index 1c1c38a..c2da329 100644 --- a/docs/Handles.html +++ b/docs/Handles.html @@ -125,7 +125,7 @@

Handles

Declaration

Swift

-
public class Handle
+
open class Handle
@@ -137,7 +137,7 @@

Declaration

diff --git a/docs/Structs/Deadline.html b/docs/Structs/Deadline.html index 07f29db..0809a62 100644 --- a/docs/Structs/Deadline.html +++ b/docs/Structs/Deadline.html @@ -118,6 +118,33 @@

Example:

    +
  • +
    + + + + value + +
    +
    +
    +
    +
    +
    +

    Raw value representing the deadline.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let value: Int64
    + +
    +
    +
    +
    +
  • @@ -204,7 +231,7 @@

    Declaration

diff --git a/docs/Structs/Duration.html b/docs/Structs/Duration.html index 8a0eebb..f94eee4 100644 --- a/docs/Structs/Duration.html +++ b/docs/Structs/Duration.html @@ -167,7 +167,7 @@

Declaration

diff --git a/docs/Time.html b/docs/Time.html index 16ad79f..c0d6bf8 100644 --- a/docs/Time.html +++ b/docs/Time.html @@ -221,7 +221,7 @@

Declaration

diff --git a/docs/docsets/Venice.docset/Contents/Resources/Documents/Channels.html b/docs/docsets/Venice.docset/Contents/Resources/Documents/Channels.html index 533b3be..076044d 100644 --- a/docs/docsets/Venice.docset/Contents/Resources/Documents/Channels.html +++ b/docs/docsets/Venice.docset/Contents/Resources/Documents/Channels.html @@ -160,7 +160,7 @@

Declaration

diff --git a/docs/docsets/Venice.docset/Contents/Resources/Documents/Classes/Channel.html b/docs/docsets/Venice.docset/Contents/Resources/Documents/Classes/Channel.html index e0b9ea1..6a34885 100644 --- a/docs/docsets/Venice.docset/Contents/Resources/Documents/Classes/Channel.html +++ b/docs/docsets/Venice.docset/Contents/Resources/Documents/Classes/Channel.html @@ -397,7 +397,7 @@

Declaration

diff --git a/docs/docsets/Venice.docset/Contents/Resources/Documents/Classes/Channel/ReceiveOnly.html b/docs/docsets/Venice.docset/Contents/Resources/Documents/Classes/Channel/ReceiveOnly.html index 6b2aa8e..6b12f9d 100644 --- a/docs/docsets/Venice.docset/Contents/Resources/Documents/Classes/Channel/ReceiveOnly.html +++ b/docs/docsets/Venice.docset/Contents/Resources/Documents/Classes/Channel/ReceiveOnly.html @@ -153,7 +153,7 @@

Declaration

diff --git a/docs/docsets/Venice.docset/Contents/Resources/Documents/Classes/Channel/SendOnly.html b/docs/docsets/Venice.docset/Contents/Resources/Documents/Classes/Channel/SendOnly.html index fea4f06..1fc90df 100644 --- a/docs/docsets/Venice.docset/Contents/Resources/Documents/Classes/Channel/SendOnly.html +++ b/docs/docsets/Venice.docset/Contents/Resources/Documents/Classes/Channel/SendOnly.html @@ -180,7 +180,7 @@

Declaration

diff --git a/docs/docsets/Venice.docset/Contents/Resources/Documents/Classes/Coroutine.html b/docs/docsets/Venice.docset/Contents/Resources/Documents/Classes/Coroutine.html index 2601dab..aceb7d7 100644 --- a/docs/docsets/Venice.docset/Contents/Resources/Documents/Classes/Coroutine.html +++ b/docs/docsets/Venice.docset/Contents/Resources/Documents/Classes/Coroutine.html @@ -330,7 +330,7 @@

Declaration

diff --git a/docs/docsets/Venice.docset/Contents/Resources/Documents/Classes/Coroutine/Group.html b/docs/docsets/Venice.docset/Contents/Resources/Documents/Classes/Coroutine/Group.html index 51685ef..be01b91 100644 --- a/docs/docsets/Venice.docset/Contents/Resources/Documents/Classes/Coroutine/Group.html +++ b/docs/docsets/Venice.docset/Contents/Resources/Documents/Classes/Coroutine/Group.html @@ -316,7 +316,7 @@

Declaration

diff --git a/docs/docsets/Venice.docset/Contents/Resources/Documents/Classes/FileDescriptor.html b/docs/docsets/Venice.docset/Contents/Resources/Documents/Classes/FileDescriptor.html index ddfee8a..290e2f4 100644 --- a/docs/docsets/Venice.docset/Contents/Resources/Documents/Classes/FileDescriptor.html +++ b/docs/docsets/Venice.docset/Contents/Resources/Documents/Classes/FileDescriptor.html @@ -430,7 +430,7 @@

Declaration

diff --git a/docs/docsets/Venice.docset/Contents/Resources/Documents/Classes/FileDescriptor/PollEvent.html b/docs/docsets/Venice.docset/Contents/Resources/Documents/Classes/FileDescriptor/PollEvent.html index fdef4af..c8dae21 100644 --- a/docs/docsets/Venice.docset/Contents/Resources/Documents/Classes/FileDescriptor/PollEvent.html +++ b/docs/docsets/Venice.docset/Contents/Resources/Documents/Classes/FileDescriptor/PollEvent.html @@ -177,7 +177,7 @@

Declaration

diff --git a/docs/docsets/Venice.docset/Contents/Resources/Documents/Classes/Handle.html b/docs/docsets/Venice.docset/Contents/Resources/Documents/Classes/Handle.html index 16ab7ba..d3cf19c 100644 --- a/docs/docsets/Venice.docset/Contents/Resources/Documents/Classes/Handle.html +++ b/docs/docsets/Venice.docset/Contents/Resources/Documents/Classes/Handle.html @@ -102,7 +102,7 @@

Handle

-
public class Handle
+
open class Handle
@@ -112,6 +112,79 @@

Handle

    +
  • +
    + + + + handle + +
    +
    +
    +
    +
    +
    +

    Raw handle representing the resource.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var handle: HandleDescriptor
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(handle:) + +
    +
    +
    +
    +
    +
    +

    Initializes Handle with the raw handle.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(handle: HandleDescriptor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + handle + + +
    +

    Raw handle representing the resource.

    +
    +
    +
    +
    +
    +
  • @@ -170,7 +243,7 @@

    VeniceError.unexpectedError

    Declaration

    Swift

    -
    public func done(deadline: Deadline) throws
    +
    open func done(deadline: Deadline) throws
    @@ -238,7 +311,7 @@

    VeniceError.unexpectedError

    Declaration

    Swift

    -
    public func close() throws
    +
    open func close() throws
@@ -250,7 +323,7 @@

Declaration

diff --git a/docs/docsets/Venice.docset/Contents/Resources/Documents/Coroutines.html b/docs/docsets/Venice.docset/Contents/Resources/Documents/Coroutines.html index f6902aa..ba3d758 100644 --- a/docs/docsets/Venice.docset/Contents/Resources/Documents/Coroutines.html +++ b/docs/docsets/Venice.docset/Contents/Resources/Documents/Coroutines.html @@ -163,7 +163,7 @@

Declaration

diff --git a/docs/docsets/Venice.docset/Contents/Resources/Documents/Enums/VeniceError.html b/docs/docsets/Venice.docset/Contents/Resources/Documents/Enums/VeniceError.html index 2c3a460..25ffb9e 100644 --- a/docs/docsets/Venice.docset/Contents/Resources/Documents/Enums/VeniceError.html +++ b/docs/docsets/Venice.docset/Contents/Resources/Documents/Enums/VeniceError.html @@ -486,7 +486,7 @@

Declaration

diff --git a/docs/docsets/Venice.docset/Contents/Resources/Documents/Errors.html b/docs/docsets/Venice.docset/Contents/Resources/Documents/Errors.html index e9caedd..8d8f686 100644 --- a/docs/docsets/Venice.docset/Contents/Resources/Documents/Errors.html +++ b/docs/docsets/Venice.docset/Contents/Resources/Documents/Errors.html @@ -137,7 +137,7 @@

Declaration

diff --git a/docs/docsets/Venice.docset/Contents/Resources/Documents/Extensions/Int.html b/docs/docsets/Venice.docset/Contents/Resources/Documents/Extensions/Int.html index a4f6dc3..c3b4263 100644 --- a/docs/docsets/Venice.docset/Contents/Resources/Documents/Extensions/Int.html +++ b/docs/docsets/Venice.docset/Contents/Resources/Documents/Extensions/Int.html @@ -332,7 +332,7 @@

Declaration

diff --git a/docs/docsets/Venice.docset/Contents/Resources/Documents/File Descriptors.html b/docs/docsets/Venice.docset/Contents/Resources/Documents/File Descriptors.html index 91e2dc8..34dabc1 100644 --- a/docs/docsets/Venice.docset/Contents/Resources/Documents/File Descriptors.html +++ b/docs/docsets/Venice.docset/Contents/Resources/Documents/File Descriptors.html @@ -138,7 +138,7 @@

Declaration

diff --git a/docs/docsets/Venice.docset/Contents/Resources/Documents/Handles.html b/docs/docsets/Venice.docset/Contents/Resources/Documents/Handles.html index 1c1c38a..c2da329 100644 --- a/docs/docsets/Venice.docset/Contents/Resources/Documents/Handles.html +++ b/docs/docsets/Venice.docset/Contents/Resources/Documents/Handles.html @@ -125,7 +125,7 @@

Handles

Declaration

Swift

-
public class Handle
+
open class Handle
@@ -137,7 +137,7 @@

Declaration

diff --git a/docs/docsets/Venice.docset/Contents/Resources/Documents/Structs/Deadline.html b/docs/docsets/Venice.docset/Contents/Resources/Documents/Structs/Deadline.html index 07f29db..0809a62 100644 --- a/docs/docsets/Venice.docset/Contents/Resources/Documents/Structs/Deadline.html +++ b/docs/docsets/Venice.docset/Contents/Resources/Documents/Structs/Deadline.html @@ -118,6 +118,33 @@

Example:

    +
  • +
    + + + + value + +
    +
    +
    +
    +
    +
    +

    Raw value representing the deadline.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let value: Int64
    + +
    +
    +
    +
    +
  • @@ -204,7 +231,7 @@

    Declaration

diff --git a/docs/docsets/Venice.docset/Contents/Resources/Documents/Structs/Duration.html b/docs/docsets/Venice.docset/Contents/Resources/Documents/Structs/Duration.html index 8a0eebb..f94eee4 100644 --- a/docs/docsets/Venice.docset/Contents/Resources/Documents/Structs/Duration.html +++ b/docs/docsets/Venice.docset/Contents/Resources/Documents/Structs/Duration.html @@ -167,7 +167,7 @@

Declaration

diff --git a/docs/docsets/Venice.docset/Contents/Resources/Documents/Time.html b/docs/docsets/Venice.docset/Contents/Resources/Documents/Time.html index 16ad79f..c0d6bf8 100644 --- a/docs/docsets/Venice.docset/Contents/Resources/Documents/Time.html +++ b/docs/docsets/Venice.docset/Contents/Resources/Documents/Time.html @@ -221,7 +221,7 @@

Declaration

diff --git a/docs/docsets/Venice.docset/Contents/Resources/Documents/index.html b/docs/docsets/Venice.docset/Contents/Resources/Documents/index.html index bb26f78..9275fb0 100644 --- a/docs/docsets/Venice.docset/Contents/Resources/Documents/index.html +++ b/docs/docsets/Venice.docset/Contents/Resources/Documents/index.html @@ -132,7 +132,7 @@

Installation

let package = Package( dependencies: [ - .Package(url: "https://github.com/Zewo/Venice.git", majorVersion: 0, minor: 15) + .Package(url: "https://github.com/Zewo/Venice.git", majorVersion: 0, minor: 17) ] )
@@ -189,7 +189,7 @@

License

diff --git a/docs/docsets/Venice.docset/Contents/Resources/Documents/search.json b/docs/docsets/Venice.docset/Contents/Resources/Documents/search.json index 624c9cc..66551e2 100644 --- a/docs/docsets/Venice.docset/Contents/Resources/Documents/search.json +++ b/docs/docsets/Venice.docset/Contents/Resources/Documents/search.json @@ -1 +1 @@ -{"Enums/VeniceError.html#/s:FO6Venice11VeniceError8canceledFMS0_S0_":{"name":"canceled","abstract":"

Thrown when the operation is performed on a closed handle.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError21operationNotSupportedFMS0_S0_":{"name":"operationNotSupported","abstract":"

Thrown when the operation is not supported.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError13invalidHandleFMS0_S0_":{"name":"invalidHandle","abstract":"

Thrown when the operation is performed on an invalid handle.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError21invalidFileDescriptorFMS0_S0_":{"name":"invalidFileDescriptor","abstract":"

Thrown when the operation is performed on an invalid file descriptor.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError39fileDescriptorBlockedInAnotherCoroutineFMS0_S0_":{"name":"fileDescriptorBlockedInAnotherCoroutine","abstract":"

Thrown when another coroutine is already blocked on poll with this file descriptor.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError15deadlineReachedFMS0_S0_":{"name":"deadlineReached","abstract":"

Thrown when the operation reaches the deadline.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError11outOfMemoryFMS0_S0_":{"name":"outOfMemory","abstract":"

Thrown when the system doesn’t have enough memory to perform the operation.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError12handleIsDoneFMS0_S0_":{"name":"handleIsDone","abstract":"

Thrown when the operation is performed on an done handle.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError16brokenConnectionFMS0_S0_":{"name":"brokenConnection","abstract":"

Thrown when the operation is performed on a broken connection.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError16closedConnectionFMS0_S0_":{"name":"closedConnection","abstract":"

Thrown when the operation is performed on a closed connection.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError16invalidArgumentsFMS0_S0_":{"name":"invalidArguments","abstract":"

Thrown when the operation is performed with invalid arguments.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError15unexpectedErrorFMS0_S0_":{"name":"unexpectedError","abstract":"

Thrown when an unexpected error occurs.","parent_name":"VeniceError"},"Enums/VeniceError.html":{"name":"VeniceError","abstract":"

Venice operation error

"},"Extensions/Int.html#/s:vE6VeniceSi11millisecondVS_8Duration":{"name":"millisecond","abstract":"

Duration represented in milliseconds.

","parent_name":"Int"},"Extensions/Int.html#/s:vE6VeniceSi12millisecondsVS_8Duration":{"name":"milliseconds","abstract":"

Duration represented in milliseconds.

","parent_name":"Int"},"Extensions/Int.html#/s:vE6VeniceSi6secondVS_8Duration":{"name":"second","abstract":"

Duration represented in seconds.

","parent_name":"Int"},"Extensions/Int.html#/s:vE6VeniceSi7secondsVS_8Duration":{"name":"seconds","abstract":"

Duration represented in seconds.

","parent_name":"Int"},"Extensions/Int.html#/s:vE6VeniceSi6minuteVS_8Duration":{"name":"minute","abstract":"

Duration represented in minutes.

","parent_name":"Int"},"Extensions/Int.html#/s:vE6VeniceSi7minutesVS_8Duration":{"name":"minutes","abstract":"

Duration represented in minutes.

","parent_name":"Int"},"Extensions/Int.html#/s:vE6VeniceSi4hourVS_8Duration":{"name":"hour","abstract":"

Duration represented in hours.

","parent_name":"Int"},"Extensions/Int.html#/s:vE6VeniceSi5hoursVS_8Duration":{"name":"hours","abstract":"

Duration represented in hours.

","parent_name":"Int"},"Structs/Deadline.html#/s:ZFV6Venice8Deadline3nowFT_S0_":{"name":"now()","abstract":"

Deadline representing now.

","parent_name":"Deadline"},"Structs/Deadline.html#/s:ZvV6Venice8Deadline11immediatelyS0_":{"name":"immediately","abstract":"

Special value to be used if the operation needs to be performed without blocking.

","parent_name":"Deadline"},"Structs/Deadline.html#/s:ZvV6Venice8Deadline5neverS0_":{"name":"never","abstract":"

Special value to be used to allow the operation to block forever if needed.

","parent_name":"Deadline"},"Structs/Duration.html#/s:FV6Venice8Duration7fromNowFT_VS_8Deadline":{"name":"fromNow()","abstract":"

Creates a Deadline from the duration.

","parent_name":"Duration"},"Structs/Duration.html":{"name":"Duration","abstract":"

Representation of a time interval.

"},"Structs/Deadline.html":{"name":"Deadline","abstract":"

Representation of a deadline.

"},"Extensions/Int.html":{"name":"Int"},"Classes/FileDescriptor/PollEvent.html#/s:FOC6Venice14FileDescriptor9PollEvent4readFMS1_S1_":{"name":"read","abstract":"

Event which represents when data is available","parent_name":"PollEvent"},"Classes/FileDescriptor/PollEvent.html#/s:FOC6Venice14FileDescriptor9PollEvent5writeFMS1_S1_":{"name":"write","abstract":"

Event which represents when writing to the file","parent_name":"PollEvent"},"Classes/FileDescriptor.html#/s:vC6Venice14FileDescriptor14fileDescriptorVs5Int32":{"name":"fileDescriptor","abstract":"

File descriptor handle.

","parent_name":"FileDescriptor"},"Classes/FileDescriptor.html#/s:FC6Venice14FileDescriptorcFzVs5Int32S0_":{"name":"init(_:)","abstract":"

Creates a FileDescriptor from a file descriptor handle and","parent_name":"FileDescriptor"},"Classes/FileDescriptor.html#/s:FC6Venice14FileDescriptor4pollFzT5eventOS0_9PollEvent8deadlineVS_8Deadline_T_":{"name":"poll(event:deadline:)","abstract":"

Waits for the file descriptor to become either readable/writable","parent_name":"FileDescriptor"},"Classes/FileDescriptor.html#/s:FC6Venice14FileDescriptor5cleanFT_T_":{"name":"clean()","abstract":"

Erases cached info about a file descriptor.

","parent_name":"FileDescriptor"},"Classes/FileDescriptor.html#/s:FC6Venice14FileDescriptor5closeFzT_T_":{"name":"close()","abstract":"

Closes a file descriptor, so that it no longer refers to any","parent_name":"FileDescriptor"},"Classes/FileDescriptor.html#/s:FC6Venice14FileDescriptor6detachFT_Vs5Int32":{"name":"detach()","abstract":"

Detaches the underlying fileDescriptor.","parent_name":"FileDescriptor"},"Classes/FileDescriptor/PollEvent.html":{"name":"PollEvent","abstract":"

Event used to poll file descriptors for reading or writing.

","parent_name":"FileDescriptor"},"Classes/FileDescriptor.html":{"name":"FileDescriptor","abstract":"

A handle used to access a file or other input/output resource,"},"Classes/Channel/ReceiveOnly.html#/s:FCC6Venice7Channel11ReceiveOnly7receiveFzT8deadlineVS_8Deadline_x":{"name":"receive(deadline:)","abstract":"

Receives a value from channel.

","parent_name":"ReceiveOnly"},"Classes/Channel/SendOnly.html#/s:FCC6Venice7Channel8SendOnly4sendFzTx8deadlineVS_8Deadline_T_":{"name":"send(_:deadline:)","abstract":"

Sends a value to the channel.

","parent_name":"SendOnly"},"Classes/Channel/SendOnly.html#/s:FCC6Venice7Channel8SendOnly4sendFzTPs5Error_8deadlineVS_8Deadline_T_":{"name":"send(_:deadline:)","abstract":"

Sends an error to the channel.

","parent_name":"SendOnly"},"Classes/Channel.html#/s:FC6Venice7ChannelcFzT_GS0_x_":{"name":"init()","abstract":"

Creates a channel

","parent_name":"Channel"},"Classes/Channel.html#/s:vC6Venice7Channel8sendOnlyGCS0_8SendOnlyx__":{"name":"sendOnly","abstract":"

Reference to the channel which can only send.

","parent_name":"Channel"},"Classes/Channel.html#/s:vC6Venice7Channel11receiveOnlyGCS0_11ReceiveOnlyx__":{"name":"receiveOnly","abstract":"

Reference to the channel which can only receive.

","parent_name":"Channel"},"Classes/Channel.html#/s:FC6Venice7Channel4sendFzTx8deadlineVS_8Deadline_T_":{"name":"send(_:deadline:)","abstract":"

Sends a value to the channel.

","parent_name":"Channel"},"Classes/Channel.html#/s:FC6Venice7Channel4sendFzTPs5Error_8deadlineVS_8Deadline_T_":{"name":"send(_:deadline:)","abstract":"

Sends an error to the channel.

","parent_name":"Channel"},"Classes/Channel.html#/s:FC6Venice7Channel7receiveFzT8deadlineVS_8Deadline_x":{"name":"receive(deadline:)","abstract":"

Receives a value from channel.

","parent_name":"Channel"},"Classes/Channel/SendOnly.html":{"name":"SendOnly","abstract":"

Send-only reference to an existing channel.

","parent_name":"Channel"},"Classes/Channel/ReceiveOnly.html":{"name":"ReceiveOnly","abstract":"

Receive-only reference to an existing channel.

","parent_name":"Channel"},"Classes/Channel.html":{"name":"Channel","abstract":"

A channel is a synchronization primitive.

"},"Classes/Coroutine/Group.html#/s:FCC6Venice9Coroutine5GroupcFT15minimumCapacitySi_S1_":{"name":"init(minimumCapacity:)","abstract":"

Creates a new, empty coroutine group with at least the specified number","parent_name":"Group"},"Classes/Coroutine/Group.html#/s:FCC6Venice9Coroutine5Group12addCoroutineFzT4bodyFzT_T__S0_":{"name":"addCoroutine(body:)","abstract":"

Creates a lightweight coroutine and adds it to the group.

","parent_name":"Group"},"Classes/Coroutine/Group.html#/s:FCC6Venice9Coroutine5Group5closeFzT_T_":{"name":"close()","abstract":"

Closes all coroutines in the group.

","parent_name":"Group"},"Classes/Coroutine.html#/s:FC6Venice9CoroutinecFzT4bodyFzT_T__S0_":{"name":"init(body:)","abstract":"

Launches a coroutine that executes the closure passed as argument.","parent_name":"Coroutine"},"Classes/Coroutine.html#/s:ZFC6Venice9Coroutine5yieldFzT_T_":{"name":"yield()","abstract":"

Explicitly passes control to other coroutines.","parent_name":"Coroutine"},"Classes/Coroutine.html#/s:ZFC6Venice9Coroutine6wakeUpFzVS_8DeadlineT_":{"name":"wakeUp(_:)","abstract":"

Wakes up at deadline.

","parent_name":"Coroutine"},"Classes/Coroutine/Group.html":{"name":"Group","abstract":"

Coroutine groups are useful for closing multiple coroutines at the","parent_name":"Coroutine"},"Classes/Coroutine.html":{"name":"Coroutine","abstract":"

Lightweight coroutine.

"},"Classes/Handle.html#/s:FC6Venice6Handle4doneFzT8deadlineVS_8Deadline_T_":{"name":"done(deadline:)","abstract":"

This function is used to inform the handle that there will be no more input.","parent_name":"Handle"},"Classes/Handle.html#/s:FC6Venice6Handle5closeFzT_T_":{"name":"close()","abstract":"

Closes the handle.

","parent_name":"Handle"},"Classes/Handle.html":{"name":"Handle","abstract":"

Representation of a Venice resource like Coroutine and Channel.

"},"Handles.html":{"name":"Handles"},"Coroutines.html":{"name":"Coroutines"},"Channels.html":{"name":"Channels"},"File Descriptors.html":{"name":"File Descriptors"},"Time.html":{"name":"Time"},"Errors.html":{"name":"Errors"}} \ No newline at end of file +{"Enums/VeniceError.html#/s:FO6Venice11VeniceError8canceledFMS0_S0_":{"name":"canceled","abstract":"

Thrown when the operation is performed on a closed handle.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError21operationNotSupportedFMS0_S0_":{"name":"operationNotSupported","abstract":"

Thrown when the operation is not supported.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError13invalidHandleFMS0_S0_":{"name":"invalidHandle","abstract":"

Thrown when the operation is performed on an invalid handle.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError21invalidFileDescriptorFMS0_S0_":{"name":"invalidFileDescriptor","abstract":"

Thrown when the operation is performed on an invalid file descriptor.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError39fileDescriptorBlockedInAnotherCoroutineFMS0_S0_":{"name":"fileDescriptorBlockedInAnotherCoroutine","abstract":"

Thrown when another coroutine is already blocked on poll with this file descriptor.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError15deadlineReachedFMS0_S0_":{"name":"deadlineReached","abstract":"

Thrown when the operation reaches the deadline.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError11outOfMemoryFMS0_S0_":{"name":"outOfMemory","abstract":"

Thrown when the system doesn’t have enough memory to perform the operation.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError12handleIsDoneFMS0_S0_":{"name":"handleIsDone","abstract":"

Thrown when the operation is performed on an done handle.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError16brokenConnectionFMS0_S0_":{"name":"brokenConnection","abstract":"

Thrown when the operation is performed on a broken connection.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError16closedConnectionFMS0_S0_":{"name":"closedConnection","abstract":"

Thrown when the operation is performed on a closed connection.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError16invalidArgumentsFMS0_S0_":{"name":"invalidArguments","abstract":"

Thrown when the operation is performed with invalid arguments.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError15unexpectedErrorFMS0_S0_":{"name":"unexpectedError","abstract":"

Thrown when an unexpected error occurs.","parent_name":"VeniceError"},"Enums/VeniceError.html":{"name":"VeniceError","abstract":"

Venice operation error

"},"Extensions/Int.html#/s:vE6VeniceSi11millisecondVS_8Duration":{"name":"millisecond","abstract":"

Duration represented in milliseconds.

","parent_name":"Int"},"Extensions/Int.html#/s:vE6VeniceSi12millisecondsVS_8Duration":{"name":"milliseconds","abstract":"

Duration represented in milliseconds.

","parent_name":"Int"},"Extensions/Int.html#/s:vE6VeniceSi6secondVS_8Duration":{"name":"second","abstract":"

Duration represented in seconds.

","parent_name":"Int"},"Extensions/Int.html#/s:vE6VeniceSi7secondsVS_8Duration":{"name":"seconds","abstract":"

Duration represented in seconds.

","parent_name":"Int"},"Extensions/Int.html#/s:vE6VeniceSi6minuteVS_8Duration":{"name":"minute","abstract":"

Duration represented in minutes.

","parent_name":"Int"},"Extensions/Int.html#/s:vE6VeniceSi7minutesVS_8Duration":{"name":"minutes","abstract":"

Duration represented in minutes.

","parent_name":"Int"},"Extensions/Int.html#/s:vE6VeniceSi4hourVS_8Duration":{"name":"hour","abstract":"

Duration represented in hours.

","parent_name":"Int"},"Extensions/Int.html#/s:vE6VeniceSi5hoursVS_8Duration":{"name":"hours","abstract":"

Duration represented in hours.

","parent_name":"Int"},"Structs/Deadline.html#/s:vV6Venice8Deadline5valueVs5Int64":{"name":"value","abstract":"

Raw value representing the deadline.

","parent_name":"Deadline"},"Structs/Deadline.html#/s:ZFV6Venice8Deadline3nowFT_S0_":{"name":"now()","abstract":"

Deadline representing now.

","parent_name":"Deadline"},"Structs/Deadline.html#/s:ZvV6Venice8Deadline11immediatelyS0_":{"name":"immediately","abstract":"

Special value to be used if the operation needs to be performed without blocking.

","parent_name":"Deadline"},"Structs/Deadline.html#/s:ZvV6Venice8Deadline5neverS0_":{"name":"never","abstract":"

Special value to be used to allow the operation to block forever if needed.

","parent_name":"Deadline"},"Structs/Duration.html#/s:FV6Venice8Duration7fromNowFT_VS_8Deadline":{"name":"fromNow()","abstract":"

Creates a Deadline from the duration.

","parent_name":"Duration"},"Structs/Duration.html":{"name":"Duration","abstract":"

Representation of a time interval.

"},"Structs/Deadline.html":{"name":"Deadline","abstract":"

Representation of a deadline.

"},"Extensions/Int.html":{"name":"Int"},"Classes/FileDescriptor/PollEvent.html#/s:FOC6Venice14FileDescriptor9PollEvent4readFMS1_S1_":{"name":"read","abstract":"

Event which represents when data is available","parent_name":"PollEvent"},"Classes/FileDescriptor/PollEvent.html#/s:FOC6Venice14FileDescriptor9PollEvent5writeFMS1_S1_":{"name":"write","abstract":"

Event which represents when writing to the file","parent_name":"PollEvent"},"Classes/FileDescriptor.html#/s:vC6Venice14FileDescriptor14fileDescriptorVs5Int32":{"name":"fileDescriptor","abstract":"

File descriptor handle.

","parent_name":"FileDescriptor"},"Classes/FileDescriptor.html#/s:FC6Venice14FileDescriptorcFzVs5Int32S0_":{"name":"init(_:)","abstract":"

Creates a FileDescriptor from a file descriptor handle and","parent_name":"FileDescriptor"},"Classes/FileDescriptor.html#/s:FC6Venice14FileDescriptor4pollFzT5eventOS0_9PollEvent8deadlineVS_8Deadline_T_":{"name":"poll(event:deadline:)","abstract":"

Waits for the file descriptor to become either readable/writable","parent_name":"FileDescriptor"},"Classes/FileDescriptor.html#/s:FC6Venice14FileDescriptor5cleanFT_T_":{"name":"clean()","abstract":"

Erases cached info about a file descriptor.

","parent_name":"FileDescriptor"},"Classes/FileDescriptor.html#/s:FC6Venice14FileDescriptor5closeFzT_T_":{"name":"close()","abstract":"

Closes a file descriptor, so that it no longer refers to any","parent_name":"FileDescriptor"},"Classes/FileDescriptor.html#/s:FC6Venice14FileDescriptor6detachFT_Vs5Int32":{"name":"detach()","abstract":"

Detaches the underlying fileDescriptor.","parent_name":"FileDescriptor"},"Classes/FileDescriptor/PollEvent.html":{"name":"PollEvent","abstract":"

Event used to poll file descriptors for reading or writing.

","parent_name":"FileDescriptor"},"Classes/FileDescriptor.html":{"name":"FileDescriptor","abstract":"

A handle used to access a file or other input/output resource,"},"Classes/Channel/ReceiveOnly.html#/s:FCC6Venice7Channel11ReceiveOnly7receiveFzT8deadlineVS_8Deadline_x":{"name":"receive(deadline:)","abstract":"

Receives a value from channel.

","parent_name":"ReceiveOnly"},"Classes/Channel/SendOnly.html#/s:FCC6Venice7Channel8SendOnly4sendFzTx8deadlineVS_8Deadline_T_":{"name":"send(_:deadline:)","abstract":"

Sends a value to the channel.

","parent_name":"SendOnly"},"Classes/Channel/SendOnly.html#/s:FCC6Venice7Channel8SendOnly4sendFzTPs5Error_8deadlineVS_8Deadline_T_":{"name":"send(_:deadline:)","abstract":"

Sends an error to the channel.

","parent_name":"SendOnly"},"Classes/Channel.html#/s:FC6Venice7ChannelcFzT_GS0_x_":{"name":"init()","abstract":"

Creates a channel

","parent_name":"Channel"},"Classes/Channel.html#/s:vC6Venice7Channel8sendOnlyGCS0_8SendOnlyx__":{"name":"sendOnly","abstract":"

Reference to the channel which can only send.

","parent_name":"Channel"},"Classes/Channel.html#/s:vC6Venice7Channel11receiveOnlyGCS0_11ReceiveOnlyx__":{"name":"receiveOnly","abstract":"

Reference to the channel which can only receive.

","parent_name":"Channel"},"Classes/Channel.html#/s:FC6Venice7Channel4sendFzTx8deadlineVS_8Deadline_T_":{"name":"send(_:deadline:)","abstract":"

Sends a value to the channel.

","parent_name":"Channel"},"Classes/Channel.html#/s:FC6Venice7Channel4sendFzTPs5Error_8deadlineVS_8Deadline_T_":{"name":"send(_:deadline:)","abstract":"

Sends an error to the channel.

","parent_name":"Channel"},"Classes/Channel.html#/s:FC6Venice7Channel7receiveFzT8deadlineVS_8Deadline_x":{"name":"receive(deadline:)","abstract":"

Receives a value from channel.

","parent_name":"Channel"},"Classes/Channel/SendOnly.html":{"name":"SendOnly","abstract":"

Send-only reference to an existing channel.

","parent_name":"Channel"},"Classes/Channel/ReceiveOnly.html":{"name":"ReceiveOnly","abstract":"

Receive-only reference to an existing channel.

","parent_name":"Channel"},"Classes/Channel.html":{"name":"Channel","abstract":"

A channel is a synchronization primitive.

"},"Classes/Coroutine/Group.html#/s:FCC6Venice9Coroutine5GroupcFT15minimumCapacitySi_S1_":{"name":"init(minimumCapacity:)","abstract":"

Creates a new, empty coroutine group with at least the specified number","parent_name":"Group"},"Classes/Coroutine/Group.html#/s:FCC6Venice9Coroutine5Group12addCoroutineFzT4bodyFzT_T__S0_":{"name":"addCoroutine(body:)","abstract":"

Creates a lightweight coroutine and adds it to the group.

","parent_name":"Group"},"Classes/Coroutine/Group.html#/s:FCC6Venice9Coroutine5Group5closeFzT_T_":{"name":"close()","abstract":"

Closes all coroutines in the group.

","parent_name":"Group"},"Classes/Coroutine.html#/s:FC6Venice9CoroutinecFzT4bodyFzT_T__S0_":{"name":"init(body:)","abstract":"

Launches a coroutine that executes the closure passed as argument.","parent_name":"Coroutine"},"Classes/Coroutine.html#/s:ZFC6Venice9Coroutine5yieldFzT_T_":{"name":"yield()","abstract":"

Explicitly passes control to other coroutines.","parent_name":"Coroutine"},"Classes/Coroutine.html#/s:ZFC6Venice9Coroutine6wakeUpFzVS_8DeadlineT_":{"name":"wakeUp(_:)","abstract":"

Wakes up at deadline.

","parent_name":"Coroutine"},"Classes/Coroutine/Group.html":{"name":"Group","abstract":"

Coroutine groups are useful for closing multiple coroutines at the","parent_name":"Coroutine"},"Classes/Coroutine.html":{"name":"Coroutine","abstract":"

Lightweight coroutine.

"},"Classes/Handle.html#/s:vC6Venice6Handle6handleVs5Int32":{"name":"handle","abstract":"

Raw handle representing the resource.

","parent_name":"Handle"},"Classes/Handle.html#/s:FC6Venice6HandlecFT6handleVs5Int32_S0_":{"name":"init(handle:)","abstract":"

Initializes Handle with the raw handle.

","parent_name":"Handle"},"Classes/Handle.html#/s:FC6Venice6Handle4doneFzT8deadlineVS_8Deadline_T_":{"name":"done(deadline:)","abstract":"

This function is used to inform the handle that there will be no more input.","parent_name":"Handle"},"Classes/Handle.html#/s:FC6Venice6Handle5closeFzT_T_":{"name":"close()","abstract":"

Closes the handle.

","parent_name":"Handle"},"Classes/Handle.html":{"name":"Handle","abstract":"

Representation of a Venice resource like Coroutine and Channel.

"},"Handles.html":{"name":"Handles"},"Coroutines.html":{"name":"Coroutines"},"Channels.html":{"name":"Channels"},"File Descriptors.html":{"name":"File Descriptors"},"Time.html":{"name":"Time"},"Errors.html":{"name":"Errors"}} \ No newline at end of file diff --git a/docs/docsets/Venice.docset/Contents/Resources/docSet.dsidx b/docs/docsets/Venice.docset/Contents/Resources/docSet.dsidx index 86046ee..25a2c29 100644 Binary files a/docs/docsets/Venice.docset/Contents/Resources/docSet.dsidx and b/docs/docsets/Venice.docset/Contents/Resources/docSet.dsidx differ diff --git a/docs/docsets/Venice.tgz b/docs/docsets/Venice.tgz index 3ed1232..985a138 100644 Binary files a/docs/docsets/Venice.tgz and b/docs/docsets/Venice.tgz differ diff --git a/docs/index.html b/docs/index.html index bb26f78..9275fb0 100644 --- a/docs/index.html +++ b/docs/index.html @@ -132,7 +132,7 @@

Installation

let package = Package( dependencies: [ - .Package(url: "https://github.com/Zewo/Venice.git", majorVersion: 0, minor: 15) + .Package(url: "https://github.com/Zewo/Venice.git", majorVersion: 0, minor: 17) ] )
@@ -189,7 +189,7 @@

License

diff --git a/docs/search.json b/docs/search.json index 624c9cc..66551e2 100644 --- a/docs/search.json +++ b/docs/search.json @@ -1 +1 @@ -{"Enums/VeniceError.html#/s:FO6Venice11VeniceError8canceledFMS0_S0_":{"name":"canceled","abstract":"

Thrown when the operation is performed on a closed handle.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError21operationNotSupportedFMS0_S0_":{"name":"operationNotSupported","abstract":"

Thrown when the operation is not supported.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError13invalidHandleFMS0_S0_":{"name":"invalidHandle","abstract":"

Thrown when the operation is performed on an invalid handle.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError21invalidFileDescriptorFMS0_S0_":{"name":"invalidFileDescriptor","abstract":"

Thrown when the operation is performed on an invalid file descriptor.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError39fileDescriptorBlockedInAnotherCoroutineFMS0_S0_":{"name":"fileDescriptorBlockedInAnotherCoroutine","abstract":"

Thrown when another coroutine is already blocked on poll with this file descriptor.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError15deadlineReachedFMS0_S0_":{"name":"deadlineReached","abstract":"

Thrown when the operation reaches the deadline.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError11outOfMemoryFMS0_S0_":{"name":"outOfMemory","abstract":"

Thrown when the system doesn’t have enough memory to perform the operation.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError12handleIsDoneFMS0_S0_":{"name":"handleIsDone","abstract":"

Thrown when the operation is performed on an done handle.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError16brokenConnectionFMS0_S0_":{"name":"brokenConnection","abstract":"

Thrown when the operation is performed on a broken connection.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError16closedConnectionFMS0_S0_":{"name":"closedConnection","abstract":"

Thrown when the operation is performed on a closed connection.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError16invalidArgumentsFMS0_S0_":{"name":"invalidArguments","abstract":"

Thrown when the operation is performed with invalid arguments.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError15unexpectedErrorFMS0_S0_":{"name":"unexpectedError","abstract":"

Thrown when an unexpected error occurs.","parent_name":"VeniceError"},"Enums/VeniceError.html":{"name":"VeniceError","abstract":"

Venice operation error

"},"Extensions/Int.html#/s:vE6VeniceSi11millisecondVS_8Duration":{"name":"millisecond","abstract":"

Duration represented in milliseconds.

","parent_name":"Int"},"Extensions/Int.html#/s:vE6VeniceSi12millisecondsVS_8Duration":{"name":"milliseconds","abstract":"

Duration represented in milliseconds.

","parent_name":"Int"},"Extensions/Int.html#/s:vE6VeniceSi6secondVS_8Duration":{"name":"second","abstract":"

Duration represented in seconds.

","parent_name":"Int"},"Extensions/Int.html#/s:vE6VeniceSi7secondsVS_8Duration":{"name":"seconds","abstract":"

Duration represented in seconds.

","parent_name":"Int"},"Extensions/Int.html#/s:vE6VeniceSi6minuteVS_8Duration":{"name":"minute","abstract":"

Duration represented in minutes.

","parent_name":"Int"},"Extensions/Int.html#/s:vE6VeniceSi7minutesVS_8Duration":{"name":"minutes","abstract":"

Duration represented in minutes.

","parent_name":"Int"},"Extensions/Int.html#/s:vE6VeniceSi4hourVS_8Duration":{"name":"hour","abstract":"

Duration represented in hours.

","parent_name":"Int"},"Extensions/Int.html#/s:vE6VeniceSi5hoursVS_8Duration":{"name":"hours","abstract":"

Duration represented in hours.

","parent_name":"Int"},"Structs/Deadline.html#/s:ZFV6Venice8Deadline3nowFT_S0_":{"name":"now()","abstract":"

Deadline representing now.

","parent_name":"Deadline"},"Structs/Deadline.html#/s:ZvV6Venice8Deadline11immediatelyS0_":{"name":"immediately","abstract":"

Special value to be used if the operation needs to be performed without blocking.

","parent_name":"Deadline"},"Structs/Deadline.html#/s:ZvV6Venice8Deadline5neverS0_":{"name":"never","abstract":"

Special value to be used to allow the operation to block forever if needed.

","parent_name":"Deadline"},"Structs/Duration.html#/s:FV6Venice8Duration7fromNowFT_VS_8Deadline":{"name":"fromNow()","abstract":"

Creates a Deadline from the duration.

","parent_name":"Duration"},"Structs/Duration.html":{"name":"Duration","abstract":"

Representation of a time interval.

"},"Structs/Deadline.html":{"name":"Deadline","abstract":"

Representation of a deadline.

"},"Extensions/Int.html":{"name":"Int"},"Classes/FileDescriptor/PollEvent.html#/s:FOC6Venice14FileDescriptor9PollEvent4readFMS1_S1_":{"name":"read","abstract":"

Event which represents when data is available","parent_name":"PollEvent"},"Classes/FileDescriptor/PollEvent.html#/s:FOC6Venice14FileDescriptor9PollEvent5writeFMS1_S1_":{"name":"write","abstract":"

Event which represents when writing to the file","parent_name":"PollEvent"},"Classes/FileDescriptor.html#/s:vC6Venice14FileDescriptor14fileDescriptorVs5Int32":{"name":"fileDescriptor","abstract":"

File descriptor handle.

","parent_name":"FileDescriptor"},"Classes/FileDescriptor.html#/s:FC6Venice14FileDescriptorcFzVs5Int32S0_":{"name":"init(_:)","abstract":"

Creates a FileDescriptor from a file descriptor handle and","parent_name":"FileDescriptor"},"Classes/FileDescriptor.html#/s:FC6Venice14FileDescriptor4pollFzT5eventOS0_9PollEvent8deadlineVS_8Deadline_T_":{"name":"poll(event:deadline:)","abstract":"

Waits for the file descriptor to become either readable/writable","parent_name":"FileDescriptor"},"Classes/FileDescriptor.html#/s:FC6Venice14FileDescriptor5cleanFT_T_":{"name":"clean()","abstract":"

Erases cached info about a file descriptor.

","parent_name":"FileDescriptor"},"Classes/FileDescriptor.html#/s:FC6Venice14FileDescriptor5closeFzT_T_":{"name":"close()","abstract":"

Closes a file descriptor, so that it no longer refers to any","parent_name":"FileDescriptor"},"Classes/FileDescriptor.html#/s:FC6Venice14FileDescriptor6detachFT_Vs5Int32":{"name":"detach()","abstract":"

Detaches the underlying fileDescriptor.","parent_name":"FileDescriptor"},"Classes/FileDescriptor/PollEvent.html":{"name":"PollEvent","abstract":"

Event used to poll file descriptors for reading or writing.

","parent_name":"FileDescriptor"},"Classes/FileDescriptor.html":{"name":"FileDescriptor","abstract":"

A handle used to access a file or other input/output resource,"},"Classes/Channel/ReceiveOnly.html#/s:FCC6Venice7Channel11ReceiveOnly7receiveFzT8deadlineVS_8Deadline_x":{"name":"receive(deadline:)","abstract":"

Receives a value from channel.

","parent_name":"ReceiveOnly"},"Classes/Channel/SendOnly.html#/s:FCC6Venice7Channel8SendOnly4sendFzTx8deadlineVS_8Deadline_T_":{"name":"send(_:deadline:)","abstract":"

Sends a value to the channel.

","parent_name":"SendOnly"},"Classes/Channel/SendOnly.html#/s:FCC6Venice7Channel8SendOnly4sendFzTPs5Error_8deadlineVS_8Deadline_T_":{"name":"send(_:deadline:)","abstract":"

Sends an error to the channel.

","parent_name":"SendOnly"},"Classes/Channel.html#/s:FC6Venice7ChannelcFzT_GS0_x_":{"name":"init()","abstract":"

Creates a channel

","parent_name":"Channel"},"Classes/Channel.html#/s:vC6Venice7Channel8sendOnlyGCS0_8SendOnlyx__":{"name":"sendOnly","abstract":"

Reference to the channel which can only send.

","parent_name":"Channel"},"Classes/Channel.html#/s:vC6Venice7Channel11receiveOnlyGCS0_11ReceiveOnlyx__":{"name":"receiveOnly","abstract":"

Reference to the channel which can only receive.

","parent_name":"Channel"},"Classes/Channel.html#/s:FC6Venice7Channel4sendFzTx8deadlineVS_8Deadline_T_":{"name":"send(_:deadline:)","abstract":"

Sends a value to the channel.

","parent_name":"Channel"},"Classes/Channel.html#/s:FC6Venice7Channel4sendFzTPs5Error_8deadlineVS_8Deadline_T_":{"name":"send(_:deadline:)","abstract":"

Sends an error to the channel.

","parent_name":"Channel"},"Classes/Channel.html#/s:FC6Venice7Channel7receiveFzT8deadlineVS_8Deadline_x":{"name":"receive(deadline:)","abstract":"

Receives a value from channel.

","parent_name":"Channel"},"Classes/Channel/SendOnly.html":{"name":"SendOnly","abstract":"

Send-only reference to an existing channel.

","parent_name":"Channel"},"Classes/Channel/ReceiveOnly.html":{"name":"ReceiveOnly","abstract":"

Receive-only reference to an existing channel.

","parent_name":"Channel"},"Classes/Channel.html":{"name":"Channel","abstract":"

A channel is a synchronization primitive.

"},"Classes/Coroutine/Group.html#/s:FCC6Venice9Coroutine5GroupcFT15minimumCapacitySi_S1_":{"name":"init(minimumCapacity:)","abstract":"

Creates a new, empty coroutine group with at least the specified number","parent_name":"Group"},"Classes/Coroutine/Group.html#/s:FCC6Venice9Coroutine5Group12addCoroutineFzT4bodyFzT_T__S0_":{"name":"addCoroutine(body:)","abstract":"

Creates a lightweight coroutine and adds it to the group.

","parent_name":"Group"},"Classes/Coroutine/Group.html#/s:FCC6Venice9Coroutine5Group5closeFzT_T_":{"name":"close()","abstract":"

Closes all coroutines in the group.

","parent_name":"Group"},"Classes/Coroutine.html#/s:FC6Venice9CoroutinecFzT4bodyFzT_T__S0_":{"name":"init(body:)","abstract":"

Launches a coroutine that executes the closure passed as argument.","parent_name":"Coroutine"},"Classes/Coroutine.html#/s:ZFC6Venice9Coroutine5yieldFzT_T_":{"name":"yield()","abstract":"

Explicitly passes control to other coroutines.","parent_name":"Coroutine"},"Classes/Coroutine.html#/s:ZFC6Venice9Coroutine6wakeUpFzVS_8DeadlineT_":{"name":"wakeUp(_:)","abstract":"

Wakes up at deadline.

","parent_name":"Coroutine"},"Classes/Coroutine/Group.html":{"name":"Group","abstract":"

Coroutine groups are useful for closing multiple coroutines at the","parent_name":"Coroutine"},"Classes/Coroutine.html":{"name":"Coroutine","abstract":"

Lightweight coroutine.

"},"Classes/Handle.html#/s:FC6Venice6Handle4doneFzT8deadlineVS_8Deadline_T_":{"name":"done(deadline:)","abstract":"

This function is used to inform the handle that there will be no more input.","parent_name":"Handle"},"Classes/Handle.html#/s:FC6Venice6Handle5closeFzT_T_":{"name":"close()","abstract":"

Closes the handle.

","parent_name":"Handle"},"Classes/Handle.html":{"name":"Handle","abstract":"

Representation of a Venice resource like Coroutine and Channel.

"},"Handles.html":{"name":"Handles"},"Coroutines.html":{"name":"Coroutines"},"Channels.html":{"name":"Channels"},"File Descriptors.html":{"name":"File Descriptors"},"Time.html":{"name":"Time"},"Errors.html":{"name":"Errors"}} \ No newline at end of file +{"Enums/VeniceError.html#/s:FO6Venice11VeniceError8canceledFMS0_S0_":{"name":"canceled","abstract":"

Thrown when the operation is performed on a closed handle.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError21operationNotSupportedFMS0_S0_":{"name":"operationNotSupported","abstract":"

Thrown when the operation is not supported.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError13invalidHandleFMS0_S0_":{"name":"invalidHandle","abstract":"

Thrown when the operation is performed on an invalid handle.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError21invalidFileDescriptorFMS0_S0_":{"name":"invalidFileDescriptor","abstract":"

Thrown when the operation is performed on an invalid file descriptor.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError39fileDescriptorBlockedInAnotherCoroutineFMS0_S0_":{"name":"fileDescriptorBlockedInAnotherCoroutine","abstract":"

Thrown when another coroutine is already blocked on poll with this file descriptor.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError15deadlineReachedFMS0_S0_":{"name":"deadlineReached","abstract":"

Thrown when the operation reaches the deadline.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError11outOfMemoryFMS0_S0_":{"name":"outOfMemory","abstract":"

Thrown when the system doesn’t have enough memory to perform the operation.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError12handleIsDoneFMS0_S0_":{"name":"handleIsDone","abstract":"

Thrown when the operation is performed on an done handle.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError16brokenConnectionFMS0_S0_":{"name":"brokenConnection","abstract":"

Thrown when the operation is performed on a broken connection.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError16closedConnectionFMS0_S0_":{"name":"closedConnection","abstract":"

Thrown when the operation is performed on a closed connection.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError16invalidArgumentsFMS0_S0_":{"name":"invalidArguments","abstract":"

Thrown when the operation is performed with invalid arguments.

","parent_name":"VeniceError"},"Enums/VeniceError.html#/s:FO6Venice11VeniceError15unexpectedErrorFMS0_S0_":{"name":"unexpectedError","abstract":"

Thrown when an unexpected error occurs.","parent_name":"VeniceError"},"Enums/VeniceError.html":{"name":"VeniceError","abstract":"

Venice operation error

"},"Extensions/Int.html#/s:vE6VeniceSi11millisecondVS_8Duration":{"name":"millisecond","abstract":"

Duration represented in milliseconds.

","parent_name":"Int"},"Extensions/Int.html#/s:vE6VeniceSi12millisecondsVS_8Duration":{"name":"milliseconds","abstract":"

Duration represented in milliseconds.

","parent_name":"Int"},"Extensions/Int.html#/s:vE6VeniceSi6secondVS_8Duration":{"name":"second","abstract":"

Duration represented in seconds.

","parent_name":"Int"},"Extensions/Int.html#/s:vE6VeniceSi7secondsVS_8Duration":{"name":"seconds","abstract":"

Duration represented in seconds.

","parent_name":"Int"},"Extensions/Int.html#/s:vE6VeniceSi6minuteVS_8Duration":{"name":"minute","abstract":"

Duration represented in minutes.

","parent_name":"Int"},"Extensions/Int.html#/s:vE6VeniceSi7minutesVS_8Duration":{"name":"minutes","abstract":"

Duration represented in minutes.

","parent_name":"Int"},"Extensions/Int.html#/s:vE6VeniceSi4hourVS_8Duration":{"name":"hour","abstract":"

Duration represented in hours.

","parent_name":"Int"},"Extensions/Int.html#/s:vE6VeniceSi5hoursVS_8Duration":{"name":"hours","abstract":"

Duration represented in hours.

","parent_name":"Int"},"Structs/Deadline.html#/s:vV6Venice8Deadline5valueVs5Int64":{"name":"value","abstract":"

Raw value representing the deadline.

","parent_name":"Deadline"},"Structs/Deadline.html#/s:ZFV6Venice8Deadline3nowFT_S0_":{"name":"now()","abstract":"

Deadline representing now.

","parent_name":"Deadline"},"Structs/Deadline.html#/s:ZvV6Venice8Deadline11immediatelyS0_":{"name":"immediately","abstract":"

Special value to be used if the operation needs to be performed without blocking.

","parent_name":"Deadline"},"Structs/Deadline.html#/s:ZvV6Venice8Deadline5neverS0_":{"name":"never","abstract":"

Special value to be used to allow the operation to block forever if needed.

","parent_name":"Deadline"},"Structs/Duration.html#/s:FV6Venice8Duration7fromNowFT_VS_8Deadline":{"name":"fromNow()","abstract":"

Creates a Deadline from the duration.

","parent_name":"Duration"},"Structs/Duration.html":{"name":"Duration","abstract":"

Representation of a time interval.

"},"Structs/Deadline.html":{"name":"Deadline","abstract":"

Representation of a deadline.

"},"Extensions/Int.html":{"name":"Int"},"Classes/FileDescriptor/PollEvent.html#/s:FOC6Venice14FileDescriptor9PollEvent4readFMS1_S1_":{"name":"read","abstract":"

Event which represents when data is available","parent_name":"PollEvent"},"Classes/FileDescriptor/PollEvent.html#/s:FOC6Venice14FileDescriptor9PollEvent5writeFMS1_S1_":{"name":"write","abstract":"

Event which represents when writing to the file","parent_name":"PollEvent"},"Classes/FileDescriptor.html#/s:vC6Venice14FileDescriptor14fileDescriptorVs5Int32":{"name":"fileDescriptor","abstract":"

File descriptor handle.

","parent_name":"FileDescriptor"},"Classes/FileDescriptor.html#/s:FC6Venice14FileDescriptorcFzVs5Int32S0_":{"name":"init(_:)","abstract":"

Creates a FileDescriptor from a file descriptor handle and","parent_name":"FileDescriptor"},"Classes/FileDescriptor.html#/s:FC6Venice14FileDescriptor4pollFzT5eventOS0_9PollEvent8deadlineVS_8Deadline_T_":{"name":"poll(event:deadline:)","abstract":"

Waits for the file descriptor to become either readable/writable","parent_name":"FileDescriptor"},"Classes/FileDescriptor.html#/s:FC6Venice14FileDescriptor5cleanFT_T_":{"name":"clean()","abstract":"

Erases cached info about a file descriptor.

","parent_name":"FileDescriptor"},"Classes/FileDescriptor.html#/s:FC6Venice14FileDescriptor5closeFzT_T_":{"name":"close()","abstract":"

Closes a file descriptor, so that it no longer refers to any","parent_name":"FileDescriptor"},"Classes/FileDescriptor.html#/s:FC6Venice14FileDescriptor6detachFT_Vs5Int32":{"name":"detach()","abstract":"

Detaches the underlying fileDescriptor.","parent_name":"FileDescriptor"},"Classes/FileDescriptor/PollEvent.html":{"name":"PollEvent","abstract":"

Event used to poll file descriptors for reading or writing.

","parent_name":"FileDescriptor"},"Classes/FileDescriptor.html":{"name":"FileDescriptor","abstract":"

A handle used to access a file or other input/output resource,"},"Classes/Channel/ReceiveOnly.html#/s:FCC6Venice7Channel11ReceiveOnly7receiveFzT8deadlineVS_8Deadline_x":{"name":"receive(deadline:)","abstract":"

Receives a value from channel.

","parent_name":"ReceiveOnly"},"Classes/Channel/SendOnly.html#/s:FCC6Venice7Channel8SendOnly4sendFzTx8deadlineVS_8Deadline_T_":{"name":"send(_:deadline:)","abstract":"

Sends a value to the channel.

","parent_name":"SendOnly"},"Classes/Channel/SendOnly.html#/s:FCC6Venice7Channel8SendOnly4sendFzTPs5Error_8deadlineVS_8Deadline_T_":{"name":"send(_:deadline:)","abstract":"

Sends an error to the channel.

","parent_name":"SendOnly"},"Classes/Channel.html#/s:FC6Venice7ChannelcFzT_GS0_x_":{"name":"init()","abstract":"

Creates a channel

","parent_name":"Channel"},"Classes/Channel.html#/s:vC6Venice7Channel8sendOnlyGCS0_8SendOnlyx__":{"name":"sendOnly","abstract":"

Reference to the channel which can only send.

","parent_name":"Channel"},"Classes/Channel.html#/s:vC6Venice7Channel11receiveOnlyGCS0_11ReceiveOnlyx__":{"name":"receiveOnly","abstract":"

Reference to the channel which can only receive.

","parent_name":"Channel"},"Classes/Channel.html#/s:FC6Venice7Channel4sendFzTx8deadlineVS_8Deadline_T_":{"name":"send(_:deadline:)","abstract":"

Sends a value to the channel.

","parent_name":"Channel"},"Classes/Channel.html#/s:FC6Venice7Channel4sendFzTPs5Error_8deadlineVS_8Deadline_T_":{"name":"send(_:deadline:)","abstract":"

Sends an error to the channel.

","parent_name":"Channel"},"Classes/Channel.html#/s:FC6Venice7Channel7receiveFzT8deadlineVS_8Deadline_x":{"name":"receive(deadline:)","abstract":"

Receives a value from channel.

","parent_name":"Channel"},"Classes/Channel/SendOnly.html":{"name":"SendOnly","abstract":"

Send-only reference to an existing channel.

","parent_name":"Channel"},"Classes/Channel/ReceiveOnly.html":{"name":"ReceiveOnly","abstract":"

Receive-only reference to an existing channel.

","parent_name":"Channel"},"Classes/Channel.html":{"name":"Channel","abstract":"

A channel is a synchronization primitive.

"},"Classes/Coroutine/Group.html#/s:FCC6Venice9Coroutine5GroupcFT15minimumCapacitySi_S1_":{"name":"init(minimumCapacity:)","abstract":"

Creates a new, empty coroutine group with at least the specified number","parent_name":"Group"},"Classes/Coroutine/Group.html#/s:FCC6Venice9Coroutine5Group12addCoroutineFzT4bodyFzT_T__S0_":{"name":"addCoroutine(body:)","abstract":"

Creates a lightweight coroutine and adds it to the group.

","parent_name":"Group"},"Classes/Coroutine/Group.html#/s:FCC6Venice9Coroutine5Group5closeFzT_T_":{"name":"close()","abstract":"

Closes all coroutines in the group.

","parent_name":"Group"},"Classes/Coroutine.html#/s:FC6Venice9CoroutinecFzT4bodyFzT_T__S0_":{"name":"init(body:)","abstract":"

Launches a coroutine that executes the closure passed as argument.","parent_name":"Coroutine"},"Classes/Coroutine.html#/s:ZFC6Venice9Coroutine5yieldFzT_T_":{"name":"yield()","abstract":"

Explicitly passes control to other coroutines.","parent_name":"Coroutine"},"Classes/Coroutine.html#/s:ZFC6Venice9Coroutine6wakeUpFzVS_8DeadlineT_":{"name":"wakeUp(_:)","abstract":"

Wakes up at deadline.

","parent_name":"Coroutine"},"Classes/Coroutine/Group.html":{"name":"Group","abstract":"

Coroutine groups are useful for closing multiple coroutines at the","parent_name":"Coroutine"},"Classes/Coroutine.html":{"name":"Coroutine","abstract":"

Lightweight coroutine.

"},"Classes/Handle.html#/s:vC6Venice6Handle6handleVs5Int32":{"name":"handle","abstract":"

Raw handle representing the resource.

","parent_name":"Handle"},"Classes/Handle.html#/s:FC6Venice6HandlecFT6handleVs5Int32_S0_":{"name":"init(handle:)","abstract":"

Initializes Handle with the raw handle.

","parent_name":"Handle"},"Classes/Handle.html#/s:FC6Venice6Handle4doneFzT8deadlineVS_8Deadline_T_":{"name":"done(deadline:)","abstract":"

This function is used to inform the handle that there will be no more input.","parent_name":"Handle"},"Classes/Handle.html#/s:FC6Venice6Handle5closeFzT_T_":{"name":"close()","abstract":"

Closes the handle.

","parent_name":"Handle"},"Classes/Handle.html":{"name":"Handle","abstract":"

Representation of a Venice resource like Coroutine and Channel.

"},"Handles.html":{"name":"Handles"},"Coroutines.html":{"name":"Coroutines"},"Channels.html":{"name":"Channels"},"File Descriptors.html":{"name":"File Descriptors"},"Time.html":{"name":"Time"},"Errors.html":{"name":"Errors"}} \ No newline at end of file