123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #pragma once
- #include <iostream>
- #include <ostream>
- #include <cstring>
- #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);
- };
|