/* Copyright 2016 Luke Shumaker */ #pragma once #include struct frame { ssize_t len; size_t cap; char *buf; }; struct multipart_replace_stream { struct frame a, b; struct frame *front, *back; pthread_rwlock_t frontlock; long framecount; }; void multipart_replace_reader(struct multipart_replace_stream *s, int fd, const char *boundary); void multipart_replace_writer(struct multipart_replace_stream *s, int fd, const char *boundary); void init_multipart_replace_stream();