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