1 // Copyright 2008 Christophe Henry 2 // henry UNDERSCORE christophe AT hotmail DOT com 3 // This is an extended version of the state machine available in the boost::mpl library 4 // Distributed under the same license as the original. 5 // Copyright for the original version: 6 // Copyright 2005 David Abrahams and Aleksey Gurtovoy. Distributed 7 // under the Boost Software License, Version 1.0. (See accompanying 8 // file LICENSE_1_0.txt or copy at 9 // http://www.boost.org/LICENSE_1_0.txt) 10 11 #ifndef BOOST_MSM_ROW_TAGS_H 12 #define BOOST_MSM_ROW_TAGS_H 13 14 15 16 namespace boost { namespace msm 17 { 18 //tags 19 struct a_row_tag {}; 20 struct g_row_tag {}; 21 struct _row_tag {}; 22 struct row_tag {}; 23 // tags for internal transitions 24 struct a_irow_tag {}; 25 struct g_irow_tag {}; 26 struct _irow_tag {}; 27 struct irow_tag {}; 28 // tags for transitions internal to state machines (not using any substate) 29 struct sm_a_i_row_tag {}; 30 struct sm_g_i_row_tag {}; 31 struct sm__i_row_tag {}; 32 struct sm_i_row_tag {}; 33 34 // flags used internally to handle terminate / interrupt states 35 struct TerminateFlag 36 { 37 typedef int non_forwarding_flag; 38 typedef int event_blocking_flag; 39 }; 40 struct InterruptedFlag 41 { 42 typedef int non_forwarding_flag; 43 typedef int event_blocking_flag; 44 }; 45 template <class EndEvent> 46 struct EndInterruptFlag 47 { 48 typedef int non_forwarding_flag; 49 }; 50 51 } } // boost::msm 52 #endif //BOOST_MSM_ROW_TAGS_H 53 54