view 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 source

/**
 * 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);
}