diff options
author | Devtools Arcadia <arcadia-devtools@yandex-team.ru> | 2022-02-07 18:08:42 +0300 |
---|---|---|
committer | Devtools Arcadia <arcadia-devtools@mous.vla.yp-c.yandex.net> | 2022-02-07 18:08:42 +0300 |
commit | 1110808a9d39d4b808aef724c861a2e1a38d2a69 (patch) | |
tree | e26c9fed0de5d9873cce7e00bc214573dc2195b7 /contrib/libs/poco/Foundation/include/Poco/FormattingChannel.h | |
download | ydb-1110808a9d39d4b808aef724c861a2e1a38d2a69.tar.gz |
intermediate changes
ref:cde9a383711a11544ce7e107a78147fb96cc4029
Diffstat (limited to 'contrib/libs/poco/Foundation/include/Poco/FormattingChannel.h')
-rw-r--r-- | contrib/libs/poco/Foundation/include/Poco/FormattingChannel.h | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/contrib/libs/poco/Foundation/include/Poco/FormattingChannel.h b/contrib/libs/poco/Foundation/include/Poco/FormattingChannel.h new file mode 100644 index 0000000000..f4dfded2a7 --- /dev/null +++ b/contrib/libs/poco/Foundation/include/Poco/FormattingChannel.h @@ -0,0 +1,96 @@ +// +// FormattingChannel.h +// +// Library: Foundation +// Package: Logging +// Module: Formatter +// +// Definition of the FormattingChannel class. +// +// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef Foundation_FormattingChannel_INCLUDED +#define Foundation_FormattingChannel_INCLUDED + + +#include "Poco/Foundation.h" +#include "Poco/Channel.h" + + +namespace Poco { + + +class Formatter; + + +class Foundation_API FormattingChannel: public Channel + /// The FormattingChannel is a filter channel that routes + /// a Message through a Formatter before passing it on + /// to the destination channel. +{ +public: + FormattingChannel(); + /// Creates a FormattingChannel. + + FormattingChannel(Formatter* pFormatter); + /// Creates a FormattingChannel and attaches a Formatter. + + FormattingChannel(Formatter* pFormatter, Channel* pChannel); + /// Creates a FormattingChannel and attaches a Formatter + /// and a Channel. + + void setFormatter(Formatter* pFormatter); + /// Sets the Formatter used to format the messages + /// before they are passed on. If null, the message + /// is passed on unmodified. + + Formatter* getFormatter() const; + /// Returns the Formatter used to format messages, + /// which may be null. + + void setChannel(Channel* pChannel); + /// Sets the destination channel to which the formatted + /// messages are passed on. + + Channel* getChannel() const; + /// Returns the channel to which the formatted + /// messages are passed on. + + void log(const Message& msg); + /// Formats the given Message using the Formatter and + /// passes the formatted message on to the destination + /// Channel. + + void setProperty(const std::string& name, const std::string& value); + /// Sets or changes a configuration property. + /// + /// Only the "channel" and "formatter" properties are supported, which allow + /// setting the target channel and formatter, respectively, via the LoggingRegistry. + /// The "channel" and "formatter" properties are set-only. + /// + /// Unsupported properties are passed to the attached Channel. + + void open(); + /// Opens the attached channel. + + void close(); + /// Closes the attached channel. + +protected: + ~FormattingChannel(); + +private: + Formatter* _pFormatter; + Channel* _pChannel; +}; + + +} // namespace Poco + + +#endif // Foundation_FormattingChannel_INCLUDED |