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/AccessExpireStrategy.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/AccessExpireStrategy.h')
-rw-r--r-- | contrib/libs/poco/Foundation/include/Poco/AccessExpireStrategy.h | 148 |
1 files changed, 74 insertions, 74 deletions
diff --git a/contrib/libs/poco/Foundation/include/Poco/AccessExpireStrategy.h b/contrib/libs/poco/Foundation/include/Poco/AccessExpireStrategy.h index 3bfa45c21f..6a3b926adf 100644 --- a/contrib/libs/poco/Foundation/include/Poco/AccessExpireStrategy.h +++ b/contrib/libs/poco/Foundation/include/Poco/AccessExpireStrategy.h @@ -1,74 +1,74 @@ -// -// AccessExpireStrategy.h -// -// Library: Foundation -// Package: Cache -// Module: AccessExpireStrategy -// -// Definition of the AccessExpireStrategy class. -// -// Copyright (c) 2006, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#ifndef Foundation_AccessExpireStrategy_INCLUDED -#define Foundation_AccessExpireStrategy_INCLUDED - - -#include "Poco/KeyValueArgs.h" -#include "Poco/ValidArgs.h" -#include "Poco/ExpireStrategy.h" -#include "Poco/Bugcheck.h" -#include "Poco/Timestamp.h" -#include "Poco/EventArgs.h" -#include <set> -#include <map> - - -namespace Poco { - - -template < - class TKey, - class TValue -> -class AccessExpireStrategy: public ExpireStrategy<TKey, TValue> - /// An AccessExpireStrategy implements time and access based expiration of cache entries -{ -public: - AccessExpireStrategy(Timestamp::TimeDiff expireTimeInMilliSec): ExpireStrategy<TKey, TValue>(expireTimeInMilliSec) - /// Create an expire strategy. Note that the smallest allowed caching time is 25ms. - /// Anything lower than that is not useful with current operating systems. - { - } - - ~AccessExpireStrategy() - { - } - - void onGet(const void*, const TKey& key) - { - // get triggers an update to the expiration time - typename ExpireStrategy<TKey, TValue>::Iterator it = this->_keys.find(key); - if (it != this->_keys.end()) - { - if (!it->second->first.isElapsed(this->_expireTime)) // don't extend if already expired - { - this->_keyIndex.erase(it->second); - Timestamp now; - typename ExpireStrategy<TKey, TValue>::IndexIterator itIdx = - this->_keyIndex.insert(typename ExpireStrategy<TKey, TValue>::TimeIndex::value_type(now, key)); - it->second = itIdx; - } - } - } -}; - - -} // namespace Poco - - -#endif // Foundation_AccessExpireStrategy_INCLUDED +// +// AccessExpireStrategy.h +// +// Library: Foundation +// Package: Cache +// Module: AccessExpireStrategy +// +// Definition of the AccessExpireStrategy class. +// +// Copyright (c) 2006, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef Foundation_AccessExpireStrategy_INCLUDED +#define Foundation_AccessExpireStrategy_INCLUDED + + +#include "Poco/KeyValueArgs.h" +#include "Poco/ValidArgs.h" +#include "Poco/ExpireStrategy.h" +#include "Poco/Bugcheck.h" +#include "Poco/Timestamp.h" +#include "Poco/EventArgs.h" +#include <set> +#include <map> + + +namespace Poco { + + +template < + class TKey, + class TValue +> +class AccessExpireStrategy: public ExpireStrategy<TKey, TValue> + /// An AccessExpireStrategy implements time and access based expiration of cache entries +{ +public: + AccessExpireStrategy(Timestamp::TimeDiff expireTimeInMilliSec): ExpireStrategy<TKey, TValue>(expireTimeInMilliSec) + /// Create an expire strategy. Note that the smallest allowed caching time is 25ms. + /// Anything lower than that is not useful with current operating systems. + { + } + + ~AccessExpireStrategy() + { + } + + void onGet(const void*, const TKey& key) + { + // get triggers an update to the expiration time + typename ExpireStrategy<TKey, TValue>::Iterator it = this->_keys.find(key); + if (it != this->_keys.end()) + { + if (!it->second->first.isElapsed(this->_expireTime)) // don't extend if already expired + { + this->_keyIndex.erase(it->second); + Timestamp now; + typename ExpireStrategy<TKey, TValue>::IndexIterator itIdx = + this->_keyIndex.insert(typename ExpireStrategy<TKey, TValue>::TimeIndex::value_type(now, key)); + it->second = itIdx; + } + } + } +}; + + +} // namespace Poco + + +#endif // Foundation_AccessExpireStrategy_INCLUDED |