| 2812 | } |
| 2813 | |
| 2814 | class SocketStream : public Stream { |
| 2815 | public: |
| 2816 | SocketStream(socket_t sock, time_t read_timeout_sec, time_t read_timeout_usec, |
| 2817 | time_t write_timeout_sec, time_t write_timeout_usec); |
| 2818 | ~SocketStream() override; |
| 2819 | |
| 2820 | bool is_readable() const override; |
| 2821 | bool is_writable() const override; |
| 2822 | ssize_t read(char *ptr, size_t size) override; |
| 2823 | ssize_t write(const char *ptr, size_t size) override; |
| 2824 | void get_remote_ip_and_port(std::string &ip, int &port) const override; |
| 2825 | void get_local_ip_and_port(std::string &ip, int &port) const override; |
| 2826 | socket_t socket() const override; |
| 2827 | |
| 2828 | private: |
| 2829 | socket_t sock_; |
| 2830 | time_t read_timeout_sec_; |
| 2831 | time_t read_timeout_usec_; |
| 2832 | time_t write_timeout_sec_; |
| 2833 | time_t write_timeout_usec_; |
| 2834 | |
| 2835 | std::vector<char> read_buff_; |
| 2836 | size_t read_buff_off_ = 0; |
| 2837 | size_t read_buff_content_size_ = 0; |
| 2838 | |
| 2839 | static const size_t read_buff_size_ = 1024 * 4; |
| 2840 | }; |
| 2841 | |
| 2842 | #ifdef CPPHTTPLIB_OPENSSL_SUPPORT |
| 2843 | class SSLSocketStream : public Stream { |
nothing calls this directly
no outgoing calls
no test coverage detected