     ///   - streamTask:   The stream task that has been completed.
     ///   - inputStream:  The created input stream. This InputStream object is unopened.
     ///   - outputStream: The created output stream. This OutputStream object is unopened
-    @available(iOS 9.0, OSX 10.11, *)
     public func urlSession(_ session: URLSession, streamTask: URLSessionStreamTask, didBecome inputStream: InputStream, outputStream: OutputStream) {
         streamTaskOfSessionDidBecomeInOutStream?(streamTask, session, inputStream, outputStream)
     }

    /// - Parameters:
    ///   - session:    The session containing the stream task that closed writes.
    ///   - streamTask: The stream task that closed writes.
    @available(iOS 9.0, OSX 10.11, *)
    public func urlSession(_ session: URLSession, writeClosedFor streamTask: URLSessionStreamTask) {
        streamTaskOfSessionWriteClosed?(streamTask, session)
    }

    /// Closure for `urlSession(_:dataTask:didBecome:)` function in protocol `URLSessionDataDelegate`.
    public var dataTaskOfSessionDidBecomeDownloadTask: DataTaskOfSessionDidBecomeDownloadTask?
    /// Closure for `urlSession(_:dataTask:didBecome:)` function in protocol `URLSessionDataDelegate`.
    @available(iOS 9.0, OSX 10.11, *)
    public var dataTaskOfSessionDidBecomeStreamTask: DataTaskOfSessionDidBecomeStreamTask? {
        get {
            return _dataTaskOfSessionDidBecomeStreamTask as? DataTaskOfSessionDidBecomeStreamTask
        }
        set {
            _dataTaskOfSessionDidBecomeStreamTask = newValue
        }
    }
    /// Closure for `urlSession(_:dataTask:didReceive:)` function in protocol `URLSessionDataDelegate`.
    public var dataTaskOfSessionDidReceiveData: DataTaskOfSessionDidReceiveData?
    /// Closure for `urlSession(_:dataTask:willCacheResponse:)` function in protocol `URLSessionDataDelegate`.
