unit_t init_behavior_impl(message_handler& x) {
   if (x)
     x = x.or_else(composable_behavior_base<Clauses>::make_callback()...);
   else
     x.assign(composable_behavior_base<Clauses>::make_callback()...);
   return unit;
 }
예제 #2
0
파일: menu.hpp 프로젝트: LNSEAB/mmaccel
		static void invoke_impl( type_tuple< Message, Rest... >, message_handler<MH...> const& mh, DWORD id )
		{
			if( id == Message::id ) {
				mh.invoke( Message() );
				return;
			}

			invoke_impl( type_tuple< Rest... >(), mh, id );
		}
예제 #3
0
파일: menu.hpp 프로젝트: LNSEAB/mmaccel
		void assign_handler(Message, F&& f)
		{
			mh_.assign( Message(), std::forward< F >( f ) );
		}
예제 #4
0
behavior_impl_ptr extract(const message_handler& arg) {
  return arg.as_behavior_impl();
}
예제 #5
0
behavior_impl_ptr combine(const message_handler& lhs, behavior_impl_ptr rhs) {
  return lhs.as_behavior_impl()->or_else(rhs);
}
예제 #6
0
behavior_impl_ptr combine(behavior_impl_ptr lhs, const message_handler& rhs) {
  return lhs->or_else(rhs.as_behavior_impl());
}
예제 #7
0
behavior::behavior(const message_handler& mh) : m_impl(mh.as_behavior_impl()) {
  // nop
}
예제 #8
0
void observer_board::set_message_handler(message_handler& msg) {
    msg_observer.emplace(msg.get_client_id(), msg);
}