1 ! Copyright (C) 2008 Joe Groff.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien.syntax alien.c-types sequences kernel math ;
4 IN: core-foundation.data
6 TYPEDEF: void* CFDataRef
7 TYPEDEF: void* CFDictionaryRef
8 TYPEDEF: void* CFMutableDictionaryRef
9 TYPEDEF: void* CFNumberRef
10 TYPEDEF: void* CFSetRef
12 TYPEDEF: int CFNumberType
13 CONSTANT: kCFNumberSInt8Type 1
14 CONSTANT: kCFNumberSInt16Type 2
15 CONSTANT: kCFNumberSInt32Type 3
16 CONSTANT: kCFNumberSInt64Type 4
17 CONSTANT: kCFNumberFloat32Type 5
18 CONSTANT: kCFNumberFloat64Type 6
19 CONSTANT: kCFNumberCharType 7
20 CONSTANT: kCFNumberShortType 8
21 CONSTANT: kCFNumberIntType 9
22 CONSTANT: kCFNumberLongType 10
23 CONSTANT: kCFNumberLongLongType 11
24 CONSTANT: kCFNumberFloatType 12
25 CONSTANT: kCFNumberDoubleType 13
26 CONSTANT: kCFNumberCFIndexType 14
27 CONSTANT: kCFNumberNSIntegerType 15
28 CONSTANT: kCFNumberCGFloatType 16
29 CONSTANT: kCFNumberMaxType 16
31 TYPEDEF: int CFPropertyListMutabilityOptions
32 CONSTANT: kCFPropertyListImmutable 0
33 CONSTANT: kCFPropertyListMutableContainers 1
34 CONSTANT: kCFPropertyListMutableContainersAndLeaves 2
36 FUNCTION: CFNumberRef CFNumberCreate ( CFAllocatorRef allocator, CFNumberType theType, void* valuePtr ) ;
38 FUNCTION: CFDataRef CFDataCreate ( CFAllocatorRef allocator, uchar* bytes, CFIndex length ) ;
40 FUNCTION: CFTypeID CFGetTypeID ( CFTypeRef cf ) ;
42 GENERIC: <CFNumber> ( number -- alien )
45 [ f kCFNumberLongLongType ] dip <longlong> CFNumberCreate ;
48 [ f kCFNumberDoubleType ] dip <double> CFNumberCreate ;
51 drop f kCFNumberIntType 1 <int> CFNumberCreate ;
54 drop f kCFNumberIntType 0 <int> CFNumberCreate ;
56 : <CFData> ( byte-array -- alien )
57 [ f ] dip dup length CFDataCreate ;