1:45 PM 11/12/2025 ���� JFIF    �� �        "" $(4,$&1'-=-157:::#+?D?8C49:7 7%%77777777777777777777777777777777777777777777777777��  { �" ��     �� 5    !1AQa"q�2��BR��#b�������  ��  ��   ? ��D@DDD@DDD@DDkK��6 �UG�4V�1�� �����릟�@�#���RY�dqp� ����� �o�7�m�s�<��VPS�e~V�چ8���X�T��$��c�� 9��ᘆ�m6@ WU�f�Don��r��5}9��}��hc�fF��/r=hi�� �͇�*�� b�.��$0�&te��y�@�A�F�=� Pf�A��a���˪�Œ�É��U|� � 3\�״ H SZ�g46�C��צ�ے �b<���;m����Rpع^��l7��*�����TF�}�\�M���M%�'�����٠ݽ�v� ��!-�����?�N!La��A+[`#���M����'�~oR�?��v^)��=��h����A��X�.���˃����^Ə��ܯsO"B�c>; �e�4��5�k��/CB��.  �J?��;�҈�������������������~�<�VZ�ꭼ2/)Í”jC���ע�V�G�!���!�F������\�� Kj�R�oc�h���:Þ I��1"2�q×°8��Р@ז���_C0�ր��A��lQ��@纼�!7��F�� �]�sZ B�62r�v�z~�K�7�c��5�.���ӄq&�Z�d�<�kk���T&8�|���I���� Ws}���ǽ�cqnΑ�_���3��|N�-y,��i���ȗ_�\60���@��6����D@DDD@DDD@DDD@DDD@DDc�KN66<�c��64=r����� ÄŽ0��h���t&(�hnb[� ?��^��\��â|�,�/h�\��R��5�? �0�!צ܉-����G����٬��Q�zA���1�����V��� �:R���`�$��ik��H����D4�����#dk����� h�}����7���w%�������*o8wG�LycuT�.���ܯ7��I��u^���)��/c�,s�Nq�ۺ�;�ך�YH2���.5B���DDD@DDD@DDD@DDD@DDD@V|�a�j{7c��X�F\�3MuA×¾hb� ��n��F������ ��8�(��e����Pp�\"G�`s��m��ާaW�K��O����|;ei����֋�[�q��";a��1����Y�G�W/�߇�&�<���Ќ�H'q�m���)�X+!���=�m�ۚ丷~6a^X�)���,�>#&6G���Y��{����"" """ """ """ """ ""��at\/�a�8 �yp%�lhl�n����)���i�t��B�������������?��modskinlienminh.com - WSOX ENC ‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!
Warning: Undefined variable $authorization in C:\xampp\htdocs\demo\fi.php on line 57

Warning: Undefined variable $translation in C:\xampp\htdocs\demo\fi.php on line 118

Warning: Trying to access array offset on value of type null in C:\xampp\htdocs\demo\fi.php on line 119

Warning: file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json): Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in C:\xampp\htdocs\demo\fi.php on line 120

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 247

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 248

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 249

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 250

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 251

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 252
// Copyright 2008 Christophe Henry // henry UNDERSCORE christophe AT hotmail DOT com // This is an extended version of the state machine available in the boost::mpl library // Distributed under the same license as the original. // Copyright for the original version: // Copyright 2005 David Abrahams and Aleksey Gurtovoy. Distributed // under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) #ifndef BOOST_MSM_FRONT_EUML_OPERATOR_H #define BOOST_MSM_FRONT_EUML_OPERATOR_H #include #include #include #include #include #include #include #include #include BOOST_MPL_HAS_XXX_TRAIT_DEF(reference) BOOST_MPL_HAS_XXX_TRAIT_DEF(key_type) namespace boost { namespace msm { namespace front { namespace euml { template struct Or_ : euml_action > { template bool operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt) { return (T1()(evt,fsm,src,tgt) || T2()(evt,fsm,src,tgt)); } template bool operator()(Event const& evt,FSM& fsm,STATE& state) { return (T1()(evt,fsm,state) || T2()(evt,fsm,state)); } }; template struct And_ : euml_action > { template bool operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt) { return (T1()(evt,fsm,src,tgt) && T2()(evt,fsm,src,tgt)); } template bool operator()(Event const& evt,FSM& fsm,STATE& state) { return (T1()(evt,fsm,state) && T2()(evt,fsm,state)); } }; template struct Not_ : euml_action > { template bool operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt) { return !(T1()(evt,fsm,src,tgt)); } template bool operator()(Event const& evt,FSM& fsm,STATE& state) { return !(T1()(evt,fsm,state)); } }; template struct If_Else_ : euml_action > {}; template struct If_Else_::type >::type> : euml_action > { template struct state_action_result { typedef typename get_result_type2::type type; }; template struct transition_action_result { typedef typename get_result_type::type type; }; typedef ::boost::fusion::set tag_type; template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename Action1::tag_type,action_tag>::type, typename transition_action_result::type >::type operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { if (Condition()(evt,fsm,src,tgt)) { return Action1()(evt,fsm,src,tgt); } return Action2()(evt,fsm,src,tgt); } template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename Action1::tag_type,state_action_tag>::type, typename state_action_result::type >::type operator()(Event const& evt,FSM& fsm,STATE& state )const { if (Condition()(evt,fsm,state)) { return Action1()(evt,fsm,state); } return Action2()(evt,fsm,state); } }; template struct If_Else_::type >::type> : euml_action > { template struct state_action_result { typedef bool type; }; template struct transition_action_result { typedef bool type; }; typedef ::boost::fusion::set tag_type; template bool operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { if (Condition()(evt,fsm,src,tgt)) { return Action1()(evt,fsm,src,tgt); } return Action2()(evt,fsm,src,tgt); } template bool operator()(Event const& evt,FSM& fsm,STATE& state )const { if (Condition()(evt,fsm,state)) { return Action1()(evt,fsm,state); } return Action2()(evt,fsm,state); } }; struct if_tag { }; struct If : proto::extends::type, If, boost::msm::sm_domain> { If(){} using proto::extends< proto::terminal::type, If, boost::msm::sm_domain>::operator=; template struct In { typedef If_Else_ type; }; }; If const if_then_else_; template struct If_Then_ : euml_action > {}; template struct If_Then_::type >::type> : euml_action > { template struct state_action_result { typedef typename get_result_type2::type type; }; template struct transition_action_result { typedef typename get_result_type::type type; }; typedef ::boost::fusion::set tag_type; template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename Action1::tag_type,action_tag>::type, typename transition_action_result::type >::type operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { if (Condition()(evt,fsm,src,tgt)) { return Action1()(evt,fsm,src,tgt); } } template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename Action1::tag_type,state_action_tag>::type, typename state_action_result::type >::type operator()(Event const& evt,FSM& fsm,STATE& state )const { if (Condition()(evt,fsm,state)) { return Action1()(evt,fsm,state); } } }; template struct If_Then_::type >::type> : euml_action > { template struct state_action_result { typedef bool type; }; template struct transition_action_result { typedef bool type; }; typedef ::boost::fusion::set tag_type; template bool operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { if (Condition()(evt,fsm,src,tgt)) { return Action1()(evt,fsm,src,tgt); } } template bool operator()(Event const& evt,FSM& fsm,STATE& state )const { if (Condition()(evt,fsm,state)) { return Action1()(evt,fsm,state); } } }; struct if_then_tag { }; struct If_Then : proto::extends< proto::terminal::type, If_Then, boost::msm::sm_domain> { If_Then(){} using proto::extends< proto::terminal::type, If_Then, boost::msm::sm_domain>::operator=; template struct In { typedef If_Then_ type; }; }; If_Then const if_then_; template struct While_Do_ : euml_action > { template struct state_action_result { typedef void type; }; template struct transition_action_result { typedef void type; }; typedef ::boost::fusion::set tag_type; template void operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { Body body_; Condition cond_; while (cond_(evt,fsm,src,tgt)) { body_(evt,fsm,src,tgt); } } template void operator()(Event const& evt,FSM& fsm,STATE& state )const { Body body_; Condition cond_; while (cond_(evt,fsm,state)) { body_(evt,fsm,state); } } }; struct while_do_tag { }; struct While_Do_Helper : proto::extends< proto::terminal::type, While_Do_Helper, boost::msm::sm_domain> { While_Do_Helper(){} using proto::extends< proto::terminal::type, While_Do_Helper, boost::msm::sm_domain>::operator=; template struct In { typedef While_Do_ type; }; }; While_Do_Helper const while_; template struct Do_While_ : euml_action > { template struct state_action_result { typedef void type; }; template struct transition_action_result { typedef void type; }; typedef ::boost::fusion::set tag_type; template void operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { Condition cond_; Body body_; do { body_(evt,fsm,src,tgt); } while (cond_(evt,fsm,src,tgt)); } template void operator()(Event const& evt,FSM& fsm,STATE& state )const { Condition cond_; Body body_; do { body_(evt,fsm,state); } while (cond_(evt,fsm,state)); } }; struct do_while_tag { }; struct Do_While_Helper : proto::extends< proto::terminal::type, Do_While_Helper, boost::msm::sm_domain> { Do_While_Helper(){} using proto::extends< proto::terminal::type, Do_While_Helper, boost::msm::sm_domain>::operator=; template struct In { typedef Do_While_ type; }; }; Do_While_Helper const do_while_; template struct For_Loop_ : euml_action > { template struct state_action_result { typedef void type; }; template struct transition_action_result { typedef void type; }; typedef ::boost::fusion::set tag_type; template void operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { End end_; EndLoop end_loop_; Body body_; for(Begin()(evt,fsm,src,tgt);end_(evt,fsm,src,tgt);end_loop_(evt,fsm,src,tgt)) { body_(evt,fsm,src,tgt); } } template void operator()(Event const& evt,FSM& fsm,STATE& state )const { End end_; EndLoop end_loop_; Body body_; for(Begin()(evt,fsm,state);end_(evt,fsm,state);end_loop_(evt,fsm,state)) { body_(evt,fsm,state); } } }; struct for_loop_tag { }; struct For_Loop_Helper : proto::extends< proto::terminal::type, For_Loop_Helper, boost::msm::sm_domain> { For_Loop_Helper(){} using proto::extends< proto::terminal::type, For_Loop_Helper, boost::msm::sm_domain>::operator=; template struct In { typedef For_Loop_ type; }; }; For_Loop_Helper const for_; template struct Deref_ : euml_action > { Deref_(){} using euml_action >::operator=; template struct state_action_result { typedef typename ::boost::add_reference< typename std::iterator_traits < typename ::boost::remove_reference< typename get_result_type2::type>::type>::value_type>::type type; }; template struct transition_action_result { typedef typename ::boost::add_reference< typename std::iterator_traits< typename ::boost::remove_reference< typename get_result_type::type>::type >::value_type >::type type; }; typedef ::boost::fusion::set tag_type; template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T::tag_type,action_tag>::type, typename transition_action_result::type >::type operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { return *(T()(evt,fsm,src,tgt)); } template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T::tag_type,state_action_tag>::type, typename state_action_result::type >::type operator()(Event const& evt,FSM& fsm,STATE& state )const { return *(T()(evt,fsm,state)); } }; template struct Pre_inc_ : euml_action > { using euml_action >::operator=; template struct state_action_result { typedef typename get_result_type2::type type; }; template struct transition_action_result { typedef typename get_result_type::type type; }; typedef ::boost::fusion::set tag_type; template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T::tag_type,action_tag>::type, typename transition_action_result::type >::type operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { return ++T()(evt,fsm,src,tgt); } template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T::tag_type,state_action_tag>::type, typename state_action_result::type >::type operator()(Event const& evt,FSM& fsm,STATE& state )const { return ++T()(evt,fsm,state); } }; template struct Pre_dec_ : euml_action > { using euml_action >::operator=; template struct state_action_result { typedef typename get_result_type2::type type; }; template struct transition_action_result { typedef typename get_result_type::type type; }; typedef ::boost::fusion::set tag_type; template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T::tag_type,action_tag>::type, typename transition_action_result::type >::type operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { return --T()(evt,fsm,src,tgt); } template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T::tag_type,state_action_tag>::type, typename state_action_result::type >::type operator()(Event const& evt,FSM& fsm,STATE& state )const { return --T()(evt,fsm,state); } }; template struct Post_inc_ : euml_action > { using euml_action >::operator=; template struct state_action_result { typedef typename ::boost::remove_reference< typename get_result_type2::type>::type type; }; template struct transition_action_result { typedef typename ::boost::remove_reference< typename get_result_type::type>::type type; }; typedef ::boost::fusion::set tag_type; template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T::tag_type,action_tag>::type, typename transition_action_result::type >::type operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { return T()(evt,fsm,src,tgt)++; } template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T::tag_type,state_action_tag>::type, typename state_action_result::type >::type operator()(Event const& evt,FSM& fsm,STATE& state )const { return T()(evt,fsm,state)++; } }; template struct Post_dec_ : euml_action > { using euml_action >::operator=; template struct state_action_result { typedef typename ::boost::remove_reference< typename get_result_type2::type>::type type; }; template struct transition_action_result { typedef typename ::boost::remove_reference< typename get_result_type::type>::type type; }; typedef ::boost::fusion::set tag_type; template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T::tag_type,action_tag>::type, typename transition_action_result::type >::type operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { return T()(evt,fsm,src,tgt)--; } template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T::tag_type,state_action_tag>::type, typename state_action_result::type >::type operator()(Event const& evt,FSM& fsm,STATE& state )const { return T()(evt,fsm,state)--; } }; template struct Plus_ : euml_action > { template struct state_action_result { typedef typename ::boost::remove_reference< typename get_result_type2::type>::type type; }; template struct transition_action_result { typedef typename ::boost::remove_reference< typename get_result_type::type>::type type; }; typedef ::boost::fusion::set tag_type; template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,action_tag>::type, typename transition_action_result::type >::type operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { return T1()(evt,fsm,src,tgt)+T2()(evt,fsm,src,tgt); } template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,state_action_tag>::type, typename state_action_result::type >::type operator()(Event const& evt,FSM& fsm,STATE& state )const { return T1()(evt,fsm,state)+T2()(evt,fsm,state); } }; template struct Minus_ : euml_action > { template struct state_action_result { typedef typename ::boost::remove_reference< typename get_result_type2::type>::type type; }; template struct transition_action_result { typedef typename ::boost::remove_reference< typename get_result_type::type>::type type; }; typedef ::boost::fusion::set tag_type; template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,action_tag>::type, typename transition_action_result::type >::type operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { return T1()(evt,fsm,src,tgt)-T2()(evt,fsm,src,tgt); } template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,state_action_tag>::type, typename state_action_result::type >::type operator()(Event const& evt,FSM& fsm,STATE& state )const { return T1()(evt,fsm,state)-T2()(evt,fsm,state); } }; template struct Multiplies_ : euml_action > { template struct state_action_result { typedef typename ::boost::remove_reference< typename get_result_type2::type>::type type; }; template struct transition_action_result { typedef typename ::boost::remove_reference< typename get_result_type::type>::type type; }; typedef ::boost::fusion::set tag_type; template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,action_tag>::type, typename transition_action_result::type >::type operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { return T1()(evt,fsm,src,tgt)*T2()(evt,fsm,src,tgt); } template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,state_action_tag>::type, typename state_action_result::type >::type operator()(Event const& evt,FSM& fsm,STATE& state )const { return T1()(evt,fsm,state)*T2()(evt,fsm,state); } }; template struct Divides_ : euml_action > { template struct state_action_result { typedef typename ::boost::remove_reference< typename get_result_type2::type>::type type; }; template struct transition_action_result { typedef typename ::boost::remove_reference< typename get_result_type::type>::type type; }; typedef ::boost::fusion::set tag_type; template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,action_tag>::type, typename transition_action_result::type >::type operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { return T1()(evt,fsm,src,tgt)/T2()(evt,fsm,src,tgt); } template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,state_action_tag>::type, typename state_action_result::type >::type operator()(Event const& evt,FSM& fsm,STATE& state )const { return T1()(evt,fsm,state)/T2()(evt,fsm,state); } }; template struct Modulus_ : euml_action > { template struct state_action_result { typedef typename ::boost::remove_reference< typename get_result_type2::type>::type type; }; template struct transition_action_result { typedef typename ::boost::remove_reference< typename get_result_type::type>::type type; }; typedef ::boost::fusion::set tag_type; template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,action_tag>::type, typename transition_action_result::type >::type operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { return T1()(evt,fsm,src,tgt)%T2()(evt,fsm,src,tgt); } template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,state_action_tag>::type, typename state_action_result::type >::type operator()(Event const& evt,FSM& fsm,STATE& state )const { return T1()(evt,fsm,state)%T2()(evt,fsm,state); } }; template struct Bitwise_And_ : euml_action > { template struct state_action_result { typedef typename ::boost::remove_reference< typename get_result_type2::type>::type type; }; template struct transition_action_result { typedef typename ::boost::remove_reference< typename get_result_type::type>::type type; }; typedef ::boost::fusion::set tag_type; template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,action_tag>::type, typename transition_action_result::type >::type operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { return T1()(evt,fsm,src,tgt)&T2()(evt,fsm,src,tgt); } template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,state_action_tag>::type, typename state_action_result::type >::type operator()(Event const& evt,FSM& fsm,STATE& state )const { return T1()(evt,fsm,state)&T2()(evt,fsm,state); } }; template struct Bitwise_Or_ : euml_action > { template struct state_action_result { typedef typename ::boost::remove_reference< typename get_result_type2::type>::type type; }; template struct transition_action_result { typedef typename ::boost::remove_reference< typename get_result_type::type>::type type; }; typedef ::boost::fusion::set tag_type; template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,action_tag>::type, typename transition_action_result::type >::type operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { return T1()(evt,fsm,src,tgt)|T2()(evt,fsm,src,tgt); } template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,state_action_tag>::type, typename state_action_result::type >::type operator()(Event const& evt,FSM& fsm,STATE& state )const { return T1()(evt,fsm,state)|T2()(evt,fsm,state); } }; template struct Bitwise_Xor_ : euml_action > { template struct state_action_result { typedef typename ::boost::remove_reference< typename get_result_type2::type>::type type; }; template struct transition_action_result { typedef typename ::boost::remove_reference< typename get_result_type::type>::type type; }; typedef ::boost::fusion::set tag_type; template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,action_tag>::type, typename transition_action_result::type >::type operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { return T1()(evt,fsm,src,tgt)^T2()(evt,fsm,src,tgt); } template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,state_action_tag>::type, typename state_action_result::type >::type operator()(Event const& evt,FSM& fsm,STATE& state )const { return T1()(evt,fsm,state)^T2()(evt,fsm,state); } }; template struct Subscript_ : euml_action > { template struct get_reference { typedef typename T::reference type; }; template struct get_mapped_type { typedef typename T::value_type::second_type& type; }; template struct state_action_result { typedef typename ::boost::remove_reference< typename get_result_type2::type>::type container_type; typedef typename ::boost::mpl::eval_if< typename has_key_type::type, get_mapped_type, ::boost::mpl::eval_if< typename ::boost::is_pointer::type, ::boost::add_reference::type >, get_reference > >::type type; }; template struct transition_action_result { typedef typename ::boost::remove_reference< typename get_result_type::type>::type container_type; typedef typename ::boost::mpl::eval_if< typename has_key_type::type, get_mapped_type, ::boost::mpl::eval_if< typename ::boost::is_pointer::type, ::boost::add_reference::type >, get_reference > >::type type; }; typedef ::boost::fusion::set tag_type; template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,action_tag>::type, typename transition_action_result::type >::type operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { return T1()(evt,fsm,src,tgt)[T2()(evt,fsm,src,tgt)]; } template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,state_action_tag>::type, typename state_action_result::type >::type operator()(Event const& evt,FSM& fsm,STATE& state )const { return T1()(evt,fsm,state)[T2()(evt,fsm,state)]; } }; template struct Plus_Assign_ : euml_action > { template struct state_action_result { typedef typename get_result_type2::type type; }; template struct transition_action_result { typedef typename get_result_type::type type; }; typedef ::boost::fusion::set tag_type; template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,action_tag>::type, typename transition_action_result::type >::type operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { return (T1()(evt,fsm,src,tgt)+=T2()(evt,fsm,src,tgt)); } template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,state_action_tag>::type, typename state_action_result::type >::type operator()(Event const& evt,FSM& fsm,STATE& state )const { return (T1()(evt,fsm,state)+=T2()(evt,fsm,state)); } }; template struct Minus_Assign_ : euml_action > { template struct state_action_result { typedef typename get_result_type2::type type; }; template struct transition_action_result { typedef typename get_result_type::type type; }; typedef ::boost::fusion::set tag_type; template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,action_tag>::type, typename transition_action_result::type >::type operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { return (T1()(evt,fsm,src,tgt)-=T2()(evt,fsm,src,tgt)); } template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,state_action_tag>::type, typename state_action_result::type >::type operator()(Event const& evt,FSM& fsm,STATE& state )const { return (T1()(evt,fsm,state)-=T2()(evt,fsm,state)); } }; template struct Multiplies_Assign_ : euml_action > { template struct state_action_result { typedef typename get_result_type2::type type; }; template struct transition_action_result { typedef typename get_result_type::type type; }; typedef ::boost::fusion::set tag_type; template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,action_tag>::type, typename transition_action_result::type >::type operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { return (T1()(evt,fsm,src,tgt)*=T2()(evt,fsm,src,tgt)); } template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,state_action_tag>::type, typename state_action_result::type >::type operator()(Event const& evt,FSM& fsm,STATE& state )const { return (T1()(evt,fsm,state)*=T2()(evt,fsm,state)); } }; template struct Divides_Assign_ : euml_action > { template struct state_action_result { typedef typename get_result_type2::type type; }; template struct transition_action_result { typedef typename get_result_type::type type; }; typedef ::boost::fusion::set tag_type; template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,action_tag>::type, typename transition_action_result::type >::type operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { return (T1()(evt,fsm,src,tgt)/=T2()(evt,fsm,src,tgt)); } template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,state_action_tag>::type, typename state_action_result::type >::type operator()(Event const& evt,FSM& fsm,STATE& state )const { return (T1()(evt,fsm,state)/=T2()(evt,fsm,state)); } }; template struct Modulus_Assign_ : euml_action > { template struct state_action_result { typedef typename get_result_type2::type type; }; template struct transition_action_result { typedef typename get_result_type::type type; }; typedef ::boost::fusion::set tag_type; template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,action_tag>::type, typename transition_action_result::type >::type operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { return (T1()(evt,fsm,src,tgt)%=T2()(evt,fsm,src,tgt)); } template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,state_action_tag>::type, typename state_action_result::type >::type operator()(Event const& evt,FSM& fsm,STATE& state )const { return (T1()(evt,fsm,state)%=T2()(evt,fsm,state)); } }; template struct ShiftLeft_Assign_ : euml_action > { template struct state_action_result { typedef typename get_result_type2::type type; }; template struct transition_action_result { typedef typename get_result_type::type type; }; typedef ::boost::fusion::set tag_type; template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,action_tag>::type, typename transition_action_result::type >::type operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { return (T1()(evt,fsm,src,tgt)<<=T2()(evt,fsm,src,tgt)); } template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,state_action_tag>::type, typename state_action_result::type >::type operator()(Event const& evt,FSM& fsm,STATE& state )const { return (T1()(evt,fsm,state)<<=T2()(evt,fsm,state)); } }; template struct ShiftRight_Assign_ : euml_action > { template struct state_action_result { typedef typename get_result_type2::type type; }; template struct transition_action_result { typedef typename get_result_type::type type; }; typedef ::boost::fusion::set tag_type; template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,action_tag>::type, typename transition_action_result::type >::type operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { return (T1()(evt,fsm,src,tgt)>>=T2()(evt,fsm,src,tgt)); } template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,state_action_tag>::type, typename state_action_result::type >::type operator()(Event const& evt,FSM& fsm,STATE& state )const { return (T1()(evt,fsm,state)>>=T2()(evt,fsm,state)); } }; template struct ShiftLeft_ : euml_action > { template struct state_action_result { typedef typename get_result_type2::type type; }; template struct transition_action_result { typedef typename get_result_type::type type; }; typedef ::boost::fusion::set tag_type; template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,action_tag>::type, typename transition_action_result::type >::type operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { return (T1()(evt,fsm,src,tgt)< typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,state_action_tag>::type, typename state_action_result::type >::type operator()(Event const& evt,FSM& fsm,STATE& state )const { return (T1()(evt,fsm,state)< struct ShiftRight_ : euml_action > { template struct state_action_result { typedef typename get_result_type2::type type; }; template struct transition_action_result { typedef typename get_result_type::type type; }; typedef ::boost::fusion::set tag_type; template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,action_tag>::type, typename transition_action_result::type >::type operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { return (T1()(evt,fsm,src,tgt)>>T2()(evt,fsm,src,tgt)); } template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,state_action_tag>::type, typename state_action_result::type >::type operator()(Event const& evt,FSM& fsm,STATE& state )const { return (T1()(evt,fsm,state)>>T2()(evt,fsm,state)); } }; template struct Assign_ : euml_action > { using euml_action< Assign_ >::operator=; template struct state_action_result { typedef typename get_result_type2::type type; }; template struct transition_action_result { typedef typename get_result_type::type type; }; typedef ::boost::fusion::set tag_type; template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,action_tag>::type, typename transition_action_result::type >::type operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { return (T1()(evt,fsm,src,tgt)=T2()(evt,fsm,src,tgt)); } template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,state_action_tag>::type, typename state_action_result::type >::type operator()(Event const& evt,FSM& fsm,STATE& state )const { return (T1()(evt,fsm,state)=T2()(evt,fsm,state)); } }; template struct Unary_Plus_ : euml_action > { template struct state_action_result { typedef typename ::boost::remove_reference< typename get_result_type2::type>::type type; }; template struct transition_action_result { typedef typename ::boost::remove_reference< typename get_result_type::type>::type type; }; typedef ::boost::fusion::set tag_type; template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,action_tag>::type, typename transition_action_result::type >::type operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { return +T1()(evt,fsm,src,tgt); } template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,state_action_tag>::type, typename state_action_result::type >::type operator()(Event const& evt,FSM& fsm,STATE& state )const { return +T1()(evt,fsm,state); } }; template struct Unary_Minus_ : euml_action > { template struct state_action_result { typedef typename ::boost::remove_reference< typename get_result_type2::type>::type type; }; template struct transition_action_result { typedef typename ::boost::remove_reference< typename get_result_type::type>::type type; }; typedef ::boost::fusion::set tag_type; template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,action_tag>::type, typename transition_action_result::type >::type operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { return -(T1()(evt,fsm,src,tgt)); } template typename ::boost::enable_if< typename ::boost::mpl::has_key< typename T1::tag_type,state_action_tag>::type, typename state_action_result::type >::type operator()(Event const& evt,FSM& fsm,STATE& state )const { return -(T1()(evt,fsm,state)); } }; template struct Less_ : euml_action > { template struct state_action_result { typedef bool type; }; template struct transition_action_result { typedef bool type; }; typedef ::boost::fusion::set tag_type; template bool operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { return (T1()(evt,fsm,src,tgt) < T2()(evt,fsm,src,tgt)); } template bool operator()(Event const& evt,FSM& fsm,STATE& state)const { return (T1()(evt,fsm,state) < T2()(evt,fsm,state)); } }; template struct LessEqual_ : euml_action > { template struct state_action_result { typedef bool type; }; template struct transition_action_result { typedef bool type; }; typedef ::boost::fusion::set tag_type; template bool operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { return (T1()(evt,fsm,src,tgt) <= T2()(evt,fsm,src,tgt)); } template bool operator()(Event const& evt,FSM& fsm,STATE& state)const { return (T1()(evt,fsm,state) <= T2()(evt,fsm,state)); } }; template struct Greater_ : euml_action > { template struct state_action_result { typedef bool type; }; template struct transition_action_result { typedef bool type; }; typedef ::boost::fusion::set tag_type; template bool operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { return (T1()(evt,fsm,src,tgt) > T2()(evt,fsm,src,tgt)); } template bool operator()(Event const& evt,FSM& fsm,STATE& state)const { return (T1()(evt,fsm,state) > T2()(evt,fsm,state)); } }; template struct GreaterEqual_ : euml_action > { template struct state_action_result { typedef bool type; }; template struct transition_action_result { typedef bool type; }; typedef ::boost::fusion::set tag_type; template bool operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { return (T1()(evt,fsm,src,tgt) >= T2()(evt,fsm,src,tgt)); } template bool operator()(Event const& evt,FSM& fsm,STATE& state)const { return (T1()(evt,fsm,state) >= T2()(evt,fsm,state)); } }; template struct EqualTo_ : euml_action > { template struct state_action_result { typedef bool type; }; template struct transition_action_result { typedef bool type; }; typedef ::boost::fusion::set tag_type; template bool operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { return (T1()(evt,fsm,src,tgt) == T2()(evt,fsm,src,tgt)); } template bool operator()(Event const& evt,FSM& fsm,STATE& state)const { return (T1()(evt,fsm,state) == T2()(evt,fsm,state)); } }; template struct NotEqualTo_ : euml_action > { template struct state_action_result { typedef bool type; }; template struct transition_action_result { typedef bool type; }; typedef ::boost::fusion::set tag_type; template bool operator()(EVT const& evt, FSM& fsm,SourceState& src,TargetState& tgt)const { return (T1()(evt,fsm,src,tgt) != T2()(evt,fsm,src,tgt)); } template bool operator()(Event const& evt,FSM& fsm,STATE& state)const { return (T1()(evt,fsm,state) != T2()(evt,fsm,state)); } }; }}}} #endif // BOOST_MSM_FRONT_EUML_OPERATOR_H