27#ifndef __COREFOUNDATION_CFSTREAM_H__
28#define __COREFOUNDATION_CFSTREAM_H__ 1
30#include <CoreFoundation/CFBase.h>
31#include <CoreFoundation/CFError.h>
32#include <CoreFoundation/CFRunLoop.h>
33#include <CoreFoundation/CFSocket.h>
34#include <CoreFoundation/CFURL.h>
37#if OS_API_VERSION(MAC_OS_X_VERSION_10_1, GS_API_LATEST)
46CF_EXPORT
const CFStringRef kCFStreamPropertyDataWritten;
47CF_EXPORT
const CFStringRef kCFStreamPropertySocketNativeHandle;
48CF_EXPORT
const CFStringRef kCFStreamPropertySocketRemoteHostName;
49CF_EXPORT
const CFStringRef kCFStreamPropertySocketRemotePortNumber;
50#if OS_API_VERSION(MAC_OS_X_VERSION_10_2, GS_API_LATEST)
51CF_EXPORT
const CFStringRef kCFStreamPropertyAppendToFile;
53#if OS_API_VERSION(MAC_OS_X_VERSION_10_3, GS_API_LATEST)
54CF_EXPORT
const CFStringRef kCFStreamPropertyFileCurrentOffset;
61 CFAllocatorRetainCallBack retain;
62 CFAllocatorReleaseCallBack release;
63 CFAllocatorCopyDescriptionCallBack copyDescription;
69 kCFStreamStatusNotOpen = 0,
70 kCFStreamStatusOpening,
72 kCFStreamStatusReading,
73 kCFStreamStatusWriting,
75 kCFStreamStatusClosed,
82 kCFStreamErrorDomainCustom = -1,
83 kCFStreamErrorDomainPOSIX = 1,
84 kCFStreamErrorDomainMacOSStatus
90 CFStreamErrorDomain domain;
97 kCFStreamEventNone = 0,
98 kCFStreamEventOpenCompleted = 1,
99 kCFStreamEventHasBytesAvailable = 2,
100 kCFStreamEventCanAcceptBytes = 4,
101 kCFStreamEventErrorOccurred = 8,
102 kCFStreamEventEndEncountered = 16
109CFStreamCreatePairWithSocketToHost (
CFAllocatorRef alloc, CFStringRef host,
110 UInt32 port, CFReadStreamRef * readStream,
111 CFWriteStreamRef * writeStream);
113#if OS_API_VERSION(MAC_OS_X_VERSION_10_2, GS_API_LATEST)
117 CFReadStreamRef * readStream,
118 CFWriteStreamRef * writeStream);
121#if OS_API_VERSION(MAC_OS_X_VERSION_10_5, GS_API_LATEST)
123CFStreamCreateBoundPair (
CFAllocatorRef alloc, CFReadStreamRef * readStream,
124 CFWriteStreamRef * writeStream,
133typedef void (*CFWriteStreamClientCallBack) (CFWriteStreamRef stream,
134 CFStreamEventType eventType,
135 void *clientCallBackInfo);
140CF_EXPORT CFWriteStreamRef
144CF_EXPORT CFWriteStreamRef
145CFWriteStreamCreateWithBuffer (
CFAllocatorRef alloc, UInt8 * buffer,
148CF_EXPORT CFWriteStreamRef
149CFWriteStreamCreateWithFile (
CFAllocatorRef alloc, CFURLRef fileURL);
155CF_EXPORT
void CFWriteStreamClose (CFWriteStreamRef stream);
157CF_EXPORT Boolean CFWriteStreamOpen (CFWriteStreamRef stream);
164CFWriteStreamWrite (CFWriteStreamRef stream,
const UInt8 * buffer,
172CFWriteStreamScheduleWithRunLoop (CFWriteStreamRef stream,
173 CFRunLoopRef runLoop,
174 CFStringRef runLoopMode);
177CFWriteStreamUnscheduleFromRunLoop (CFWriteStreamRef stream,
178 CFRunLoopRef runLoop,
179 CFStringRef runLoopMode);
185CF_EXPORT Boolean CFWriteStreamCanAcceptBytes (CFWriteStreamRef stream);
188CFWriteStreamCopyProperty (CFWriteStreamRef stream, CFStringRef propertyName);
192CF_EXPORT CFStreamError CFWriteStreamGetError (CFWriteStreamRef stream);
194CF_EXPORT CFStreamStatus CFWriteStreamGetStatus (CFWriteStreamRef stream);
200CFWriteStreamSetClient (CFWriteStreamRef stream,
CFOptionFlags streamEvents,
201 CFWriteStreamClientCallBack clientCB,
208CF_EXPORT CFTypeID CFWriteStreamGetTypeID (
void);
215typedef void (*CFReadStreamClientCallBack) (CFReadStreamRef stream,
216 CFStreamEventType eventType,
217 void *clientCallBackInfo);
222CF_EXPORT CFReadStreamRef
223CFReadStreamCreateWithBytesNoCopy (
CFAllocatorRef alloc,
const UInt8 * bytes,
227CF_EXPORT CFReadStreamRef
228CFReadStreamCreateWithFile (
CFAllocatorRef alloc, CFURLRef fileURL);
234CF_EXPORT
void CFReadStreamClose (CFReadStreamRef stream);
236CF_EXPORT Boolean CFReadStreamOpen (CFReadStreamRef stream);
243CFReadStreamRead (CFReadStreamRef stream, UInt8 * buffer,
CFIndex bufferLength);
250CFReadStreamScheduleWithRunLoop (CFReadStreamRef stream, CFRunLoopRef runLoop,
251 CFStringRef runLoopMode);
254CFReadStreamUnscheduleFromRunLoop (CFReadStreamRef stream, CFRunLoopRef runLoop,
255 CFStringRef runLoopMode);
262CFReadStreamCopyProperty (CFReadStreamRef stream, CFStringRef propertyName);
264CF_EXPORT
const UInt8 *CFReadStreamGetBuffer (CFReadStreamRef stream,
270CF_EXPORT CFStreamError CFReadStreamGetError (CFReadStreamRef stream);
273CF_EXPORT CFStreamStatus CFReadStreamGetStatus (CFReadStreamRef stream);
275CF_EXPORT Boolean CFReadStreamHasBytesAvailable (CFReadStreamRef stream);
281CFReadStreamSetClient (CFReadStreamRef stream,
CFOptionFlags streamEvents,
282 CFReadStreamClientCallBack clientCB,
289CF_EXPORT CFTypeID CFReadStreamGetTypeID (
void);
293#if OS_API_VERSION(MAC_OS_X_VERSION_10_2, GS_API_LATEST)
295CFWriteStreamSetProperty (CFWriteStreamRef stream, CFStringRef propertyName,
296 CFTypeRef propertyValue);
299CFReadStreamSetProperty (CFReadStreamRef stream, CFStringRef propertyName,
300 CFTypeRef propertyValue);
303#if OS_API_VERSION(MAC_OS_X_VERSION_10_5, GS_API_LATEST)
304CF_EXPORT CFErrorRef CFWriteStreamCopyError (CFWriteStreamRef stream);
306CF_EXPORT CFErrorRef CFReadStreamCopyError (CFReadStreamRef stream);
unsigned long CFOptionFlags
Definition CFBase.h:163
signed long CFIndex
Definition CFBase.h:165
const struct __CFAllocator * CFAllocatorRef
A reference to a CFAllocator object.
Definition CFBase.h:301
Definition CFStreamPriv.h:75
Definition CFStreamPriv.h:50