Mercurial > projects > dstep
diff dstep/corefoundation/CFStream.d @ 11:07194b026fa4
Added bindings to a couple of frameworks, new license + some other things
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Sat, 01 Aug 2009 15:03:28 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dstep/corefoundation/CFStream.d Sat Aug 01 15:03:28 2009 +0200 @@ -0,0 +1,126 @@ +/** + * Copyright: Copyright (c) 2009 Jacob Carlborg. + * Authors: Jacob Carlborg + * Version: Initial created: Jul 12, 2009 + * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) + */ +module dstep.corefoundation.CFStream; + +import dstep.corefoundation.CFBase; +import dstep.corefoundation.CFDictionary; +import dstep.corefoundation.CFError; +import dstep.corefoundation.CFRunLoop; +import dstep.corefoundation.CFSocket; +import dstep.corefoundation.CFString; +import dstep.corefoundation.CFURL; +import dstep.objc.bridge.Bridge; +import dstep.objc.objc : id; + +alias int CFStreamStatus; +alias uint CFStreamEventType; +struct __CFReadStream; +alias __CFReadStream* CFReadStreamRef; +struct __CFWriteStream; +alias __CFWriteStream* CFWriteStreamRef; +alias int CFStreamErrorDomain; + +extern (C) +{ + alias void function (CFWriteStreamRef, uint, void*) CFWriteStreamClientCallBack; + alias void function (CFReadStreamRef, uint, void*) CFReadStreamClientCallBack; +} + +extern (C) +{ + extern + { + const CFStringRef kCFStreamPropertyDataWritten; + const CFStringRef kCFStreamPropertyAppendToFile; + const CFStringRef kCFStreamPropertyFileCurrentOffset; + const CFStringRef kCFStreamPropertySocketNativeHandle; + const CFStringRef kCFStreamPropertySocketRemoteHostName; + const CFStringRef kCFStreamPropertySocketRemotePortNumber; + } +} + +enum +{ + kCFStreamStatusNotOpen = 0, + kCFStreamStatusOpening, + kCFStreamStatusOpen, + kCFStreamStatusReading, + kCFStreamStatusWriting, + kCFStreamStatusAtEnd, + kCFStreamStatusClosed, + kCFStreamStatusError +} + +enum +{ + kCFStreamEventNone = 0, + kCFStreamEventOpenCompleted = 1, + kCFStreamEventHasBytesAvailable = 2, + kCFStreamEventCanAcceptBytes = 4, + kCFStreamEventErrorOccurred = 8, + kCFStreamEventEndEncountered = 16 +} + +enum +{ + kCFStreamErrorDomainCustom = -1, + kCFStreamErrorDomainPOSIX = 1, + kCFStreamErrorDomainMacOSStatus +} + +struct CFStreamClientContext +{ + int version_; + void* info; +} + + +struct CFStreamError +{ + int domain; + int error; +} + +extern (C) +{ + uint CFReadStreamGetTypeID (); + uint CFWriteStreamGetTypeID (); + CFReadStreamRef CFReadStreamCreateWithBytesNoCopy (CFAllocatorRef alloc, char* bytes, int length, CFAllocatorRef bytesDeallocator); + CFWriteStreamRef CFWriteStreamCreateWithBuffer (CFAllocatorRef alloc, char* buffer, int bufferCapacity); + CFWriteStreamRef CFWriteStreamCreateWithAllocatedBuffers (CFAllocatorRef alloc, CFAllocatorRef bufferAllocator); + CFReadStreamRef CFReadStreamCreateWithFile (CFAllocatorRef alloc, CFURLRef fileURL); + CFWriteStreamRef CFWriteStreamCreateWithFile (CFAllocatorRef alloc, CFURLRef fileURL); + void CFStreamCreateBoundPair (CFAllocatorRef alloc, CFReadStreamRef* readStream, CFWriteStreamRef* writeStream, int transferBufferSize); + void CFStreamCreatePairWithSocket (CFAllocatorRef alloc, int sock, CFReadStreamRef* readStream, CFWriteStreamRef* writeStream); + void CFStreamCreatePairWithSocketToHost (CFAllocatorRef alloc, CFStringRef host, uint port, CFReadStreamRef* readStream, CFWriteStreamRef* writeStream); + void CFStreamCreatePairWithPeerSocketSignature (CFAllocatorRef alloc, CFSocketSignature* signature, CFReadStreamRef* readStream, CFWriteStreamRef* writeStream); + int CFReadStreamGetStatus (CFReadStreamRef stream); + int CFWriteStreamGetStatus (CFWriteStreamRef stream); + CFErrorRef CFReadStreamCopyError (CFReadStreamRef stream); + CFErrorRef CFWriteStreamCopyError (CFWriteStreamRef stream); + ubyte CFReadStreamOpen (CFReadStreamRef stream); + ubyte CFWriteStreamOpen (CFWriteStreamRef stream); + void CFReadStreamClose (CFReadStreamRef stream); + void CFWriteStreamClose (CFWriteStreamRef stream); + ubyte CFReadStreamHasBytesAvailable (CFReadStreamRef stream); + int CFReadStreamRead (CFReadStreamRef stream, char* buffer, int bufferLength); + char* CFReadStreamGetBuffer (CFReadStreamRef stream, int maxBytesToRead, int* numBytesRead); + ubyte CFWriteStreamCanAcceptBytes (CFWriteStreamRef stream); + int CFWriteStreamWrite (CFWriteStreamRef stream, char* buffer, int bufferLength); + void* CFReadStreamCopyProperty (CFReadStreamRef stream, CFStringRef propertyName); + void* CFWriteStreamCopyProperty (CFWriteStreamRef stream, CFStringRef propertyName); + ubyte CFReadStreamSetProperty (CFReadStreamRef stream, CFStringRef propertyName, void* propertyValue); + ubyte CFWriteStreamSetProperty (CFWriteStreamRef stream, CFStringRef propertyName, void* propertyValue); + ubyte CFReadStreamSetClient (CFReadStreamRef stream, uint streamEvents, CFReadStreamClientCallBack* clientCB, CFStreamClientContext* clientContext); + ubyte CFWriteStreamSetClient (CFWriteStreamRef stream, uint streamEvents, CFWriteStreamClientCallBack* clientCB, CFStreamClientContext* clientContext); + void CFReadStreamScheduleWithRunLoop (CFReadStreamRef stream, CFRunLoopRef runLoop, CFStringRef runLoopMode); + void CFWriteStreamScheduleWithRunLoop (CFWriteStreamRef stream, CFRunLoopRef runLoop, CFStringRef runLoopMode); + void CFReadStreamUnscheduleFromRunLoop (CFReadStreamRef stream, CFRunLoopRef runLoop, CFStringRef runLoopMode); + void CFWriteStreamUnscheduleFromRunLoop (CFWriteStreamRef stream, CFRunLoopRef runLoop, CFStringRef runLoopMode); + CFStreamError CFReadStreamGetError (CFReadStreamRef stream); + CFStreamError CFWriteStreamGetError (CFWriteStreamRef stream); +} \ No newline at end of file