aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/poco/Foundation/include/Poco/FormattingChannel.h
diff options
context:
space:
mode:
authorDevtools Arcadia <arcadia-devtools@yandex-team.ru>2022-02-07 18:08:42 +0300
committerDevtools Arcadia <arcadia-devtools@mous.vla.yp-c.yandex.net>2022-02-07 18:08:42 +0300
commit1110808a9d39d4b808aef724c861a2e1a38d2a69 (patch)
treee26c9fed0de5d9873cce7e00bc214573dc2195b7 /contrib/libs/poco/Foundation/include/Poco/FormattingChannel.h
downloadydb-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.h96
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