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/DefaultStrategy.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/DefaultStrategy.h')
-rw-r--r-- | contrib/libs/poco/Foundation/include/Poco/DefaultStrategy.h | 452 |
1 files changed, 226 insertions, 226 deletions
diff --git a/contrib/libs/poco/Foundation/include/Poco/DefaultStrategy.h b/contrib/libs/poco/Foundation/include/Poco/DefaultStrategy.h index 6a095114eb..0b33e50173 100644 --- a/contrib/libs/poco/Foundation/include/Poco/DefaultStrategy.h +++ b/contrib/libs/poco/Foundation/include/Poco/DefaultStrategy.h @@ -1,226 +1,226 @@ -// -// DefaultStrategy.h -// -// Library: Foundation -// Package: Events -// Module: DefaultStrategy -// -// Implementation of the DefaultStrategy template. -// -// Copyright (c) 2006-2011, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#ifndef Foundation_DefaultStrategy_INCLUDED -#define Foundation_DefaultStrategy_INCLUDED - - -#include "Poco/NotificationStrategy.h" -#include "Poco/SharedPtr.h" -#include <vector> - - -namespace Poco { - - -template <class TArgs, class TDelegate> -class DefaultStrategy: public NotificationStrategy<TArgs, TDelegate> - /// Default notification strategy. - /// - /// Internally, a std::vector<> is used to store - /// delegate objects. Delegates are invoked in the - /// order in which they have been registered. -{ -public: - typedef TDelegate* DelegateHandle; - typedef SharedPtr<TDelegate> DelegatePtr; - typedef std::vector<DelegatePtr> Delegates; - typedef typename Delegates::iterator Iterator; - -public: - DefaultStrategy() - { - } - - DefaultStrategy(const DefaultStrategy& s): - _delegates(s._delegates) - { - } - - ~DefaultStrategy() - { - } - - void notify(const void* sender, TArgs& arguments) - { - for (Iterator it = _delegates.begin(); it != _delegates.end(); ++it) - { - (*it)->notify(sender, arguments); - } - } - - DelegateHandle add(const TDelegate& delegate) - { - DelegatePtr pDelegate(static_cast<TDelegate*>(delegate.clone())); - _delegates.push_back(pDelegate); - return pDelegate.get(); - } - - void remove(const TDelegate& delegate) - { - for (Iterator it = _delegates.begin(); it != _delegates.end(); ++it) - { - if (delegate.equals(**it)) - { - (*it)->disable(); - _delegates.erase(it); - return; - } - } - } - - void remove(DelegateHandle delegateHandle) - { - for (Iterator it = _delegates.begin(); it != _delegates.end(); ++it) - { - if (*it == delegateHandle) - { - (*it)->disable(); - _delegates.erase(it); - return; - } - } - } - - DefaultStrategy& operator = (const DefaultStrategy& s) - { - if (this != &s) - { - _delegates = s._delegates; - } - return *this; - } - - void clear() - { - for (Iterator it = _delegates.begin(); it != _delegates.end(); ++it) - { - (*it)->disable(); - } - _delegates.clear(); - } - - bool empty() const - { - return _delegates.empty(); - } - -protected: - Delegates _delegates; -}; - - -template <class TDelegate> -class DefaultStrategy<void,TDelegate>: public NotificationStrategy<void, TDelegate> - /// Default notification strategy. - /// - /// Internally, a std::vector<> is used to store - /// delegate objects. Delegates are invoked in the - /// order in which they have been registered. -{ -public: - typedef TDelegate* DelegateHandle; - typedef SharedPtr<TDelegate> DelegatePtr; - typedef std::vector<DelegatePtr> Delegates; - typedef typename Delegates::iterator Iterator; - -public: - DefaultStrategy() - { - } - - DefaultStrategy(const DefaultStrategy& s): - _delegates(s._delegates) - { - } - - ~DefaultStrategy() - { - } - - void notify(const void* sender) - { - for (Iterator it = _delegates.begin(); it != _delegates.end(); ++it) - { - (*it)->notify(sender); - } - } - - DelegateHandle add(const TDelegate& delegate) - { - DelegatePtr pDelegate(static_cast<TDelegate*>(delegate.clone())); - _delegates.push_back(pDelegate); - return pDelegate.get(); - } - - void remove(const TDelegate& delegate) - { - for (Iterator it = _delegates.begin(); it != _delegates.end(); ++it) - { - if (delegate.equals(**it)) - { - (*it)->disable(); - _delegates.erase(it); - return; - } - } - } - - void remove(DelegateHandle delegateHandle) - { - for (Iterator it = _delegates.begin(); it != _delegates.end(); ++it) - { - if (*it == delegateHandle) - { - (*it)->disable(); - _delegates.erase(it); - return; - } - } - } - - DefaultStrategy& operator = (const DefaultStrategy& s) - { - if (this != &s) - { - _delegates = s._delegates; - } - return *this; - } - - void clear() - { - for (Iterator it = _delegates.begin(); it != _delegates.end(); ++it) - { - (*it)->disable(); - } - _delegates.clear(); - } - - bool empty() const - { - return _delegates.empty(); - } - -protected: - Delegates _delegates; -}; - - -} // namespace Poco - - -#endif // Foundation_DefaultStrategy_INCLUDED +// +// DefaultStrategy.h +// +// Library: Foundation +// Package: Events +// Module: DefaultStrategy +// +// Implementation of the DefaultStrategy template. +// +// Copyright (c) 2006-2011, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef Foundation_DefaultStrategy_INCLUDED +#define Foundation_DefaultStrategy_INCLUDED + + +#include "Poco/NotificationStrategy.h" +#include "Poco/SharedPtr.h" +#include <vector> + + +namespace Poco { + + +template <class TArgs, class TDelegate> +class DefaultStrategy: public NotificationStrategy<TArgs, TDelegate> + /// Default notification strategy. + /// + /// Internally, a std::vector<> is used to store + /// delegate objects. Delegates are invoked in the + /// order in which they have been registered. +{ +public: + typedef TDelegate* DelegateHandle; + typedef SharedPtr<TDelegate> DelegatePtr; + typedef std::vector<DelegatePtr> Delegates; + typedef typename Delegates::iterator Iterator; + +public: + DefaultStrategy() + { + } + + DefaultStrategy(const DefaultStrategy& s): + _delegates(s._delegates) + { + } + + ~DefaultStrategy() + { + } + + void notify(const void* sender, TArgs& arguments) + { + for (Iterator it = _delegates.begin(); it != _delegates.end(); ++it) + { + (*it)->notify(sender, arguments); + } + } + + DelegateHandle add(const TDelegate& delegate) + { + DelegatePtr pDelegate(static_cast<TDelegate*>(delegate.clone())); + _delegates.push_back(pDelegate); + return pDelegate.get(); + } + + void remove(const TDelegate& delegate) + { + for (Iterator it = _delegates.begin(); it != _delegates.end(); ++it) + { + if (delegate.equals(**it)) + { + (*it)->disable(); + _delegates.erase(it); + return; + } + } + } + + void remove(DelegateHandle delegateHandle) + { + for (Iterator it = _delegates.begin(); it != _delegates.end(); ++it) + { + if (*it == delegateHandle) + { + (*it)->disable(); + _delegates.erase(it); + return; + } + } + } + + DefaultStrategy& operator = (const DefaultStrategy& s) + { + if (this != &s) + { + _delegates = s._delegates; + } + return *this; + } + + void clear() + { + for (Iterator it = _delegates.begin(); it != _delegates.end(); ++it) + { + (*it)->disable(); + } + _delegates.clear(); + } + + bool empty() const + { + return _delegates.empty(); + } + +protected: + Delegates _delegates; +}; + + +template <class TDelegate> +class DefaultStrategy<void,TDelegate>: public NotificationStrategy<void, TDelegate> + /// Default notification strategy. + /// + /// Internally, a std::vector<> is used to store + /// delegate objects. Delegates are invoked in the + /// order in which they have been registered. +{ +public: + typedef TDelegate* DelegateHandle; + typedef SharedPtr<TDelegate> DelegatePtr; + typedef std::vector<DelegatePtr> Delegates; + typedef typename Delegates::iterator Iterator; + +public: + DefaultStrategy() + { + } + + DefaultStrategy(const DefaultStrategy& s): + _delegates(s._delegates) + { + } + + ~DefaultStrategy() + { + } + + void notify(const void* sender) + { + for (Iterator it = _delegates.begin(); it != _delegates.end(); ++it) + { + (*it)->notify(sender); + } + } + + DelegateHandle add(const TDelegate& delegate) + { + DelegatePtr pDelegate(static_cast<TDelegate*>(delegate.clone())); + _delegates.push_back(pDelegate); + return pDelegate.get(); + } + + void remove(const TDelegate& delegate) + { + for (Iterator it = _delegates.begin(); it != _delegates.end(); ++it) + { + if (delegate.equals(**it)) + { + (*it)->disable(); + _delegates.erase(it); + return; + } + } + } + + void remove(DelegateHandle delegateHandle) + { + for (Iterator it = _delegates.begin(); it != _delegates.end(); ++it) + { + if (*it == delegateHandle) + { + (*it)->disable(); + _delegates.erase(it); + return; + } + } + } + + DefaultStrategy& operator = (const DefaultStrategy& s) + { + if (this != &s) + { + _delegates = s._delegates; + } + return *this; + } + + void clear() + { + for (Iterator it = _delegates.begin(); it != _delegates.end(); ++it) + { + (*it)->disable(); + } + _delegates.clear(); + } + + bool empty() const + { + return _delegates.empty(); + } + +protected: + Delegates _delegates; +}; + + +} // namespace Poco + + +#endif // Foundation_DefaultStrategy_INCLUDED |