]> gitweb.factorcode.org Git - factor.git/blob - basis/core-foundation/data/data.factor
Change a throw to rethrow so that we don't lose the original stack trace
[factor.git] / basis / core-foundation / data / data.factor
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
5
6 TYPEDEF: void* CFDataRef
7 TYPEDEF: void* CFDictionaryRef
8 TYPEDEF: void* CFMutableDictionaryRef
9 TYPEDEF: void* CFNumberRef
10 TYPEDEF: void* CFSetRef
11
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
30
31 TYPEDEF: int CFPropertyListMutabilityOptions
32 CONSTANT: kCFPropertyListImmutable                  0
33 CONSTANT: kCFPropertyListMutableContainers          1
34 CONSTANT: kCFPropertyListMutableContainersAndLeaves 2
35
36 FUNCTION: CFNumberRef CFNumberCreate ( CFAllocatorRef allocator, CFNumberType theType, void* valuePtr ) ;
37
38 FUNCTION: CFDataRef CFDataCreate ( CFAllocatorRef allocator, uchar* bytes, CFIndex length ) ;
39
40 FUNCTION: CFTypeID CFGetTypeID ( CFTypeRef cf ) ;
41
42 GENERIC: <CFNumber> ( number -- alien )
43
44 M: integer <CFNumber>
45     [ f kCFNumberLongLongType ] dip <longlong> CFNumberCreate ;
46
47 M: float <CFNumber>
48     [ f kCFNumberDoubleType ] dip <double> CFNumberCreate ;
49
50 M: t <CFNumber>
51     drop f kCFNumberIntType 1 <int> CFNumberCreate ;
52
53 M: f <CFNumber>
54     drop f kCFNumberIntType 0 <int> CFNumberCreate ;
55
56 : <CFData> ( byte-array -- alien )
57     [ f ] dip dup length CFDataCreate ;