00001 #if !defined (__STATE_HPP)
00002 #define __STATE_HPP
00003
00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019 00020 00021 00022
00023
00024 #if !defined(__COMMON_HPP)
00025 #include <Common.hpp>
00026 #endif
00027
00028 namespace corelinux
00029 {
00030
00031 DECLARE_CLASS( Context );
00032 DECLARE_CLASS( State );
00033
00040 class State
00041 {
00042 public:
00044
00045 State( void );
00046
00048
00049 virtual ~State( void );
00050
00051
00052
00053 00060 bool operator==( StateCref ) const;
00061
00062
00063
00064 00066
00067 virtual void handle( void ) = 0;
00068
00069 protected:
00075 State( StateCref ) throw ( Assertion );
00076
00084 StateRef operator=( StateCref ) throw ( Assertion );
00085
00087
00088 void setCurrentState( ContextPtr, StatePtr )
00089 throw ( NullPointerException );
00090
00091 };
00092
00093 }
00094
00095 #endif // if !defined(__STATE_HPP)
00096
00097 00098 00099 00100 00101 00102 00103
00104
00105