summaryrefslogtreecommitdiff
path: root/streaming.h
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2011-05-11 19:30:25 -0700
committerJunio C Hamano <gitster@pobox.com>2011-05-20 18:46:55 -0700
commit46bf043807cc5d8986f41139a8c28491f613c5e0 (patch)
treeb9b3e84edd69fa5eebcf80e67a5287194b98e9a0 /streaming.h
parentfd5db55d8b6668a1ff9583a6636a4d54ad9519f2 (diff)
downloadgit-46bf043807cc5d8986f41139a8c28491f613c5e0.tar.gz
streaming: a new API to read from the object store
Given an object name, use open_istream() to get a git_istream handle that you can read_istream() from as if you are using read(2) to read the contents of the object, and close it with close_istream() when you are done. Currently, we do not do anything fancy--it just calls read_sha1_file() and keeps the contents in memory as a whole, and carve it out as you request with read_istream(). Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'streaming.h')
-rw-r--r--streaming.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/streaming.h b/streaming.h
new file mode 100644
index 0000000000..18cbe68ac1
--- /dev/null
+++ b/streaming.h
@@ -0,0 +1,15 @@
+/*
+ * 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 *);
+extern int close_istream(struct git_istream *);
+extern ssize_t read_istream(struct git_istream *, char *, size_t);
+
+#endif /* STREAMING_H */