diff options
author | orivej <orivej@yandex-team.ru> | 2022-02-10 16:45:01 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:45:01 +0300 |
commit | 2d37894b1b037cf24231090eda8589bbb44fb6fc (patch) | |
tree | be835aa92c6248212e705f25388ebafcf84bc7a1 /contrib/libs/poco/Net/src/HTTPHeaderStream.cpp | |
parent | 718c552901d703c502ccbefdfc3c9028d608b947 (diff) | |
download | ydb-2d37894b1b037cf24231090eda8589bbb44fb6fc.tar.gz |
Restoring authorship annotation for <orivej@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'contrib/libs/poco/Net/src/HTTPHeaderStream.cpp')
-rw-r--r-- | contrib/libs/poco/Net/src/HTTPHeaderStream.cpp | 352 |
1 files changed, 176 insertions, 176 deletions
diff --git a/contrib/libs/poco/Net/src/HTTPHeaderStream.cpp b/contrib/libs/poco/Net/src/HTTPHeaderStream.cpp index 2b53e96815..7d8279bc80 100644 --- a/contrib/libs/poco/Net/src/HTTPHeaderStream.cpp +++ b/contrib/libs/poco/Net/src/HTTPHeaderStream.cpp @@ -1,180 +1,180 @@ -// -// HTTPHeaderStream.cpp -// -// Library: Net -// Package: HTTP -// Module: HTTPHeaderStream -// -// Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include "Poco/Net/HTTPHeaderStream.h" -#include "Poco/Net/HTTPSession.h" - - -namespace Poco { -namespace Net { - - -// -// HTTPHeaderStreamBuf -// - - -HTTPHeaderStreamBuf::HTTPHeaderStreamBuf(HTTPSession& session, openmode mode): - HTTPBasicStreamBuf(HTTPBufferAllocator::BUFFER_SIZE, mode), - _session(session), +// +// HTTPHeaderStream.cpp +// +// Library: Net +// Package: HTTP +// Module: HTTPHeaderStream +// +// Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/Net/HTTPHeaderStream.h" +#include "Poco/Net/HTTPSession.h" + + +namespace Poco { +namespace Net { + + +// +// HTTPHeaderStreamBuf +// + + +HTTPHeaderStreamBuf::HTTPHeaderStreamBuf(HTTPSession& session, openmode mode): + HTTPBasicStreamBuf(HTTPBufferAllocator::BUFFER_SIZE, mode), + _session(session), _end(false), _line_ended(true) -{ -} - - -HTTPHeaderStreamBuf::~HTTPHeaderStreamBuf() -{ -} - - -int HTTPHeaderStreamBuf::readFromDevice(char* buffer, std::streamsize length) -{ - // read line-by-line; an empty line denotes the end of the headers. - static const int eof = std::char_traits<char>::eof(); - - if (_end) return 0; - - int n = 0; - int ch = _session.get(); - while (ch != eof && ch != '\n' && n < length - 1) - { - *buffer++ = (char) ch; ++n; - ch = _session.get(); - } - if (ch != eof) - { - *buffer++ = (char) ch; ++n; +{ +} + + +HTTPHeaderStreamBuf::~HTTPHeaderStreamBuf() +{ +} + + +int HTTPHeaderStreamBuf::readFromDevice(char* buffer, std::streamsize length) +{ + // read line-by-line; an empty line denotes the end of the headers. + static const int eof = std::char_traits<char>::eof(); + + if (_end) return 0; + + int n = 0; + int ch = _session.get(); + while (ch != eof && ch != '\n' && n < length - 1) + { + *buffer++ = (char) ch; ++n; + ch = _session.get(); + } + if (ch != eof) + { + *buffer++ = (char) ch; ++n; if (n == 2) _end = _line_ended; - } + } _line_ended = (ch == '\n'); - return n; -} - - -int HTTPHeaderStreamBuf::writeToDevice(const char* buffer, std::streamsize length) -{ - return _session.write(buffer, length); -} - - -// -// HTTPHeaderIOS -// - - -HTTPHeaderIOS::HTTPHeaderIOS(HTTPSession& session, HTTPHeaderStreamBuf::openmode mode): - _buf(session, mode) -{ - poco_ios_init(&_buf); -} - - -HTTPHeaderIOS::~HTTPHeaderIOS() -{ - try - { - _buf.sync(); - } - catch (...) - { - } -} - - -HTTPHeaderStreamBuf* HTTPHeaderIOS::rdbuf() -{ - return &_buf; -} - - -// -// HTTPHeaderInputStream -// - - -Poco::MemoryPool HTTPHeaderInputStream::_pool(sizeof(HTTPHeaderInputStream)); - - -HTTPHeaderInputStream::HTTPHeaderInputStream(HTTPSession& session): - HTTPHeaderIOS(session, std::ios::in), - std::istream(&_buf) -{ -} - - -HTTPHeaderInputStream::~HTTPHeaderInputStream() -{ -} - - -void* HTTPHeaderInputStream::operator new(std::size_t /*size*/) -{ - return _pool.get(); -} - - -void HTTPHeaderInputStream::operator delete(void* ptr) -{ - try - { - _pool.release(ptr); - } - catch (...) - { - poco_unexpected(); - } -} - - -// -// HTTPHeaderOutputStream -// - - -Poco::MemoryPool HTTPHeaderOutputStream::_pool(sizeof(HTTPHeaderOutputStream)); - - -HTTPHeaderOutputStream::HTTPHeaderOutputStream(HTTPSession& session): - HTTPHeaderIOS(session, std::ios::out), - std::ostream(&_buf) -{ -} - - -HTTPHeaderOutputStream::~HTTPHeaderOutputStream() -{ -} - - -void* HTTPHeaderOutputStream::operator new(std::size_t /*size*/) -{ - return _pool.get(); -} - - -void HTTPHeaderOutputStream::operator delete(void* ptr) -{ - try - { - _pool.release(ptr); - } - catch (...) - { - poco_unexpected(); - } -} - - -} } // namespace Poco::Net + return n; +} + + +int HTTPHeaderStreamBuf::writeToDevice(const char* buffer, std::streamsize length) +{ + return _session.write(buffer, length); +} + + +// +// HTTPHeaderIOS +// + + +HTTPHeaderIOS::HTTPHeaderIOS(HTTPSession& session, HTTPHeaderStreamBuf::openmode mode): + _buf(session, mode) +{ + poco_ios_init(&_buf); +} + + +HTTPHeaderIOS::~HTTPHeaderIOS() +{ + try + { + _buf.sync(); + } + catch (...) + { + } +} + + +HTTPHeaderStreamBuf* HTTPHeaderIOS::rdbuf() +{ + return &_buf; +} + + +// +// HTTPHeaderInputStream +// + + +Poco::MemoryPool HTTPHeaderInputStream::_pool(sizeof(HTTPHeaderInputStream)); + + +HTTPHeaderInputStream::HTTPHeaderInputStream(HTTPSession& session): + HTTPHeaderIOS(session, std::ios::in), + std::istream(&_buf) +{ +} + + +HTTPHeaderInputStream::~HTTPHeaderInputStream() +{ +} + + +void* HTTPHeaderInputStream::operator new(std::size_t /*size*/) +{ + return _pool.get(); +} + + +void HTTPHeaderInputStream::operator delete(void* ptr) +{ + try + { + _pool.release(ptr); + } + catch (...) + { + poco_unexpected(); + } +} + + +// +// HTTPHeaderOutputStream +// + + +Poco::MemoryPool HTTPHeaderOutputStream::_pool(sizeof(HTTPHeaderOutputStream)); + + +HTTPHeaderOutputStream::HTTPHeaderOutputStream(HTTPSession& session): + HTTPHeaderIOS(session, std::ios::out), + std::ostream(&_buf) +{ +} + + +HTTPHeaderOutputStream::~HTTPHeaderOutputStream() +{ +} + + +void* HTTPHeaderOutputStream::operator new(std::size_t /*size*/) +{ + return _pool.get(); +} + + +void HTTPHeaderOutputStream::operator delete(void* ptr) +{ + try + { + _pool.release(ptr); + } + catch (...) + { + poco_unexpected(); + } +} + + +} } // namespace Poco::Net |