00001 #if !defined(__ABSTRACTCOMMAND_HPP)
00002 #define __ABSTRACTCOMMAND_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 DECLARE_CLASS( AbstractCommand );
00031
00038 class AbstractCommand : public Synchronized
00039 {
00040
00041 public:
00042
00043
00044
00045 00047
00048 AbstractCommand( void );
00049
00051
00052 AbstractCommand( AbstractCommandCref );
00053
00055
00056 virtual ~AbstractCommand( void );
00057
00058
00059
00060
00061
00063
00064 AbstractCommandRef operator=( AbstractCommandCref );
00065
00067
00068 bool operator==( AbstractCommandCref ) const;
00069
00070
00071
00072
00073
00075
00076 virtual void execute( void ) = 0;
00077
00079
00080 virtual void executeReverse( void ) = 0;
00081
00082 protected:
00083
00084 private:
00085
00086 };
00087 }
00088
00089 #endif // if !defined(__ABSTRACTCOMMAND_HPP)
00090
00091 00092 00093 00094 00095 00096 00097
00098