conn.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. #pragma once
  2. #include <library/cpp/http/io/stream.h>
  3. #include <util/generic/ptr.h>
  4. class TSocket;
  5. /// Потоки ввода/вывода для получения запросов и отправки ответов HTTP-сервера.
  6. class THttpServerConn {
  7. public:
  8. explicit THttpServerConn(const TSocket& s);
  9. THttpServerConn(const TSocket& s, size_t outputBufferSize);
  10. ~THttpServerConn();
  11. THttpInput* Input() noexcept;
  12. THttpOutput* Output() noexcept;
  13. inline const THttpInput* Input() const noexcept {
  14. return const_cast<THttpServerConn*>(this)->Input();
  15. }
  16. inline const THttpOutput* Output() const noexcept {
  17. return const_cast<THttpServerConn*>(this)->Output();
  18. }
  19. /// Проверяет, можно ли установить режим, при котором соединение с сервером
  20. /// не завершается после окончания транзакции.
  21. inline bool CanBeKeepAlive() const noexcept {
  22. return Output()->CanBeKeepAlive();
  23. }
  24. void Reset();
  25. private:
  26. class TImpl;
  27. THolder<TImpl> Impl_;
  28. };