1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- #pragma once
- #include <cstring>
- #include <iostream>
- #include <ostream>
- #include "civetweb.h"
- const size_t BUF_SIZE = 1024;
- // Custom streambuf
- class 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 streambuf
- class 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);
- };
|