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