diff options
| author | Edward Thomson <ethomson@edwardthomson.com> | 2014-12-10 11:30:28 -0500 |
|---|---|---|
| committer | Edward Thomson <ethomson@edwardthomson.com> | 2014-12-10 11:30:28 -0500 |
| commit | cd305c2f567678c96bccecab69f715b6063089bc (patch) | |
| tree | 88ddd29dfe22c8242ef6daeabdf6588cc7ea9d66 /include | |
| parent | 3b6a566867b3a62aeeed8320f17f1d125e1fe0d2 (diff) | |
| parent | a2fd56ab18cfe1a16372193e8ddfbbe6cadb5a78 (diff) | |
| download | libgit2-cd305c2f567678c96bccecab69f715b6063089bc.tar.gz | |
Merge pull request #2678 from libgit2/cmn/io-stream
Introduce stackable IO streams
Diffstat (limited to 'include')
| -rw-r--r-- | include/git2/sys/stream.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/include/git2/sys/stream.h b/include/git2/sys/stream.h new file mode 100644 index 000000000..c249055c9 --- /dev/null +++ b/include/git2/sys/stream.h @@ -0,0 +1,40 @@ +/* + * Copyright (C) the libgit2 contributors. All rights reserved. + * + * This file is part of libgit2, distributed under the GNU GPL v2 with + * a Linking Exception. For full terms see the included COPYING file. + */ +#ifndef INCLUDE_sys_git_stream_h__ +#define INCLUDE_sys_git_stream_h__ + +#include "git2/common.h" +#include "git2/types.h" + +GIT_BEGIN_DECL + +#define GIT_STREAM_VERSION 1 + +/** + * Every stream must have this struct as its first element, so the + * API can talk to it. You'd define your stream as + * + * struct my_stream { + * git_stream parent; + * ... + * } + * + * and fill the functions + */ +typedef struct git_stream { + int version; + + int encrypted; + int (*connect)(struct git_stream *); + int (*certificate)(git_cert **, struct git_stream *); + ssize_t (*read)(struct git_stream *, void *, size_t); + ssize_t (*write)(struct git_stream *, const char *, size_t, int); + int (*close)(struct git_stream *); + void (*free)(struct git_stream *); +} git_stream; + +#endif |
