Re: pipethrough



Leonard den Ottolander wrote:
Hi,

How should pipethrough that Roland wrote be integrated to avoid the
broken pipe warnings when aborting the view of a not fully expanded gzip
file? Would it be hard to integrate that code in init_growing_view() in
src/view.c?
Currently, pipethrough cannot handle the growing buffer that is used 
with WView. I would prefer to rewrite WView so that it contains a 
DataProducer which can be either a GrowingBufferDataProducer, a 
MmapDataProducer or a PipethroughDataProducer. The interface to the 
DataProducer could look like:
typedef struct DataProducer DataProducer;
struct DataProducer {
	WView *view;
	int (*get_byte) (DataProducer *, off_t);
	off_t (*get_current_size) (DataProducer *);
	off_t (*get_size) (DataProducer *);
	void (*destroy) (DataProducer *);
};

The WView would then only keep a reference to the DataProducer and would not know what type it is. Most probably the interface above is incomplete, but the idea behind should be clear.
Roland



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]