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/AsyncChannel.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/AsyncChannel.h')
-rw-r--r-- | contrib/libs/poco/Foundation/include/Poco/AsyncChannel.h | 200 |
1 files changed, 100 insertions, 100 deletions
diff --git a/contrib/libs/poco/Foundation/include/Poco/AsyncChannel.h b/contrib/libs/poco/Foundation/include/Poco/AsyncChannel.h index 9756edc3eb..0a91eaf76a 100644 --- a/contrib/libs/poco/Foundation/include/Poco/AsyncChannel.h +++ b/contrib/libs/poco/Foundation/include/Poco/AsyncChannel.h @@ -1,100 +1,100 @@ -// -// AsyncChannel.h -// -// Library: Foundation -// Package: Logging -// Module: AsyncChannel -// -// Definition of the AsyncChannel class. -// -// Copyright (c) 2004-2007, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#ifndef Foundation_AsyncChannel_INCLUDED -#define Foundation_AsyncChannel_INCLUDED - - -#include "Poco/Foundation.h" -#include "Poco/Channel.h" -#include "Poco/Thread.h" -#include "Poco/Mutex.h" -#include "Poco/Runnable.h" -#include "Poco/NotificationQueue.h" - - -namespace Poco { - - -class Foundation_API AsyncChannel: public Channel, public Runnable - /// A channel uses a separate thread for logging. - /// - /// Using this channel can help to improve the performance of - /// applications that produce huge amounts of log messages or - /// that write log messages to multiple channels simultaneously. - /// - /// All log messages are put into a queue and this queue is - /// then processed by a separate thread. -{ -public: - AsyncChannel(Channel* pChannel = 0, Thread::Priority prio = Thread::PRIO_NORMAL); - /// Creates the AsyncChannel and connects it to - /// the given channel. - - void setChannel(Channel* pChannel); - /// Connects the AsyncChannel to the given target channel. - /// All messages will be forwarded to this channel. - - Channel* getChannel() const; - /// Returns the target channel. - - void open(); - /// Opens the channel and creates the - /// background logging thread. - - void close(); - /// Closes the channel and stops the background - /// logging thread. - - void log(const Message& msg); - /// Queues the message for processing by the - /// background thread. - - void setProperty(const std::string& name, const std::string& value); - /// Sets or changes a configuration property. - /// - /// The "channel" property allows setting the target - /// channel via the LoggingRegistry. - /// The "channel" property is set-only. - /// - /// The "priority" property allows setting the thread - /// priority. The following values are supported: - /// * lowest - /// * low - /// * normal (default) - /// * high - /// * highest - /// - /// The "priority" property is set-only. - -protected: - ~AsyncChannel(); - void run(); - void setPriority(const std::string& value); - -private: - Channel* _pChannel; - Thread _thread; - FastMutex _threadMutex; - FastMutex _channelMutex; - NotificationQueue _queue; -}; - - -} // namespace Poco - - -#endif // Foundation_AsyncChannel_INCLUDED +// +// AsyncChannel.h +// +// Library: Foundation +// Package: Logging +// Module: AsyncChannel +// +// Definition of the AsyncChannel class. +// +// Copyright (c) 2004-2007, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef Foundation_AsyncChannel_INCLUDED +#define Foundation_AsyncChannel_INCLUDED + + +#include "Poco/Foundation.h" +#include "Poco/Channel.h" +#include "Poco/Thread.h" +#include "Poco/Mutex.h" +#include "Poco/Runnable.h" +#include "Poco/NotificationQueue.h" + + +namespace Poco { + + +class Foundation_API AsyncChannel: public Channel, public Runnable + /// A channel uses a separate thread for logging. + /// + /// Using this channel can help to improve the performance of + /// applications that produce huge amounts of log messages or + /// that write log messages to multiple channels simultaneously. + /// + /// All log messages are put into a queue and this queue is + /// then processed by a separate thread. +{ +public: + AsyncChannel(Channel* pChannel = 0, Thread::Priority prio = Thread::PRIO_NORMAL); + /// Creates the AsyncChannel and connects it to + /// the given channel. + + void setChannel(Channel* pChannel); + /// Connects the AsyncChannel to the given target channel. + /// All messages will be forwarded to this channel. + + Channel* getChannel() const; + /// Returns the target channel. + + void open(); + /// Opens the channel and creates the + /// background logging thread. + + void close(); + /// Closes the channel and stops the background + /// logging thread. + + void log(const Message& msg); + /// Queues the message for processing by the + /// background thread. + + void setProperty(const std::string& name, const std::string& value); + /// Sets or changes a configuration property. + /// + /// The "channel" property allows setting the target + /// channel via the LoggingRegistry. + /// The "channel" property is set-only. + /// + /// The "priority" property allows setting the thread + /// priority. The following values are supported: + /// * lowest + /// * low + /// * normal (default) + /// * high + /// * highest + /// + /// The "priority" property is set-only. + +protected: + ~AsyncChannel(); + void run(); + void setPriority(const std::string& value); + +private: + Channel* _pChannel; + Thread _thread; + FastMutex _threadMutex; + FastMutex _channelMutex; + NotificationQueue _queue; +}; + + +} // namespace Poco + + +#endif // Foundation_AsyncChannel_INCLUDED |