| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 | #pragma once#include <cstring>#include <iostream>#include <ostream>#include "civetweb.h"const size_t BUF_SIZE = 1024;// Custom streambufclass mg_buf : public std::streambuf { private:  struct mg_connection* conn;  char buffer[BUF_SIZE]; public:  mg_buf(struct mg_connection* _conn); protected:  virtual int_type overflow(int_type c);  int flush_buffer();  virtual int sync();};/** * @brief Adapts ostream to mg_write *  */class MGStreamAdapter : public std::ostream { private:  mg_buf buf; public:  MGStreamAdapter(struct mg_connection* _conn);};// Custom streambufclass mg_read_buf : public std::streambuf { private:  struct mg_connection* conn;  char buffer[BUF_SIZE]; public:  mg_read_buf(struct mg_connection* _conn); protected:  virtual int_type underflow();};/** * @brief Adapts istream to mg_read */class MGInputStreamAdapter : public std::istream { private:  mg_read_buf buf; public:  MGInputStreamAdapter(struct mg_connection* _conn);};
 |