diff options
author | Jonathan Tan <jonathantanmy@google.com> | 2019-01-15 20:40:27 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-01-15 20:44:48 +0100 |
commit | bc2e795cea607e444a9f985b0dbed5a4d25921c8 (patch) | |
tree | 3d155b6f225082f2565e64a464b4f3df22c405f9 /pkt-line.h | |
parent | Merge branch 'ms/packet-err-check' into jt/fetch-v2-sideband (diff) | |
download | git-bc2e795cea607e444a9f985b0dbed5a4d25921c8.tar.xz git-bc2e795cea607e444a9f985b0dbed5a4d25921c8.zip |
pkt-line: introduce struct packet_writer
A future patch will allow the client to request multiplexing of the
entire fetch response (and not only during packfile transmission), which
in turn allows the server to send progress and keepalive messages at any
time during the response.
It will be convenient for a future patch if writing options
(specifically, whether the written data is to be multiplexed) could be
controlled from a single place, so create struct packet_writer to serve
as that place, and modify upload-pack to use it.
Currently, it only stores the output fd, but a subsequent patch will (as
described above) introduce an option to determine if the written data is
to be multiplexed.
Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'pkt-line.h')
-rw-r--r-- | pkt-line.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/pkt-line.h b/pkt-line.h index d7e1dbc047..023ad2951d 100644 --- a/pkt-line.h +++ b/pkt-line.h @@ -183,4 +183,18 @@ extern enum packet_read_status packet_reader_peek(struct packet_reader *reader); #define LARGE_PACKET_DATA_MAX (LARGE_PACKET_MAX - 4) extern char packet_buffer[LARGE_PACKET_MAX]; +struct packet_writer { + int dest_fd; +}; + +void packet_writer_init(struct packet_writer *writer, int dest_fd); + +/* These functions die upon failure. */ +__attribute__((format (printf, 2, 3))) +void packet_writer_write(struct packet_writer *writer, const char *fmt, ...); +__attribute__((format (printf, 2, 3))) +void packet_writer_error(struct packet_writer *writer, const char *fmt, ...); +void packet_writer_delim(struct packet_writer *writer); +void packet_writer_flush(struct packet_writer *writer); + #endif |