proxygen
folly::detail::SynchronizedLocker< Synchronized, LockFunc, TryLockFunc, Args > Class Template Reference

#include <Synchronized.h>

Public Types

using LockedPtr = invoke_result_t< LockFunc &, Synchronized &, const Args &... >
 

Public Member Functions

template<typename LockFuncType , typename TryLockFuncType , typename... As>
 SynchronizedLocker (Synchronized &sync, LockFuncType &&lockFunc, TryLockFuncType tryLockFunc, As &&...as)
 
auto lock () const
 
auto tryLock () const
 

Private Attributes

Synchronizedsynchronized
 
LockFunc lockFunc_
 
TryLockFunc tryLockFunc_
 
std::tuple< Args... > args_
 

Detailed Description

template<typename Synchronized, typename LockFunc, typename TryLockFunc, typename... Args>
class folly::detail::SynchronizedLocker< Synchronized, LockFunc, TryLockFunc, Args >

Definition at line 802 of file Synchronized.h.

Member Typedef Documentation

template<typename Synchronized , typename LockFunc , typename TryLockFunc , typename... Args>
using folly::detail::SynchronizedLocker< Synchronized, LockFunc, TryLockFunc, Args >::LockedPtr = invoke_result_t<LockFunc&, Synchronized&, const Args&...>

Definition at line 804 of file Synchronized.h.

Constructor & Destructor Documentation

template<typename Synchronized , typename LockFunc , typename TryLockFunc , typename... Args>
template<typename LockFuncType , typename TryLockFuncType , typename... As>
folly::detail::SynchronizedLocker< Synchronized, LockFunc, TryLockFunc, Args >::SynchronizedLocker ( Synchronized sync,
LockFuncType &&  lockFunc,
TryLockFuncType  tryLockFunc,
As &&...  as 
)
inline

Definition at line 807 of file Synchronized.h.

References folly::gen::as().

812  : synchronized{sync},
813  lockFunc_{std::forward<LockFuncType>(lockFunc)},
814  tryLockFunc_{std::forward<TryLockFuncType>(tryLockFunc)},
815  args_{std::forward<As>(as)...} {}
std::tuple< Args... > args_
Definition: Synchronized.h:829
Collect as()
Definition: Base.h:811

Member Function Documentation

template<typename Synchronized , typename LockFunc , typename TryLockFunc , typename... Args>
auto folly::detail::SynchronizedLocker< Synchronized, LockFunc, TryLockFunc, Args >::lock ( ) const
inline

Definition at line 817 of file Synchronized.h.

References folly::apply(), and testing::Args().

817  {
818  auto args = std::tuple<const Args&...>{args_};
819  return apply(lockFunc_, std::tuple_cat(std::tie(synchronized), args));
820  }
internal::ArgsMatcher< InnerMatcher > Args(const InnerMatcher &matcher)
std::tuple< Args... > args_
Definition: Synchronized.h:829
decltype(auto) constexpr apply(F &&func, Tuple &&tuple)
Definition: ApplyTuple.h:87
template<typename Synchronized , typename LockFunc , typename TryLockFunc , typename... Args>
auto folly::detail::SynchronizedLocker< Synchronized, LockFunc, TryLockFunc, Args >::tryLock ( ) const
inline

Definition at line 821 of file Synchronized.h.

821  {
822  return tryLockFunc_(synchronized);
823  }

Member Data Documentation

template<typename Synchronized , typename LockFunc , typename TryLockFunc , typename... Args>
std::tuple<Args...> folly::detail::SynchronizedLocker< Synchronized, LockFunc, TryLockFunc, Args >::args_
private

Definition at line 829 of file Synchronized.h.

template<typename Synchronized , typename LockFunc , typename TryLockFunc , typename... Args>
LockFunc folly::detail::SynchronizedLocker< Synchronized, LockFunc, TryLockFunc, Args >::lockFunc_
private

Definition at line 827 of file Synchronized.h.

template<typename Synchronized , typename LockFunc , typename TryLockFunc , typename... Args>
Synchronized& folly::detail::SynchronizedLocker< Synchronized, LockFunc, TryLockFunc, Args >::synchronized
private

Definition at line 826 of file Synchronized.h.

template<typename Synchronized , typename LockFunc , typename TryLockFunc , typename... Args>
TryLockFunc folly::detail::SynchronizedLocker< Synchronized, LockFunc, TryLockFunc, Args >::tryLockFunc_
private

Definition at line 828 of file Synchronized.h.


The documentation for this class was generated from the following file: