aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/http/io/headers.h
diff options
context:
space:
mode:
authorAnton Samokhvalov <pg83@yandex.ru>2022-02-10 16:45:17 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:45:17 +0300
commitd3a398281c6fd1d3672036cb2d63f842d2cb28c5 (patch)
treedd4bd3ca0f36b817e96812825ffaf10d645803f2 /library/cpp/http/io/headers.h
parent72cb13b4aff9bc9cf22e49251bc8fd143f82538f (diff)
downloadydb-d3a398281c6fd1d3672036cb2d63f842d2cb28c5.tar.gz
Restoring authorship annotation for Anton Samokhvalov <pg83@yandex.ru>. Commit 2 of 2.
Diffstat (limited to 'library/cpp/http/io/headers.h')
-rw-r--r--library/cpp/http/io/headers.h126
1 files changed, 63 insertions, 63 deletions
diff --git a/library/cpp/http/io/headers.h b/library/cpp/http/io/headers.h
index a6e130eaa0..a71793d1c6 100644
--- a/library/cpp/http/io/headers.h
+++ b/library/cpp/http/io/headers.h
@@ -1,99 +1,99 @@
#pragma once
-
+
#include <util/generic/string.h>
-#include <util/generic/strbuf.h>
+#include <util/generic/strbuf.h>
#include <util/generic/deque.h>
#include <util/generic/vector.h>
#include <util/string/cast.h>
-
+
class IInputStream;
class IOutputStream;
-
+
/// @addtogroup Streams_HTTP
/// @{
/// Объект, содержащий информацию о HTTP-заголовке.
class THttpInputHeader {
-public:
- /// @param[in] header - строка вида 'параметр: значение'.
+public:
+ /// @param[in] header - строка вида 'параметр: значение'.
THttpInputHeader(TStringBuf header);
- /// @param[in] name - имя параметра.
- /// @param[in] value - значение параметра.
+ /// @param[in] name - имя параметра.
+ /// @param[in] value - значение параметра.
THttpInputHeader(TString name, TString value);
-
- /// Возвращает имя параметра.
+
+ /// Возвращает имя параметра.
inline const TString& Name() const noexcept {
- return Name_;
- }
-
- /// Возвращает значение параметра.
+ return Name_;
+ }
+
+ /// Возвращает значение параметра.
inline const TString& Value() const noexcept {
- return Value_;
- }
-
- /// Записывает заголовок вида "имя параметра: значение\r\n" в поток.
+ return Value_;
+ }
+
+ /// Записывает заголовок вида "имя параметра: значение\r\n" в поток.
void OutTo(IOutputStream* stream) const;
-
- /// Возвращает строку "имя параметра: значение".
+
+ /// Возвращает строку "имя параметра: значение".
inline TString ToString() const {
return Name_ + TStringBuf(": ") + Value_;
- }
-
-private:
+ }
+
+private:
TString Name_;
TString Value_;
-};
-
+};
+
/// Контейнер для хранения HTTP-заголовков
-class THttpHeaders {
+class THttpHeaders {
using THeaders = TDeque<THttpInputHeader>;
-
-public:
+
+public:
using TConstIterator = THeaders::const_iterator;
-
+
THttpHeaders() = default;
- /// Добавляет каждую строку из потока в контейнер, считая ее правильным заголовком.
+ /// Добавляет каждую строку из потока в контейнер, считая ее правильным заголовком.
THttpHeaders(IInputStream* stream);
-
- /// Стандартный итератор.
+
+ /// Стандартный итератор.
inline TConstIterator Begin() const noexcept {
- return Headers_.begin();
- }
+ return Headers_.begin();
+ }
inline TConstIterator begin() const noexcept {
return Headers_.begin();
}
-
- /// Стандартный итератор.
+
+ /// Стандартный итератор.
inline TConstIterator End() const noexcept {
- return Headers_.end();
- }
+ return Headers_.end();
+ }
inline TConstIterator end() const noexcept {
return Headers_.end();
}
-
- /// Возвращает количество заголовков в контейнере.
+
+ /// Возвращает количество заголовков в контейнере.
inline size_t Count() const noexcept {
- return Headers_.size();
- }
-
- /// Проверяет, содержит ли контейнер хотя бы один заголовок.
+ return Headers_.size();
+ }
+
+ /// Проверяет, содержит ли контейнер хотя бы один заголовок.
inline bool Empty() const noexcept {
- return Headers_.empty();
- }
+ return Headers_.empty();
+ }
- /// Добавляет заголовок в контейнер.
+ /// Добавляет заголовок в контейнер.
void AddHeader(THttpInputHeader header);
-
+
template <typename ValueType>
void AddHeader(TString name, const ValueType& value) {
AddHeader(THttpInputHeader(std::move(name), ToString(value)));
}
- /// Добавляет заголовок в контейнер, если тот не содержит заголовка
- /// c таким же параметром. В противном случае, заменяет существующий
- /// заголовок на новый.
- void AddOrReplaceHeader(const THttpInputHeader& header);
-
+ /// Добавляет заголовок в контейнер, если тот не содержит заголовка
+ /// c таким же параметром. В противном случае, заменяет существующий
+ /// заголовок на новый.
+ void AddOrReplaceHeader(const THttpInputHeader& header);
+
template <typename ValueType>
void AddOrReplaceHeader(TString name, const ValueType& value) {
AddOrReplaceHeader(THttpInputHeader(std::move(name), ToString(value)));
@@ -109,17 +109,17 @@ public:
/// Возвращает nullptr, если не нашел
const THttpInputHeader* FindHeader(TStringBuf header) const;
- /// Записывает все заголовки контейнера в поток.
- /// @details Каждый заголовк записывается в виде "имя параметра: значение\r\n".
+ /// Записывает все заголовки контейнера в поток.
+ /// @details Каждый заголовк записывается в виде "имя параметра: значение\r\n".
void OutTo(IOutputStream* stream) const;
- /// Обменивает наборы заголовков двух контейнеров.
+ /// Обменивает наборы заголовков двух контейнеров.
void Swap(THttpHeaders& headers) noexcept {
- Headers_.swap(headers.Headers_);
- }
-
-private:
- THeaders Headers_;
-};
-
+ Headers_.swap(headers.Headers_);
+ }
+
+private:
+ THeaders Headers_;
+};
+
/// @}