Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/boost_1_34_1/libs/statechart/test/OuterOrthogonal.hpp @ 29

Last change on this file since 29 was 29, checked in by landauf, 16 years ago

updated boost from 1_33_1 to 1_34_1

File size: 3.1 KB
Line 
1#ifndef BOOST_STATECHART_TEST_OUTER_ORTHOGONAL_HPP_INCLUDED
2#define BOOST_STATECHART_TEST_OUTER_ORTHOGONAL_HPP_INCLUDED
3//////////////////////////////////////////////////////////////////////////////
4// Copyright 2004-2006 Andreas Huber Doenni
5// Distributed under the Boost Software License, Version 1.0. (See accompany-
6// ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7//////////////////////////////////////////////////////////////////////////////
8
9
10
11#include <boost/statechart/state.hpp>
12#include <boost/mpl/list.hpp>
13
14#include "InnermostDefault.hpp"
15
16
17
18namespace sc = boost::statechart;
19namespace mpl = boost::mpl;
20
21
22
23//////////////////////////////////////////////////////////////////////////////
24template< class MostDerived, class Context, class InitialState0 >
25struct Orthogonal0 : sc::state< MostDerived, Context,
26  mpl::list<
27    InitialState0,
28    Default1< MostDerived >,
29    Default2< MostDerived > > >
30{
31  typedef sc::state< 
32    MostDerived, Context, mpl::list< InitialState0,
33      Default1< MostDerived >, Default2< MostDerived > > > base_type;
34  typedef typename base_type::my_context my_context;
35  typedef Orthogonal0 my_base;
36
37  Orthogonal0( my_context ctx ) : base_type( ctx )
38  {
39    this->outermost_context().template ActualEntry< MostDerived >();
40  }
41
42  ~Orthogonal0()
43  {
44    this->outermost_context().template ActualDestructor< MostDerived >();
45  }
46
47  void exit()
48  {
49    this->outermost_context().template ActualExitFunction< MostDerived >();
50  }
51};
52
53//////////////////////////////////////////////////////////////////////////////
54template< class MostDerived, class Context, class InitialState1 >
55struct Orthogonal1 : sc::state< MostDerived, Context, 
56  mpl::list<
57    Default0< MostDerived >,
58    InitialState1,
59    Default2< MostDerived > > >
60{
61  typedef sc::state< 
62    MostDerived, Context, mpl::list< Default0< MostDerived >,
63      InitialState1, Default2< MostDerived > > > base_type;
64  typedef typename base_type::my_context my_context;
65  typedef Orthogonal1 my_base;
66
67  Orthogonal1( my_context ctx ) : base_type( ctx )
68  {
69    this->outermost_context().template ActualEntry< MostDerived >();
70  }
71
72  ~Orthogonal1()
73  {
74    this->outermost_context().template ActualDestructor< MostDerived >();
75  }
76
77  void exit()
78  {
79    this->outermost_context().template ActualExitFunction< MostDerived >();
80  }
81};
82
83//////////////////////////////////////////////////////////////////////////////
84template< class MostDerived, class Context, class InitialState2 >
85struct Orthogonal2 : sc::state< MostDerived, Context,
86  mpl::list<
87    Default0< MostDerived >,
88    Default1< MostDerived >,
89    InitialState2 > >
90{
91  typedef sc::state< 
92    MostDerived, Context, mpl::list< Default0< MostDerived >,
93      Default1< MostDerived >, InitialState2 > > base_type;
94  typedef typename base_type::my_context my_context;
95  typedef Orthogonal2 my_base;
96
97  Orthogonal2( my_context ctx ) : base_type( ctx )
98  {
99    this->outermost_context().template ActualEntry< MostDerived >();
100  }
101
102  ~Orthogonal2()
103  {
104    this->outermost_context().template ActualDestructor< MostDerived >();
105  }
106
107  void exit()
108  {
109    this->outermost_context().template ActualExitFunction< MostDerived >();
110  }
111};
112
113
114
115#endif
Note: See TracBrowser for help on using the repository browser.