Share via


make_choice Function

Constructs a choice messaging block from an optional Scheduler or ScheduleGroup and between two and ten input sources.

template<
   typename _Type1,
   typename _Type2
>
choice<std::tr1::tuple<_Type1, _Type2>> make_choice(
   Scheduler& _PScheduler,
   _Type1_Item1,
   _Type2_Item2
);
template<
   typename _Type1,
   typename _Type2,
   typename _Type3
>
choice<std::tr1::tuple<_Type1, _Type2, _Type3>> make_choice(
   Scheduler& _PScheduler,
   _Type1_Item1,
   _Type2_Item2,
   _Type3_Item3
);
template<
   typename _Type1,
   typename _Type2,
   typename _Type3,
   typename _Type4
>
choice<std::tr1::tuple<_Type1, _Type2, _Type3, _Type4>> make_choice(
   Scheduler& _PScheduler,
   _Type1_Item1,
   _Type2_Item2,
   _Type3_Item3,
   _Type4_Item4
);
template<
   typename _Type1,
   typename _Type2,
   typename _Type3,
   typename _Type4,
   typename _Type5
>
choice<std::tr1::tuple<_Type1, _Type2, _Type3, _Type4, _Type5>> make_choice(
   Scheduler& _PScheduler,
   _Type1_Item1,
   _Type2_Item2,
   _Type3_Item3,
   _Type4_Item4,
   _Type5_Item5
);
template<
   typename _Type1,
   typename _Type2,
   typename _Type3,
   typename _Type4,
   typename _Type5,
   typename _Type6
>
choice<std::tr1::tuple<_Type1, _Type2, _Type3, _Type4, _Type5, _Type6>> make_choice(
   Scheduler& _PScheduler,
   _Type1_Item1,
   _Type2_Item2,
   _Type3_Item3,
   _Type4_Item4,
   _Type5_Item5,
   _Type6_Item6
);
template<
   typename _Type1,
   typename _Type2,
   typename _Type3,
   typename _Type4,
   typename _Type5,
   typename _Type6,
   typename _Type7
>
choice<std::tr1::tuple<_Type1, _Type2, _Type3, _Type4, _Type5, _Type6, _Type7>> make_choice(
   Scheduler& _PScheduler,
   _Type1_Item1,
   _Type2_Item2,
   _Type3_Item3,
   _Type4_Item4,
   _Type5_Item5,
   _Type6_Item6,
   _Type7_Item7
);
template<
   typename _Type1,
   typename _Type2,
   typename _Type3,
   typename _Type4,
   typename _Type5,
   typename _Type6,
   typename _Type7,
   typename _Type8
>
choice<std::tr1::tuple<_Type1, _Type2, _Type3, _Type4, _Type5, _Type6, _Type7, _Type8>> make_choice(
   Scheduler& _PScheduler,
   _Type1_Item1,
   _Type2_Item2,
   _Type3_Item3,
   _Type4_Item4,
   _Type5_Item5,
   _Type6_Item6,
   _Type7_Item7,
   _Type8_Item8
);
template<
   typename _Type1,
   typename _Type2,
   typename _Type3,
   typename _Type4,
   typename _Type5,
   typename _Type6,
   typename _Type7,
   typename _Type8,
   typename _Type9
>
choice<std::tr1::tuple<_Type1, _Type2, _Type3, _Type4, _Type5, _Type6, _Type7, _Type8, _Type9>> make_choice(
   Scheduler& _PScheduler,
   _Type1_Item1,
   _Type2_Item2,
   _Type3_Item3,
   _Type4_Item4,
   _Type5_Item5,
   _Type6_Item6,
   _Type7_Item7,
   _Type8_Item8,
   _Type9_Item9
);
template<
   typename _Type1,
   typename _Type2,
   typename _Type3,
   typename _Type4,
   typename _Type5,
   typename _Type6,
   typename _Type7,
   typename _Type8,
   typename _Type9,
   typename _Type10
>
choice<std::tr1::tuple<_Type1, _Type2, _Type3, _Type4, _Type5, _Type6, _Type7, _Type8, _Type9, _Type10>> make_choice(
   Scheduler& _PScheduler,
   _Type1_Item1,
   _Type2_Item2,
   _Type3_Item3,
   _Type4_Item4,
   _Type5_Item5,
   _Type6_Item6,
   _Type7_Item7,
   _Type8_Item8,
   _Type9_Item9,
   _Type10_Item10
);
template<
   typename _Type1
>
choice<std::tr1::tuple<_Type1>> make_choice(
   ScheduleGroup& _PScheduleGroup,
   _Type1_Item1
);
template<
   typename _Type1,
   typename _Type2
>
choice<std::tr1::tuple<_Type1, _Type2>> make_choice(
   ScheduleGroup& _PScheduleGroup,
   _Type1_Item1,
   _Type2_Item2
);
template<
   typename _Type1,
   typename _Type2,
   typename _Type3
