#if !defined(__COREFOUNDATION_CFSTREAMPRIV__)
#define __COREFOUNDATION_CFSTREAMPRIV__ 1
#include <CoreFoundation/CFStream.h>
#include <CoreFoundation/CFRunLoop.h>
#include <CoreFoundation/CFRuntime.h>
CF_EXTERN_C_BEGIN
struct _CFStream;
struct _CFStreamClient {
CFStreamClientContext cbContext;
void (*cb)(struct _CFStream *, CFStreamEventType, void *);
CFOptionFlags when;
CFRunLoopSourceRef rlSource;
CFMutableArrayRef runLoopsAndModes;
CFOptionFlags whatToSignal;
};
#define CFStreamCurrentVersion 2
struct _CFStreamCallBacks {
CFIndex version;
void *(*create)(struct _CFStream *stream, void *info);
void (*finalize)(struct _CFStream *stream, void *info);
CFStringRef (*copyDescription)(struct _CFStream *stream, void *info);
Boolean (*open)(struct _CFStream *stream, CFErrorRef *error, Boolean *openComplete, void *info);
Boolean (*openCompleted)(struct _CFStream *stream, CFErrorRef *error, void *info);
CFIndex (*read)(CFReadStreamRef stream, UInt8 *buffer, CFIndex bufferLength, CFErrorRef *error, Boolean *atEOF, void *info);
const UInt8 *(*getBuffer)(CFReadStreamRef sream, CFIndex maxBytesToRead, CFIndex *numBytesRead, CFErrorRef *error, Boolean *atEOF, void *info);
Boolean (*canRead)(CFReadStreamRef, CFErrorRef *error, void *info);
CFIndex (*write)(CFWriteStreamRef, const UInt8 *buffer, CFIndex bufferLength, CFErrorRef *error, void *info);
Boolean (*canWrite)(CFWriteStreamRef, CFErrorRef *error, void *info);
void (*close)(struct _CFStream *stream, void *info);
CFTypeRef (*copyProperty)(struct _CFStream *stream, CFStringRef propertyName, void *info);
Boolean (*setProperty)(struct _CFStream *stream, CFStringRef propertyName, CFTypeRef propertyValue, void *info);
void (*requestEvents)(struct _CFStream *stream, CFOptionFlags events, void *info);
void (*schedule)(struct _CFStream *stream, CFRunLoopRef runLoop, CFStringRef runLoopMode, void *info);
void (*unschedule)(struct _CFStream *stream, CFRunLoopRef runLoop, CFStringRef runLoopMode, void *info);
};
struct _CFStream {
CFRuntimeBase _cfBase;
CFOptionFlags flags;
CFErrorRef error; struct _CFStreamClient *client;
void *info;
const struct _CFStreamCallBacks *callBacks; void *_reserved1;
};
CF_INLINE void *_CFStreamGetInfoPointer(struct _CFStream *stream) {
return stream->info;
}
CF_EXPORT struct _CFStream *_CFStreamCreateWithConstantCallbacks(CFAllocatorRef alloc, void *info, const struct _CFStreamCallBacks *cb, Boolean isReading);
CF_EXPORT void _CFStreamSetInfoPointer(struct _CFStream *stream, void *info, const struct _CFStreamCallBacks *cb);
CF_EXPORT
void _CFStreamSourceScheduleWithRunLoop(CFRunLoopSourceRef source, CFMutableArrayRef runLoopsAndModes, CFRunLoopRef runLoop, CFStringRef runLoopMode);
CF_EXPORT
void _CFStreamSourceUnscheduleFromRunLoop(CFRunLoopSourceRef source, CFMutableArrayRef runLoopsAndModes, CFRunLoopRef runLoop, CFStringRef runLoopMode);
CF_EXPORT
void _CFStreamSourceScheduleWithAllRunLoops(CFRunLoopSourceRef source, CFArrayRef runLoopsAndModes);
CF_EXPORT
void _CFStreamSourceUncheduleFromAllRunLoops(CFRunLoopSourceRef source, CFArrayRef runLoopsAndModes);
CF_EXPORT
CFReadStreamRef _CFReadStreamCreateFromFileDescriptor(CFAllocatorRef alloc, int fd);
CF_EXPORT
CFWriteStreamRef _CFWriteStreamCreateFromFileDescriptor(CFAllocatorRef alloc, int fd);
#define SECURITY_NONE (0)
#define SECURITY_SSLv2 (1)
#define SECURITY_SSLv3 (2)
#define SECURITY_SSLv32 (3)
#define SECURITY_TLS (4)
#if (TARGET_OS_MAC && !(TARGET_OS_EMBEDDED || TARGET_OS_IPHONE)) || (TARGET_OS_EMBEDDED || TARGET_OS_IPHONE)
extern const int kCFStreamErrorDomainSSL;
#endif
CF_EXPORT
Boolean __CFSocketGetBytesAvailable(CFSocketRef s, CFIndex* ctBytesAvailable);
CF_EXPORT
CFIndex __CFSocketRead(CFSocketRef s, UInt8* buffer, CFIndex length, int* error);
#define CFNETWORK_6030579 1
CF_EXPORT
void __CFSocketSetSocketReadBufferAttrs(CFSocketRef s, CFTimeInterval timeout, CFIndex length);
CF_EXTERN_C_END
CF_EXPORT const CFStringRef _kCFStreamPropertyFileNativeHandle CF_AVAILABLE_IOS(5_0);
#endif