This introduces an API to plug custom filters to an input stream.
The caller gets get_stream_filter("path") to obtain an appropriate
filter for the path, and then uses it when opening an input stream
via open_istream().  After that, the caller can read from the stream
with read_istream(), and close it with close_istream(), just like an
unfiltered stream.
This only adds a "null" filter that is a pass-thru filter, but later
changes can add LF-to-CRLF and other filters, and the callers of the
streaming API do not have to change.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
	
		
			
				
	
	
		
			16 lines
		
	
	
		
			404 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			16 lines
		
	
	
		
			404 B
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * Copyright (c) 2011, Google Inc.
 | 
						|
 */
 | 
						|
#ifndef STREAMING_H
 | 
						|
#define STREAMING_H 1
 | 
						|
#include "cache.h"
 | 
						|
 | 
						|
/* opaque */
 | 
						|
struct git_istream;
 | 
						|
 | 
						|
extern struct git_istream *open_istream(const unsigned char *, enum object_type *, unsigned long *, struct stream_filter *);
 | 
						|
extern int close_istream(struct git_istream *);
 | 
						|
extern ssize_t read_istream(struct git_istream *, char *, size_t);
 | 
						|
 | 
						|
#endif /* STREAMING_H */
 |