1#ifndef DCHAIN_DCSIMPLESELECTOR_H
2#define DCHAIN_DCSIMPLESELECTOR_H
73 template<
class LHS,
class RHS,
class Arg>
86 return m_lhs.select(iArg) && m_rhs.select(iArg);
98 template<
class LHS,
class RHS,
class Arg>
110 return m_lhs.select(iArg) || m_rhs.select(iArg);
128 m_selector(iSelector) {}
133 return m_selector( iArg);
221 template<
class LHS,
class RHS>
231 template<
class LHS,
class RHS>
241 template<
class LHS,
class RHS>
258 template<
class LHS,
class RHS>
267 template<
class LHS,
class RHS>
276 template<
class LHS,
class RHS>
292 return m_method.select(iArg);
319 m_method( iMethod.clone() ) {}
326 if( 0 != m_method ) {
327 return m_method->select(iArg);
333 if( 0 != iCopy.m_method) {
334 m_method = iCopy.m_method->clone();
348 m_method = iOther.m_method;
349 iOther.m_method = temp;
const DCSimpleSelector< Arg > & operator=(const DCSimpleSelector< Arg > &iRHS)
virtual bool operator()(Arg &iArg)
DCSimpleSelector(const DChain::MethodBase< Arg > &iMethod)
DCSimpleSelector(const DCSimpleSelector< Arg > &iCopy)
virtual ~DCSimpleSelector()
DCSimpleSelector(const T &iMethod)
MethodAdapter(const MethodT &iMethod)
MethodBase< Arg > * clone() const
MethodAnd(const LHS &iLHS, const RHS &iRHS)
MethodBase< Arg > * clone() const
virtual bool select(Arg &)=0
virtual MethodBase * clone() const =0
MethodHolder(DCSelectionFunction< Arg > &iSelector)
MethodBase< Arg > * clone() const
MethodOr(const LHS &iLHS, const RHS &iRHS)
MethodBase< Arg > * clone() const
Method::arg_type arg_type
UseHolder< T,(sizeof(testForHolder((T *) 0))==sizeof(PassTest))>::Method Method
ChooseArg< T1, T2,(sizeof(PickArgTester< T1, T2 >::inheritsFrom((T1 *) 0))==sizeof(PassTest))>::arg_type arg_type
static PassTest inheritsFrom(const T2 *)
static FailTest inheritsFrom(...)
Method::arg_type arg_type
MethodHolder< typename T::arg_type > Method
OrOpReturn< LHS, RHS >::Return operator||(LHS &iLHS, RHS &iRHS)
PassTest testForHolder(const DCSelectionFunction< Arg > *)
AndOpReturn< LHS, RHS >::Return operator&&(LHS &iLHS, RHS &iRHS)
MethodAnd< typename MethodType< LHS >::Method, typename MethodType< RHS >::Method, typename PickArg< typename MethodType< LHS >::arg_type, typename MethodType< RHS >::arg_type >::arg_type > Return
MethodOr< typename MethodType< LHS >::Method, typename MethodType< RHS >::Method, typename PickArg< typename MethodType< LHS >::arg_type, typename MethodType< RHS >::arg_type >::arg_type > Return
static PassTest inheritsFrom(const T2 *)
static FailTest inheritsFrom(...)