view dstep/coreservices/carboncore/Timer.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 21, 2009 
 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0)
 */
module dstep.coreservices.carboncore.Timer;

//import dstep.AvailabilityMacros;
import dstep.coreservices.carboncore.ConditionalMacros;
import dstep.coreservices.carboncore.MacTypes;
import dstep.coreservices.carboncore.OSUtils;

alias TMTask* TMTaskPtr;
alias TimerProcPtr TimerUPP;

extern (C)
{
	alias void function (TMTaskPtr) TimerProcPtr;
}

enum
{
	kTMTaskActive = (1L << 15)
}

struct TMTask
{
	QElemPtr qLink;
	short qType;
	TimerUPP tmAddr;
	int tmCount;
	int tmWakeUp;
	int tmReserved;
}

extern (C)
{
	void Microseconds (UnsignedWide* microTickCount);
	void InsTime (QElemPtr tmTaskPtr);
	void InsXTime (QElemPtr tmTaskPtr);
	void PrimeTime (QElemPtr tmTaskPtr, int count);
	void RmvTime (QElemPtr tmTaskPtr);
	short InstallTimeTask (QElemPtr tmTaskPtr);
	short InstallXTimeTask (QElemPtr tmTaskPtr);
	short PrimeTimeTask (QElemPtr tmTaskPtr, int count);
	short RemoveTimeTask (QElemPtr tmTaskPtr);
	TimerUPP NewTimerUPP (TimerProcPtr userRoutine);
	void DisposeTimerUPP (TimerUPP userUPP);
	void InvokeTimerUPP (TMTaskPtr tmTaskPtr, TimerUPP userUPP);
}