#include <SystemConfiguration/SCD.h>
#include "SCDPrivate.h"
SCDHandleRef
SCDHandleInit()
{
SCDHandlePrivateRef privateHandle = CFAllocatorAllocate(NULL, sizeof(SCDHandlePrivate), 0);
privateHandle->data = NULL;
privateHandle->instance = 0;
return (SCDHandleRef)privateHandle;
}
void
SCDHandleRelease(SCDHandleRef handle)
{
SCDHandlePrivateRef privateHandle = (SCDHandlePrivateRef)handle;
if (privateHandle->data)
CFRelease(privateHandle->data);
CFAllocatorDeallocate(NULL, privateHandle);
return;
}
int
SCDHandleGetInstance(SCDHandleRef handle)
{
SCDHandlePrivateRef privateHandle = (SCDHandlePrivateRef)handle;
return privateHandle->instance;
}
void
_SCDHandleSetInstance(SCDHandleRef handle, int instance)
{
SCDHandlePrivateRef privateHandle = (SCDHandlePrivateRef)handle;
privateHandle->instance = instance;
return;
}
CFPropertyListRef
SCDHandleGetData(SCDHandleRef handle)
{
SCDHandlePrivateRef privateHandle = (SCDHandlePrivateRef)handle;
if (privateHandle->data == NULL) {
return CFSTR("SCDHandleRef not initialized.");
}
return privateHandle->data;
}
void
SCDHandleSetData(SCDHandleRef handle, CFPropertyListRef data)
{
SCDHandlePrivateRef privateHandle = (SCDHandlePrivateRef)handle;
if (privateHandle->data)
CFRelease(privateHandle->data);
privateHandle->data = data;
if (privateHandle->data)
CFRetain(privateHandle->data);
return;
}