diff options
author | orivej <orivej@yandex-team.ru> | 2022-02-10 16:44:49 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:44:49 +0300 |
commit | 718c552901d703c502ccbefdfc3c9028d608b947 (patch) | |
tree | 46534a98bbefcd7b1f3faa5b52c138ab27db75b7 /contrib/libs/poco/Foundation/include/Poco/StreamConverter.h | |
parent | e9656aae26e0358d5378e5b63dcac5c8dbe0e4d0 (diff) | |
download | ydb-718c552901d703c502ccbefdfc3c9028d608b947.tar.gz |
Restoring authorship annotation for <orivej@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/libs/poco/Foundation/include/Poco/StreamConverter.h')
-rw-r--r-- | contrib/libs/poco/Foundation/include/Poco/StreamConverter.h | 256 |
1 files changed, 128 insertions, 128 deletions
diff --git a/contrib/libs/poco/Foundation/include/Poco/StreamConverter.h b/contrib/libs/poco/Foundation/include/Poco/StreamConverter.h index c880e2632f..ecb345a271 100644 --- a/contrib/libs/poco/Foundation/include/Poco/StreamConverter.h +++ b/contrib/libs/poco/Foundation/include/Poco/StreamConverter.h @@ -1,128 +1,128 @@ -// -// StreamConverter.h -// -// Library: Foundation -// Package: Text -// Module: StreamConverter -// -// Definition of the StreamConverter class. -// -// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#ifndef Foundation_StreamConverter_INCLUDED -#define Foundation_StreamConverter_INCLUDED - - -#include "Poco/Foundation.h" -#include "Poco/TextEncoding.h" -#include "Poco/UnbufferedStreamBuf.h" -#include <istream> -#include <ostream> - - -namespace Poco { - - -class Foundation_API StreamConverterBuf: public UnbufferedStreamBuf - /// A StreamConverter converts streams from one encoding (inEncoding) - /// into another (outEncoding). - /// If a character cannot be represented in outEncoding, defaultChar - /// is used instead. - /// If a byte sequence is not valid in inEncoding, defaultChar is used - /// instead and the encoding error count is incremented. -{ -public: - StreamConverterBuf(std::istream& istr, const TextEncoding& inEncoding, const TextEncoding& outEncoding, int defaultChar = '?'); - /// Creates the StreamConverterBuf and connects it - /// to the given input stream. - - StreamConverterBuf(std::ostream& ostr, const TextEncoding& inEncoding, const TextEncoding& outEncoding, int defaultChar = '?'); - /// Creates the StreamConverterBuf and connects it - /// to the given output stream. - - ~StreamConverterBuf(); - /// Destroys the StreamConverterBuf. - - int errors() const; - /// Returns the number of encoding errors encountered. - -protected: - int readFromDevice(); - int writeToDevice(char c); - -private: - std::istream* _pIstr; - std::ostream* _pOstr; - const TextEncoding& _inEncoding; - const TextEncoding& _outEncoding; - int _defaultChar; - unsigned char _buffer[TextEncoding::MAX_SEQUENCE_LENGTH]; - int _sequenceLength; - int _pos; - int _errors; -}; - - -class Foundation_API StreamConverterIOS: public virtual std::ios - /// The base class for InputStreamConverter and OutputStreamConverter. - /// - /// This class is needed to ensure the correct initialization - /// order of the stream buffer and base classes. -{ -public: - StreamConverterIOS(std::istream& istr, const TextEncoding& inEncoding, const TextEncoding& outEncoding, int defaultChar = '?'); - StreamConverterIOS(std::ostream& ostr, const TextEncoding& inEncoding, const TextEncoding& outEncoding, int defaultChar = '?'); - ~StreamConverterIOS(); - StreamConverterBuf* rdbuf(); - int errors() const; - -protected: - StreamConverterBuf _buf; -}; - - -class Foundation_API InputStreamConverter: public StreamConverterIOS, public std::istream - /// This stream converts all characters read from the - /// underlying istream from one character encoding into another. - /// If a character cannot be represented in outEncoding, defaultChar - /// is used instead. - /// If a byte sequence read from the underlying stream is not valid in inEncoding, - /// defaultChar is used instead and the encoding error count is incremented. -{ -public: - InputStreamConverter(std::istream& istr, const TextEncoding& inEncoding, const TextEncoding& outEncoding, int defaultChar = '?'); - /// Creates the InputStreamConverter and connects it - /// to the given input stream. - - ~InputStreamConverter(); - /// Destroys the stream. -}; - - -class Foundation_API OutputStreamConverter: public StreamConverterIOS, public std::ostream - /// This stream converts all characters written to the - /// underlying ostream from one character encoding into another. - /// If a character cannot be represented in outEncoding, defaultChar - /// is used instead. - /// If a byte sequence written to the stream is not valid in inEncoding, - /// defaultChar is used instead and the encoding error count is incremented. -{ -public: - OutputStreamConverter(std::ostream& ostr, const TextEncoding& inEncoding, const TextEncoding& outEncoding, int defaultChar = '?'); - /// Creates the OutputStreamConverter and connects it - /// to the given input stream. - - ~OutputStreamConverter(); - /// Destroys the CountingOutputStream. -}; - - -} // namespace Poco - - -#endif // Foundation_StreamConverter_INCLUDED +// +// StreamConverter.h +// +// Library: Foundation +// Package: Text +// Module: StreamConverter +// +// Definition of the StreamConverter class. +// +// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef Foundation_StreamConverter_INCLUDED +#define Foundation_StreamConverter_INCLUDED + + +#include "Poco/Foundation.h" +#include "Poco/TextEncoding.h" +#include "Poco/UnbufferedStreamBuf.h" +#include <istream> +#include <ostream> + + +namespace Poco { + + +class Foundation_API StreamConverterBuf: public UnbufferedStreamBuf + /// A StreamConverter converts streams from one encoding (inEncoding) + /// into another (outEncoding). + /// If a character cannot be represented in outEncoding, defaultChar + /// is used instead. + /// If a byte sequence is not valid in inEncoding, defaultChar is used + /// instead and the encoding error count is incremented. +{ +public: + StreamConverterBuf(std::istream& istr, const TextEncoding& inEncoding, const TextEncoding& outEncoding, int defaultChar = '?'); + /// Creates the StreamConverterBuf and connects it + /// to the given input stream. + + StreamConverterBuf(std::ostream& ostr, const TextEncoding& inEncoding, const TextEncoding& outEncoding, int defaultChar = '?'); + /// Creates the StreamConverterBuf and connects it + /// to the given output stream. + + ~StreamConverterBuf(); + /// Destroys the StreamConverterBuf. + + int errors() const; + /// Returns the number of encoding errors encountered. + +protected: + int readFromDevice(); + int writeToDevice(char c); + +private: + std::istream* _pIstr; + std::ostream* _pOstr; + const TextEncoding& _inEncoding; + const TextEncoding& _outEncoding; + int _defaultChar; + unsigned char _buffer[TextEncoding::MAX_SEQUENCE_LENGTH]; + int _sequenceLength; + int _pos; + int _errors; +}; + + +class Foundation_API StreamConverterIOS: public virtual std::ios + /// The base class for InputStreamConverter and OutputStreamConverter. + /// + /// This class is needed to ensure the correct initialization + /// order of the stream buffer and base classes. +{ +public: + StreamConverterIOS(std::istream& istr, const TextEncoding& inEncoding, const TextEncoding& outEncoding, int defaultChar = '?'); + StreamConverterIOS(std::ostream& ostr, const TextEncoding& inEncoding, const TextEncoding& outEncoding, int defaultChar = '?'); + ~StreamConverterIOS(); + StreamConverterBuf* rdbuf(); + int errors() const; + +protected: + StreamConverterBuf _buf; +}; + + +class Foundation_API InputStreamConverter: public StreamConverterIOS, public std::istream + /// This stream converts all characters read from the + /// underlying istream from one character encoding into another. + /// If a character cannot be represented in outEncoding, defaultChar + /// is used instead. + /// If a byte sequence read from the underlying stream is not valid in inEncoding, + /// defaultChar is used instead and the encoding error count is incremented. +{ +public: + InputStreamConverter(std::istream& istr, const TextEncoding& inEncoding, const TextEncoding& outEncoding, int defaultChar = '?'); + /// Creates the InputStreamConverter and connects it + /// to the given input stream. + + ~InputStreamConverter(); + /// Destroys the stream. +}; + + +class Foundation_API OutputStreamConverter: public StreamConverterIOS, public std::ostream + /// This stream converts all characters written to the + /// underlying ostream from one character encoding into another. + /// If a character cannot be represented in outEncoding, defaultChar + /// is used instead. + /// If a byte sequence written to the stream is not valid in inEncoding, + /// defaultChar is used instead and the encoding error count is incremented. +{ +public: + OutputStreamConverter(std::ostream& ostr, const TextEncoding& inEncoding, const TextEncoding& outEncoding, int defaultChar = '?'); + /// Creates the OutputStreamConverter and connects it + /// to the given input stream. + + ~OutputStreamConverter(); + /// Destroys the CountingOutputStream. +}; + + +} // namespace Poco + + +#endif // Foundation_StreamConverter_INCLUDED |