1 // Copyright 2010 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 FSM_AS_PTR_H
12 #define FSM_AS_PTR_H
13 
14 #include <boost/shared_ptr.hpp>
15 
16 class player
17 {
18 public:
19     player();
~player()20     virtual ~player(){}
21 
22     // public interface
23     void do_play();
24     void do_pause();
25     void do_open_close();
26     void do_end_pause();
27     void do_stop();
28     void do_cd_detected();
29 
30 private:
31     // my state machine, hidden
32     boost::shared_ptr<void>   fsm_;
33 
34 };
35 
36 #endif //FSM_AS_PTR_H
37