factor/basis/io/mmap/functor/functor.factor

33 lines
903 B
Factor
Raw Normal View History

2008-11-14 21:18:16 -05:00
! Copyright (C) 2008 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: io.mmap functors accessors alien.c-types math kernel
words fry ;
2008-11-14 21:18:16 -05:00
IN: io.mmap.functor
SLOT: address
SLOT: length
: mapped-file>direct ( mapped-file type -- alien length )
[ [ address>> ] [ length>> ] bi ] dip
2009-04-25 20:22:00 -04:00
heap-size [ 1 - + ] keep /i ;
2008-11-14 21:18:16 -05:00
FUNCTOR: define-mapped-array ( T -- )
2008-11-14 21:18:16 -05:00
2009-04-25 20:22:00 -04:00
<mapped-A> DEFINES <mapped-${T}-array>
<A> IS <direct-${T}-array>
with-mapped-A-file DEFINES with-mapped-${T}-file
with-mapped-A-file-reader DEFINES with-mapped-${T}-file-reader
2008-11-14 21:18:16 -05:00
WHERE
: <mapped-A> ( mapped-file -- direct-array )
T mapped-file>direct <A> ; inline
: with-mapped-A-file ( path quot -- )
'[ <mapped-A> @ ] with-mapped-file ; inline
2008-11-14 21:18:16 -05:00
2009-04-25 20:22:00 -04:00
: with-mapped-A-file-reader ( path quot -- )
'[ <mapped-A> @ ] with-mapped-file-reader ; inline
2008-11-14 21:18:16 -05:00
;FUNCTOR