| 
									
										
										
										
											2009-03-09 21:22:56 -04:00
										 |  |  | ! Copyright (C) 2008, 2009 Slava Pestov. | 
					
						
							| 
									
										
										
										
											2008-12-12 01:33:05 -05:00
										 |  |  | ! See http://factorcode.org/license.txt for BSD license. | 
					
						
							| 
									
										
										
										
											2009-09-27 00:14:57 -04:00
										 |  |  | USING: alien.c-types alien.syntax core-foundation kernel | 
					
						
							|  |  |  | sequences fry ;
 | 
					
						
							| 
									
										
										
										
											2008-12-12 01:33:05 -05:00
										 |  |  | IN: core-foundation.arrays | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | TYPEDEF: void* CFArrayRef | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | FUNCTION: CFArrayRef CFArrayCreateMutable ( CFAllocatorRef allocator, CFIndex capacity, void* callbacks ) ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | FUNCTION: void* CFArrayGetValueAtIndex ( CFArrayRef array, CFIndex idx ) ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | FUNCTION: void CFArraySetValueAtIndex ( CFArrayRef array, CFIndex index, void* value ) ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | FUNCTION: CFIndex CFArrayGetCount ( CFArrayRef array ) ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | : CF>array ( alien -- array )
 | 
					
						
							| 
									
										
										
										
											2010-02-09 17:46:44 -05:00
										 |  |  |     dup CFArrayGetCount | 
					
						
							|  |  |  |     [ CFArrayGetValueAtIndex ] with { } map-integers ;
 | 
					
						
							| 
									
										
										
										
											2008-12-12 01:33:05 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | : <CFArray> ( seq -- alien )
 | 
					
						
							| 
									
										
										
										
											2009-03-09 21:22:56 -04:00
										 |  |  |     f over length &: kCFTypeArrayCallBacks CFArrayCreateMutable | 
					
						
							|  |  |  |     [ '[ [ _ ] 2dip swap CFArraySetValueAtIndex ] each-index ] keep ;
 |