>
choice<std::tr1::tuple<_Type1, _Type2, _Type3>> make_choice(
   ScheduleGroup& _PScheduleGroup,
   _Type1_Item1,
   _Type2_Item2,
   _Type3_Item3
);
template<
   typename _Type1,
   typename _Type2,
   typename _Type3,
   typename _Type4
>
choice<std::tr1::tuple<_Type1, _Type2, _Type3, _Type4>> make_choice(
   ScheduleGroup& _PScheduleGroup,
   _Type1_Item1,
   _Type2_Item2,
   _Type3_Item3,
   _Type4_Item4
);
template<
   typename _Type1,
   typename _Type2,
   typename _Type3,
   typename _Type4,
   typename _Type5
>
choice<std::tr1::tuple<_Type1, _Type2, _Type3, _Type4, _Type5>> make_choice(
   ScheduleGroup& _PScheduleGroup,
   _Type1_Item1,
   _Type2_Item2,
   _Type3_Item3,
   _Type4_Item4,
   _Type5_Item5
);
template<
   typename _Type1,
   typename _Type2,
   typename _Type3,
   typename _Type4,
   typename _Type5,
   typename _Type6
>
choice<std::tr1::tuple<_Type1, _Type2, _Type3, _Type4, _Type5, _Type6>> make_choice(
   ScheduleGroup& _PScheduleGroup,
   _Type1_Item1,
   _Type2_Item2,
   _Type3_Item3,
   _Type4_Item4,
   _Type5_Item5,
   _Type6_Item6
);
template<
   typename _Type1,
   typename _Type2,
   typename _Type3,
   typename _Type4,
   typename _Type5,
   typename _Type6,
   typename _Type7
>
choice<std::tr1::tuple<_Type1, _Type2, _Type3, _Type4, _Type5, _Type6, _Type7>> make_choice(
   ScheduleGroup& _PScheduleGroup,
   _Type1_Item1,
   _Type2_Item2,
   _Type3_Item3,
   _Type4_Item4,
   _Type5_Item5,
   _Type6_Item6,
   _Type7_Item7
);
template<
   typename _Type1,
   typename _Type2,
   typename _Type3,
   typename _Type4,
   typename _Type5,
   typename _Type6,
   typename _Type7,
   typename _Type8
>
choice<std::tr1::tuple<_Type1, _Type2, _Type3, _Type4, _Type5, _Type6, _Type7, _Type8>> make_choice(
   ScheduleGroup& _PScheduleGroup,
   _Type1_Item1,
   _Type2_Item2,
   _Type3_Item3,
   _Type4_Item4,
   _Type5_Item5,
   _Type6_Item6,
   _Type7_Item7,
   _Type8_Item8
);
template<
   typename _Type1,
   typename _Type2,
   typename _Type3,
   typename _Type4,
   typename _Type5,
   typename _Type6,
   typename _Type7,
   typename _Type8,
   typename _Type9
>
choice<std::tr1::tuple<_Type1, _Type2, _Type3, _Type4, _Type5, _Type6, _Type7, _Type8, _Type9>> make_choice(
   ScheduleGroup& _PScheduleGroup,
   _Type1_Item1,
   _Type2_Item2,
   _Type3_Item3,
   _Type4_Item4,
   _Type5_Item5,
   _Type6_Item6,
   _Type7_Item7,
   _Type8_Item8,
   _Type9_Item9
);
template<
   typename _Type1,
   typename _Type2,
   typename _Type3,
   typename _Type4,
   typename _Type5,
   typename _Type6,
   typename _Type7,
   typename _Type8,
   typename _Type9,
   typename _Type10
>
choice<std::tr1::tuple<_Type1, _Type2, _Type3, _Type4, _Type5, _Type6, _Type7, _Type8, _Type9, _Type10>> make_choice(
   ScheduleGroup& _PScheduleGroup,
   _Type1_Item1,
   _Type2_Item2,
   _Type3_Item3,
   _Type4_Item4,
   _Type5_Item5,
   _Type6_Item6,
   _Type7_Item7,
   _Type8_Item8,
   _Type9_Item9,
   _Type10_Item10
);
template<
   typename _Type1
>
choice<std::tr1::tuple<_Type1>> make_choice(
   _Type1_Item1
);
template<
   typename _Type1,
   typename _Type2
>
choice<std::tr1::tuple<_Type1, _Type2>> make_choice(
   _Type1_Item1,
   _Type2_Item2
);
template<
   typename _Type1,
   typename _Type2,
   typename _Type3
>
choice<std::tr1::tuple<_Type1, _Type2, _Type3>> make_choice(
   _Type1_Item1,
   _Type2_Item2,
   _Type3_Item3
);
template<
   typename _Type1,
   typename _Type2,
   typename _Type3,
   typename _Type4
