Tanımlama
Örnek
Şöyle yaparız.
Kalıtım kullanarak şöyle yaparız.
struct içine alan tanımlayabiliriz. Şöyle yaparız.
State içinde bir inner struct olarak tanımlanır. Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Örnek
Şöyle yaparız.
struct A:msmf::state<> {
...
}
ÖrnekKalıtım kullanarak şöyle yaparız.
struct State : boost::msm::front::state<> {};
struct State1 : State {
...
}
Örnekstruct içine alan tanımlayabiliriz. Şöyle yaparız.
// States
struct State1:msmf::state<> {
...
bool z = true; // example of a condition
};
ActionState içinde bir inner struct olarak tanımlanır. Şöyle yaparız.
struct State2 : State {
template<typename Event, typename Fsm>
void on_entry(Event const&, Fsm& fsm) {
...
}
template<typename Event, typename Fsm>
void on_exit(Event const&, Fsm&) {
...
}
struct Action {
template<typename Fsm>
void operator()(Event1 const &, Fsm &fsm, State1&, State2&) {
...
}
}
}
state_machine_def sınıfının geçiş tablosu şöyle yapılır.using initial_state = State1;
struct TransitionTable : boost::mpl::vector<
boost::msm::front::Row<State1, event::Event1, State2, State2::Action>,
boost::msm::front::Row<State1, event::Event3, State3>,
boost::msm::front::Row<State2, event::Event1, State2>,
boost::msm::front::Row<State1, event::Event1, State2>,
> {};
using transition_table = TransitionTable;
on_entry metoduŞöyle yaparız.
template <class Event,class Fsm>
void on_entry(Event const&, Fsm&) const {
...
}
on_exit metoduŞöyle yaparız.
template <class Event,class Fsm>
void on_exit(Event const&, Fsm&) const {
...
}
Hiç yorum yok:
Yorum Gönder