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/ActiveDispatcher.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/ActiveDispatcher.h')
-rw-r--r-- | contrib/libs/poco/Foundation/include/Poco/ActiveDispatcher.h | 230 |
1 files changed, 115 insertions, 115 deletions
diff --git a/contrib/libs/poco/Foundation/include/Poco/ActiveDispatcher.h b/contrib/libs/poco/Foundation/include/Poco/ActiveDispatcher.h index 7550a2deae..71b4b70fc2 100644 --- a/contrib/libs/poco/Foundation/include/Poco/ActiveDispatcher.h +++ b/contrib/libs/poco/Foundation/include/Poco/ActiveDispatcher.h @@ -1,116 +1,116 @@ -// -// ActiveDispatcher.h -// -// Library: Foundation -// Package: Threading -// Module: ActiveObjects -// -// Definition of the ActiveDispatcher class. -// -// Copyright (c) 2006-2007, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#ifndef Foundation_ActiveDispatcher_INCLUDED -#define Foundation_ActiveDispatcher_INCLUDED - - -#include "Poco/Foundation.h" -#include "Poco/Runnable.h" -#include "Poco/Thread.h" -#include "Poco/ActiveStarter.h" -#include "Poco/ActiveRunnable.h" -#include "Poco/NotificationQueue.h" - - -namespace Poco { - - -class Foundation_API ActiveDispatcher: protected Runnable - /// This class is used to implement an active object - /// with strictly serialized method execution. - /// - /// An active object, which is an ordinary object - /// containing ActiveMethod members, executes all - /// active methods in their own thread. - /// This behavior does not fit the "classic" - /// definition of an active object, which serializes - /// the execution of active methods (in other words, - /// only one active method can be running at any given - /// time). - /// - /// Using this class as a base class, the serializing - /// behavior for active objects can be implemented. +// +// ActiveDispatcher.h +// +// Library: Foundation +// Package: Threading +// Module: ActiveObjects +// +// Definition of the ActiveDispatcher class. +// +// Copyright (c) 2006-2007, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef Foundation_ActiveDispatcher_INCLUDED +#define Foundation_ActiveDispatcher_INCLUDED + + +#include "Poco/Foundation.h" +#include "Poco/Runnable.h" +#include "Poco/Thread.h" +#include "Poco/ActiveStarter.h" +#include "Poco/ActiveRunnable.h" +#include "Poco/NotificationQueue.h" + + +namespace Poco { + + +class Foundation_API ActiveDispatcher: protected Runnable + /// This class is used to implement an active object + /// with strictly serialized method execution. /// - /// The following example shows how this is done: - /// - /// class ActiveObject: public ActiveDispatcher - /// { - /// public: - /// ActiveObject(): - /// exampleActiveMethod(this, &ActiveObject::exampleActiveMethodImpl) - /// { - /// } - /// - /// ActiveMethod<std::string, std::string, ActiveObject, ActiveStarter<ActiveDispatcher> > exampleActiveMethod; - /// - /// protected: - /// std::string exampleActiveMethodImpl(const std::string& arg) - /// { - /// ... - /// } - /// }; - /// - /// The only things different from the example in - /// ActiveMethod is that the ActiveObject in this case - /// inherits from ActiveDispatcher, and that the ActiveMethod - /// template for exampleActiveMethod has an additional parameter, - /// specifying the specialized ActiveStarter for ActiveDispatcher. -{ -public: - ActiveDispatcher(); - /// Creates the ActiveDispatcher. - - ActiveDispatcher(Thread::Priority prio); - /// Creates the ActiveDispatcher and sets - /// the priority of its thread. - - virtual ~ActiveDispatcher(); - /// Destroys the ActiveDispatcher. - - void start(ActiveRunnableBase::Ptr pRunnable); - /// Adds the Runnable to the dispatch queue. - - void cancel(); - /// Cancels all queued methods. - -protected: - void run(); - void stop(); - -private: - Thread _thread; - NotificationQueue _queue; -}; - - -template <> -class ActiveStarter<ActiveDispatcher> - /// A specialization of ActiveStarter - /// for ActiveDispatcher. -{ -public: - static void start(ActiveDispatcher* pOwner, ActiveRunnableBase::Ptr pRunnable) - { - pOwner->start(pRunnable); - } -}; - - -} // namespace Poco - - -#endif // Foundation_ActiveDispatcher_INCLUDED + /// An active object, which is an ordinary object + /// containing ActiveMethod members, executes all + /// active methods in their own thread. + /// This behavior does not fit the "classic" + /// definition of an active object, which serializes + /// the execution of active methods (in other words, + /// only one active method can be running at any given + /// time). + /// + /// Using this class as a base class, the serializing + /// behavior for active objects can be implemented. + /// + /// The following example shows how this is done: + /// + /// class ActiveObject: public ActiveDispatcher + /// { + /// public: + /// ActiveObject(): + /// exampleActiveMethod(this, &ActiveObject::exampleActiveMethodImpl) + /// { + /// } + /// + /// ActiveMethod<std::string, std::string, ActiveObject, ActiveStarter<ActiveDispatcher> > exampleActiveMethod; + /// + /// protected: + /// std::string exampleActiveMethodImpl(const std::string& arg) + /// { + /// ... + /// } + /// }; + /// + /// The only things different from the example in + /// ActiveMethod is that the ActiveObject in this case + /// inherits from ActiveDispatcher, and that the ActiveMethod + /// template for exampleActiveMethod has an additional parameter, + /// specifying the specialized ActiveStarter for ActiveDispatcher. +{ +public: + ActiveDispatcher(); + /// Creates the ActiveDispatcher. + + ActiveDispatcher(Thread::Priority prio); + /// Creates the ActiveDispatcher and sets + /// the priority of its thread. + + virtual ~ActiveDispatcher(); + /// Destroys the ActiveDispatcher. + + void start(ActiveRunnableBase::Ptr pRunnable); + /// Adds the Runnable to the dispatch queue. + + void cancel(); + /// Cancels all queued methods. + +protected: + void run(); + void stop(); + +private: + Thread _thread; + NotificationQueue _queue; +}; + + +template <> +class ActiveStarter<ActiveDispatcher> + /// A specialization of ActiveStarter + /// for ActiveDispatcher. +{ +public: + static void start(ActiveDispatcher* pOwner, ActiveRunnableBase::Ptr pRunnable) + { + pOwner->start(pRunnable); + } +}; + + +} // namespace Poco + + +#endif // Foundation_ActiveDispatcher_INCLUDED |