b6691092d7
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 */
|