>
choice<std::tr1::tuple<_Type1, _Type2, _Type3, _Type4>> make_choice(
   _Type1_Item1,
   _Type2_Item2,
   _Type3_Item3,
   _Type4_Item4
);
template<
   typename _Type1,
   typename _Type2,
   typename _Type3,
   typename _Type4,
   typename _Type5
>
choice<std::tr1::tuple<_Type1, _Type2, _Type3, _Type4, _Type5>> make_choice(
   _Type1_Item1,
   _Type2_Item2,
   _Type3_Item3,
   _Type4_Item4,
   _Type5_Item5
);
template<
   typename _Type1,
   typename _Type2,
   typename _Type3,
   typename _Type4,
   typename _Type5,
   typename _Type6
>
choice<std::tr1::tuple<_Type1, _Type2, _Type3, _Type4, _Type5, _Type6>> make_choice(
   _Type1_Item1,
   _Type2_Item2,
   _Type3_Item3,
   _Type4_Item4,
   _Type5_Item5,
   _Type6_Item6
);
template<
   typename _Type1,
   typename _Type2,
   typename _Type3,
   typename _Type4,
   typename _Type5,
   typename _Type6,
   typename _Type7
>
choice<std::tr1::tuple<_Type1, _Type2, _Type3, _Type4, _Type5, _Type6, _Type7>> make_choice(
   _Type1_Item1,
   _Type2_Item2,
   _Type3_Item3,
   _Type4_Item4,
   _Type5_Item5,
   _Type6_Item6,
   _Type7_Item7
);
template<
   typename _Type1,
   typename _Type2,
   typename _Type3,
   typename _Type4,
   typename _Type5,
   typename _Type6,
   typename _Type7,
   typename _Type8
>
choice<std::tr1::tuple<_Type1, _Type2, _Type3, _Type4, _Type5, _Type6, _Type7, _Type8>> make_choice(
   _Type1_Item1,
   _Type2_Item2,
   _Type3_Item3,
   _Type4_Item4,
   _Type5_Item5,
   _Type6_Item6,
   _Type7_Item7,
   _Type8_Item8
);
template<
   typename _Type1,
   typename _Type2,
   typename _Type3,
   typename _Type4,
   typename _Type5,
   typename _Type6,
   typename _Type7,
   typename _Type8,
   typename _Type9
>
choice<std::tr1::tuple<_Type1, _Type2, _Type3, _Type4, _Type5, _Type6, _Type7, _Type8, _Type9>> make_choice(
   _Type1_Item1,
   _Type2_Item2,
   _Type3_Item3,
   _Type4_Item4,
   _Type5_Item5,
   _Type6_Item6,
   _Type7_Item7,
   _Type8_Item8,
   _Type9_Item9
);
template<
   typename _Type1,
   typename _Type2,
   typename _Type3,
   typename _Type4,
   typename _Type5,
   typename _Type6,
   typename _Type7,
   typename _Type8,
   typename _Type9,
   typename _Type10
>
choice<std::tr1::tuple<_Type1, _Type2, _Type3, _Type4, _Type5, _Type6, _Type7, _Type8, _Type9, _Type10>> make_choice(
   _Type1_Item1,
   _Type2_Item2,
   _Type3_Item3,
   _Type4_Item4,
   _Type5_Item5,
   _Type6_Item6,
   _Type7_Item7,
   _Type8_Item8,
   _Type9_Item9,
   _Type10_Item10
);

Parameters

  • _Type1
    The message block type of the first source.

  • _Type2
    The message block type of the second source.

  • _Type3
    The message block type of the third source.

  • _Type4
    The message block type of the fourth source.

  • _Type5
    The message block type of the fifth source.

  • _Type6
    The message block type of the sixth source.

  • _Type7
    The message block type of the seventh source.

  • _Type8
    The message block type of the eighth source.

  • _Type9
    The message block type of the ninth source.

  • _Type10
    The message block type of the tenth source.

  • _PScheduler
    The Scheduler object within which the propagation task for the choice messaging block is scheduled.

  • _Item1
    The first source.

  • _Item2
    The second source.

  • _Item3
    The third source.

  • _Item4
    The fourth source.

  • _Item5
    The fifth source.

  • _Item6
    The sixth source.

  • _Item7
    The seventh source.

  • _Item8
    The eighth source.

  • _Item9
    The ninth source.

  • _Item10
    The tenth source.

  • _PScheduleGroup
    The ScheduleGroup object within which the propagation task for the choice messaging block is scheduled. The Scheduler object used is implied by the schedule group.

Return Value

A choice message block with between two and ten input sources.

Requirements

Header: agents.h

Namespace: Concurrency

See Also

Reference

Concurrency Namespace

choice Class

Scheduler Class

ScheduleGroup Class