Locked I/O buffers
Factor documentation > Factor handbook > The language > Collections
Prev:Directed graph utilities


I/O buffers are first-in-first-out queues of bytes.

Buffers are backed by manually allocated storage that does not get moved by the garbage collector; they are also low-level and sacrifice error checking for efficiency.

Buffers are used to implement native I/O backends.

Buffer words are found in the io.buffers vocabulary.
buffer

<buffer> ( n -- buffer )


Buffers must be manually deallocated by calling dispose.

Buffer operations:
buffer-reset ( n buffer -- )

buffer-length ( buffer -- n )

buffer-empty? ( buffer -- ? )

buffer-capacity ( buffer -- n )

buffer@ ( buffer -- alien )


Reading from the buffer:
buffer-peek ( buffer -- byte )

buffer-pop ( buffer -- byte )

buffer-read ( n buffer -- byte-array )


Writing to the buffer:
byte>buffer ( byte buffer -- )

>buffer ( byte-array buffer -- )

n>buffer ( n buffer -- )