Mercurial > hg > aim92
annotate 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 |
rev | line source |
---|---|
tomwalters@0 | 1 /* |
tomwalters@0 | 2 |
tomwalters@0 | 3 buffer.h |
tomwalters@0 | 4 ======== |
tomwalters@0 | 5 |
tomwalters@0 | 6 simple generic buffer abstraction. |
tomwalters@0 | 7 |
tomwalters@0 | 8 */ |
tomwalters@0 | 9 |
tomwalters@0 | 10 #define DeleteBuffer( _buffer ) ( FreeBuffer( _buffer ), _buffer = 0 ) |
tomwalters@0 | 11 |
tomwalters@0 | 12 #define BufferSize( _buffer ) ( ( _buffer )->size ) |
tomwalters@0 | 13 #define BufferPointer( _buffer ) ( ( _buffer )->addr ) |
tomwalters@0 | 14 #define SetBufferSize( _buffer, _size ) ( ( _buffer )->size = _size ) |
tomwalters@0 | 15 #define SetBufferPointer( _buffer, _addr ) ( ( _buffer )->addr = _addr ) |
tomwalters@0 | 16 #define SizedBufferPointer( _buffer, _size ) ( BufferPointer( ( ( _size ) > BufferSize( _buffer ) ) ? ResizedBuffer( _buffer, _size ) : _buffer ) ) |
tomwalters@0 | 17 |
tomwalters@0 | 18 typedef struct _buffer *Buffer ; |
tomwalters@0 | 19 |
tomwalters@0 | 20 |
tomwalters@0 | 21 struct _buffer { Pointer addr ; unsigned size, refs ; } ; |
tomwalters@0 | 22 |
tomwalters@0 | 23 extern Buffer NewBuffer( /* char where[] */ ) ; |
tomwalters@0 | 24 extern Buffer SharedBuffer( /* Buffer buffer */ ) ; |
tomwalters@0 | 25 extern Buffer ResizedBuffer( /* Buffer buffer, unsigned size */ ) ; |
tomwalters@0 | 26 extern void FreeBuffer( /* Buffer buffer */ ) ; |