CFReadStream

Overview

CFReadStream provides an interface for reading a byte stream either synchronously or asynchronously. You can create streams that read bytes from a block of memory, a file, or a generic socket. All streams need to be opened, using CFReadStreamOpen(_:), before reading.

Use CFWriteStream for writing byte streams. The CFNetwork framework defines an additional type of stream for reading responses to HTTP requests.

CFReadStream is “toll-free bridged” with its Cocoa Foundation counterpart, InputStream. This means that the Core Foundation type is interchangeable in function or method calls with the bridged Foundation object. Therefore, in a method where you see an NSInputStream * parameter, you can pass in a CFReadStreamRef, and in a function where you see a CFReadStreamRef parameter, you can pass in an NSInputStream instance. Note, however, that you may have either a delegate or callbacks but not both. See Toll-Free Bridged Types for more information on toll-free bridging.

Symbols

Creating a Read Stream

Opening and Closing a Read Stream

func CFReadStreamClose(CFReadStream!)

Closes a readable stream.

func CFReadStreamOpen(CFReadStream!)

Opens a stream for reading.

Reading from a Stream

Examining Stream Properties

func CFReadStreamCopyProperty(CFReadStream!, CFStreamPropertyKey!)

Returns the value of a property for a stream.

func CFReadStreamGetBuffer(CFReadStream!, CFIndex, UnsafeMutablePointer<CFIndex>!)

Returns a pointer to a stream’s internal buffer of unread data, if possible.

func CFReadStreamCopyError(CFReadStream!)

Returns the error associated with a stream.

func CFReadStreamGetError(CFReadStream!)

Returns the error status of a stream.

func CFReadStreamGetStatus(CFReadStream!)

Returns the current state of a stream.

func CFReadStreamHasBytesAvailable(CFReadStream!)

Returns a Boolean value that indicates whether a readable stream has data that can be read without blocking.

Setting Stream Properties

Getting the CFReadStream Type ID

func CFReadStreamGetTypeID()

Returns the type identifier the CFReadStream opaque type.

Callbacks

CFReadStreamClientCallBack

Callback invoked when certain types of activity takes place on a readable stream.

Data Types

CFReadStream

A reference to a readable stream object.

CFStreamClientContext

A structure that contains program-defined data and callbacks with which you can configure a stream’s client behavior.