/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */ #ifndef HTTPCHUNKEDENCODING_H #define HTTPCHUNKEDENCODING_H #include "remote/i2-remote.hpp" #include "base/stream.hpp" namespace icinga { struct ChunkReadContext { StreamReadContext& StreamContext; int LengthIndicator; ChunkReadContext(StreamReadContext& scontext) : StreamContext(scontext), LengthIndicator(-1) { } }; /** * HTTP chunked encoding. * * @ingroup remote */ struct HttpChunkedEncoding { static StreamReadStatus ReadChunkFromStream(const Stream::Ptr& stream, char **data, size_t *size, ChunkReadContext& ccontext, bool may_wait = false); static void WriteChunkToStream(const Stream::Ptr& stream, const char *data, size_t count); }; } #endif /* HTTPCHUNKEDENCODING_H */