Xmipp  v3.23.11-Nereus
Classes | Public Types | Public Member Functions | Friends | List of all members
testing::Action< R(Args...)> Class Template Reference

#include <gmock-actions.h>

Public Types

typedef internal::Function< F >::Result Result
 
typedef internal::Function< F >::ArgumentTuple ArgumentTuple
 

Public Member Functions

 Action ()
 
template<typename G , typename = typename std::enable_if<internal::disjunction< IsCompatibleFunctor<G>, std::is_constructible<std::function<Result()>, G>>::value>::type>
 Action (G &&fun)
 
 Action (ActionInterface< F > *impl)
 
template<typename Func >
 Action (const Action< Func > &action)
 
bool IsDoDefault () const
 
Result Perform (ArgumentTuple args) const
 
 operator OnceAction< F > () const
 

Friends

template<typename G >
class Action
 

Detailed Description

template<typename R, typename... Args>
class testing::Action< R(Args...)>

Definition at line 729 of file gmock-actions.h.

Member Typedef Documentation

◆ ArgumentTuple

template<typename R , typename... Args>
typedef internal::Function<F>::ArgumentTuple testing::Action< R(Args...)>::ArgumentTuple

Definition at line 751 of file gmock-actions.h.

◆ Result

template<typename R , typename... Args>
typedef internal::Function<F>::Result testing::Action< R(Args...)>::Result

Definition at line 750 of file gmock-actions.h.

Constructor & Destructor Documentation

◆ Action() [1/4]

template<typename R , typename... Args>
testing::Action< R(Args...)>::Action ( )
inline

Definition at line 755 of file gmock-actions.h.

755 {}

◆ Action() [2/4]

template<typename R , typename... Args>
template<typename G , typename = typename std::enable_if<internal::disjunction< IsCompatibleFunctor<G>, std::is_constructible<std::function<Result()>, G>>::value>::type>
testing::Action< R(Args...)>::Action ( G &&  fun)
inline

Definition at line 765 of file gmock-actions.h.

765  { // NOLINT
766  Init(::std::forward<G>(fun), IsCompatibleFunctor<G>());
767  }

◆ Action() [3/4]

template<typename R , typename... Args>
testing::Action< R(Args...)>::Action ( ActionInterface< F > *  impl)
inlineexplicit

Definition at line 770 of file gmock-actions.h.

771  : fun_(ActionAdapter{::std::shared_ptr<ActionInterface<F>>(impl)}) {}

◆ Action() [4/4]

template<typename R , typename... Args>
template<typename Func >
testing::Action< R(Args...)>::Action ( const Action< Func > &  action)
inline

Definition at line 777 of file gmock-actions.h.

778  : fun_(action.fun_) {}

Member Function Documentation

◆ IsDoDefault()

template<typename R , typename... Args>
bool testing::Action< R(Args...)>::IsDoDefault ( ) const
inline

Definition at line 781 of file gmock-actions.h.

781 { return fun_ == nullptr; }

◆ operator OnceAction< F >()

template<typename R , typename... Args>
testing::Action< R(Args...)>::operator OnceAction< F > ( ) const
inline

Definition at line 798 of file gmock-actions.h.

798  { // NOLINT
799  // Return a OnceAction-compatible callable that calls Perform with the
800  // arguments it is provided. We could instead just return fun_, but then
801  // we'd need to handle the IsDoDefault() case separately.
802  struct OA {
803  Action<F> action;
804 
805  R operator()(Args... args) && {
806  return action.Perform(
807  std::forward_as_tuple(std::forward<Args>(args)...));
808  }
809  };
810 
811  return OA{*this};
812  }

◆ Perform()

template<typename R , typename... Args>
Result testing::Action< R(Args...)>::Perform ( ArgumentTuple  args) const
inline

Definition at line 789 of file gmock-actions.h.

789  {
790  if (IsDoDefault()) {
791  internal::IllegalDoDefault(__FILE__, __LINE__);
792  }
793  return internal::Apply(fun_, ::std::move(args));
794  }
GTEST_API_ void IllegalDoDefault(const char *file, int line)
auto Apply(F &&f, Tuple &&args) -> decltype(ApplyImpl(std::forward< F >(f), std::forward< Tuple >(args), MakeIndexSequence< std::tuple_size< typename std::remove_reference< Tuple >::type >::value >()))

Friends And Related Function Documentation

◆ Action

template<typename R , typename... Args>
template<typename G >
friend class Action
friend

Definition at line 816 of file gmock-actions.h.


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