tomwalters@0: /* tomwalters@0: fillable.h tomwalters@0: ========== tomwalters@0: tomwalters@0: fillable derived sources tomwalters@0: tomwalters@0: */ tomwalters@0: tomwalters@0: #define SetFillableSource( _source , _filler, _name ) \ tomwalters@0: setFillableSource( &( _source )->parent, _filler, _name ) tomwalters@0: #define DeleteFillableSource( _source ) \ tomwalters@0: deleteFillableSource( &( _source )->parent ) tomwalters@0: tomwalters@0: /* derived Fillable sources */ tomwalters@0: tomwalters@0: #define NewRepeatingSource( _data , _segment ) \ tomwalters@0: newRepeatingSource( (Pointer) ( _data ), _segment ) tomwalters@0: tomwalters@0: tomwalters@0: #define NewSegmentingSource( _source, _block ) \ tomwalters@0: newSegmentingSource( _source, (ByteCount) ( _block ) ) tomwalters@0: tomwalters@0: tomwalters@0: #define NewCallbackSource( _filler, _state , _callback, _close, _name ) \ tomwalters@0: newCallbackSource( _filler, (Pointer) ( _state ), _callback, _close, _name ) tomwalters@0: tomwalters@0: #define NewExternalSource( _state , _callback, _close, _name ) \ tomwalters@0: newExternalSource( (Pointer) ( _state ), _callback, _close, _name ) tomwalters@0: tomwalters@0: #define NewThroughSource( _filler, _state , _callback, _close, _input, _name ) \ tomwalters@0: newThroughSource( _filler, (Pointer) ( _state ), _callback, _close, _input, _name ) tomwalters@0: tomwalters@0: tomwalters@0: #define NewProcessingSource( _state , _callback, _close, _input, _name ) \ tomwalters@0: newProcessingSource( (Pointer) ( _state ), _callback, _close, _input, _name ) tomwalters@0: tomwalters@0: #define NewSimpleProcessingSource( _callback, _input, _name ) \ tomwalters@0: newSimpleProcessingSource( _callback, _input, _name ) tomwalters@0: tomwalters@0: tomwalters@0: #define NewMultiplexedSource( _states , _callback, _close, _channels, _input, _name ) \ tomwalters@0: newMultiplexedSource( (Pointer *) ( _states ), _callback, _close, _channels, _input, _name ) tomwalters@0: tomwalters@0: tomwalters@0: #define NewMergingSource( _state , _callback, _close, _inputs, _name ) \ tomwalters@0: newMergingSource( (Pointer) ( _state ), _callback, _close, _inputs, _name ) tomwalters@0: tomwalters@0: #define SharingSource( _source1, _source2 ) \ tomwalters@0: sharingSource( _source1, _source2 ) tomwalters@0: tomwalters@0: /* derived higher level filling sources */ tomwalters@0: tomwalters@0: extern Source setFillableSource() ; tomwalters@0: extern Pointer deleteFillableSource() ; tomwalters@0: tomwalters@0: extern Source newSegmentingSource() ; tomwalters@0: tomwalters@0: extern Source setCallbackSource() ; tomwalters@0: extern Source newExternalSource() ; tomwalters@0: extern Source newThroughSource() ; tomwalters@0: tomwalters@0: extern Source newProcessingSource() ; tomwalters@0: extern Source newSimpleProcessingSource() ; tomwalters@0: extern Source newMultiplexedSource() ; tomwalters@0: extern Source newMergingSource() ; tomwalters@0: tomwalters@0: extern Source sharingSource() ;