From 5c30f4bb199d9fd02fe1ccbd62a6c6d6081b6702 Mon Sep 17 00:00:00 2001 From: Paulo Faria Date: Sun, 14 May 2017 19:56:26 -0300 Subject: [PATCH] update docs --- Sources/Venice/Handle.swift | 432 +----------------- Sources/Venice/Time.swift | 1 + docs/Channels.html | 2 +- docs/Classes/Channel.html | 2 +- docs/Classes/Channel/ReceiveOnly.html | 2 +- docs/Classes/Channel/SendOnly.html | 2 +- docs/Classes/Coroutine.html | 2 +- docs/Classes/Coroutine/Group.html | 2 +- docs/Classes/FileDescriptor.html | 2 +- docs/Classes/FileDescriptor/PollEvent.html | 2 +- docs/Classes/Handle.html | 81 +++- docs/Coroutines.html | 2 +- docs/Enums/VeniceError.html | 2 +- docs/Errors.html | 2 +- docs/Extensions/Int.html | 2 +- docs/File Descriptors.html | 2 +- docs/Handles.html | 4 +- docs/Structs/Deadline.html | 29 +- docs/Structs/Duration.html | 2 +- docs/Time.html | 2 +- .../Resources/Documents/Channels.html | 2 +- .../Resources/Documents/Classes/Channel.html | 2 +- .../Classes/Channel/ReceiveOnly.html | 2 +- .../Documents/Classes/Channel/SendOnly.html | 2 +- .../Documents/Classes/Coroutine.html | 2 +- .../Documents/Classes/Coroutine/Group.html | 2 +- .../Documents/Classes/FileDescriptor.html | 2 +- .../Classes/FileDescriptor/PollEvent.html | 2 +- .../Resources/Documents/Classes/Handle.html | 81 +++- .../Resources/Documents/Coroutines.html | 2 +- .../Documents/Enums/VeniceError.html | 2 +- .../Contents/Resources/Documents/Errors.html | 2 +- .../Resources/Documents/Extensions/Int.html | 2 +- .../Resources/Documents/File Descriptors.html | 2 +- .../Contents/Resources/Documents/Handles.html | 4 +- .../Resources/Documents/Structs/Deadline.html | 29 +- .../Resources/Documents/Structs/Duration.html | 2 +- .../Contents/Resources/Documents/Time.html | 2 +- .../Contents/Resources/Documents/index.html | 4 +- .../Contents/Resources/Documents/search.json | 2 +- .../Contents/Resources/docSet.dsidx | Bin 28672 -> 28672 bytes docs/docsets/Venice.tgz | Bin 62830 -> 63275 bytes docs/index.html | 4 +- docs/search.json | 2 +- 44 files changed, 255 insertions(+), 478 deletions(-) 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 86046ee91fde3da6b3bffc43221d5f09e508c326..25a2c29943db187f4417f8d985206a9201e13037 100644 GIT binary patch delta 2224 zcmeH}YfMvT7{||Z+H+}3TcMQ0q10MRTS~dKKuZB{SSbax6XjAa6G5s1ZGjd=5Qj~0 z&SVqeS(e2QTlQhm&FRKSwk5;GPrI18nK4-AWs>dd+=nGwqFLfjTU>OTGx762oZEBW z_c?F=&;R$l=hzAyTY=LW@Xlnr!8^BSQCX;EmYC-l2Yr)%pMHVvp?;&Dr!vJ0;sVjP zq9Y;=`6GFOG{bo?5x0q{nc-Zvt$-%9+L#Kn>voYfRxC=bW%6mFn2)v2rgh*m^?GvL zg7;D{3yj#W>VjOnqVj_Q4e5T!!HM)!phuay1J>bw zbqI90qz=p0(u7(QtBwS^dvQhGgdcB{let=)%P>MVewSeZ4FYF@EVOcd;BkucLMC42 zT4;_UIDQQ6zUuUb4B=iod8j*hFt8&sI24GCjNy78zwS_rvn3Gj+Z%9g74irB!U0EO zP)pQN7annz&G%=%$u#aIf08byxRh^+mP8Y>ujSpMY>JnEPTxv-gPmswm`P$qd`Y%X zu}85eJt{RyYS_DslUY_e<)pZf`kl;^+>lIz8Qvj|OYgI5sS`89MpW0eLje}*Jz&M3 z>!u(dhw6@i1(zF+GkIl{g>wUfstC+zGq_k&7p>)EdcYx-pEdev4IfhjUQ;!)xvlXB z6`&=3haly6?lhaz5g*J0rmCA*eTcSbV}*br^*%w^P2R8|Z0EKhti|_CMn-F)w0t?> z%?tx%&zdc)#!u_`SSp~MYh<##6sH{pJjrblwEfcDB4}&%)uwaXg!m*pji7n2GP})0 z0kJ}oIw?=xmOAK@^t@zAa)-Pqb}+w4n`uFB(nB6)u1go8AgQ~!M>N5>lG;lLlj>71 zKde73WmRxCUWG^0m0QJy1jUcjrF^U!usRfF9iwywA9DaMgodCDgC!=W)JYk*?SSoJ z8&hJVv|KIVOgNvhKV>0A2I>S(l$AgwzFXGLIv-aM|2k%wkjLCG8tEGe)YMbFb_@=5 zhkJv6`P3ckjz$B~Vs9c^bYLVDG!#cG54l&J>rB3ICTAs$TUvrvrxmKO)#-=wC)Zh$ z#VmU$4IhnLNLW$W621Fq8~aT725W^vl$$>b=WFhETtG8l;_&xzC?bXQtoD;B#n z;Kl}*4z}P+ZgVNWWZYudFV^c!t=E` zV8gF!hoBgT>kr^Y?_j#_F<#d{sd;4J{rvr_oF~~%az1T&1&0~}P#9+&@>XFKz=fRo zw(UGH+{4t(FZk+#og$Ryln%u=s90nCzhVDZ!}gzHTv_ZrLU~4MS6o&!D{|#`(@3vL4@=V}S0(2przBy?PKim9#@?G7{)8>c@KA(c&3`yEt%f25 z5*`5|e=FMit%6aX?bpy-C_+zIvC+lrGpi{=Ll~22MprLMb~g*zxl+7PzLu%kB#h#t ztIUx-8&NmVlh(36es=`?6YYme62nQwO&2DzbFyYCu3D)Zy|=(^!^DgOMO-V delta 1771 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 XIb{6*DNfVnd?E_8nDv2}L4y20FvsQi delta 62336 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�OR~vU=HBiJcV0IyQ&bn|)iI>^g;* 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 O;`9GbMJ|v4Kn4KG60&sw 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