Mercurial > hg > aim92
view stitch/buffer.h @ 0:5242703e91d3 tip
Initial checkin for AIM92 aimR8.2 (last updated May 1997).
author | tomwalters |
---|---|
date | Fri, 20 May 2011 15:19:45 +0100 |
parents | |
children |
line wrap: on
line source
/* buffer.h ======== simple generic buffer abstraction. */ #define DeleteBuffer( _buffer ) ( FreeBuffer( _buffer ), _buffer = 0 ) #define BufferSize( _buffer ) ( ( _buffer )->size ) #define BufferPointer( _buffer ) ( ( _buffer )->addr ) #define SetBufferSize( _buffer, _size ) ( ( _buffer )->size = _size ) #define SetBufferPointer( _buffer, _addr ) ( ( _buffer )->addr = _addr ) #define SizedBufferPointer( _buffer, _size ) ( BufferPointer( ( ( _size ) > BufferSize( _buffer ) ) ? ResizedBuffer( _buffer, _size ) : _buffer ) ) typedef struct _buffer *Buffer ; struct _buffer { Pointer addr ; unsigned size, refs ; } ; extern Buffer NewBuffer( /* char where[] */ ) ; extern Buffer SharedBuffer( /* Buffer buffer */ ) ; extern Buffer ResizedBuffer( /* Buffer buffer, unsigned size */ ) ; extern void FreeBuffer( /* Buffer buffer */ ) ;