00001 #ifndef __COMMAND_OBJECT__ 00002 #define __COMMAND_OBJECT__ 00003 00004 00005 00006 //------------------------------------------------------------------------------------------------------------ 00007 // Includes 00008 //------------------------------------------------------------------------------------------------------------ 00009 00010 #include <iostream> 00011 #include <deque> 00012 00013 class CommandObject{ 00014 00015 //------------------------------------------------------------------------------------------------------------ 00016 // Constructors & Destructors 00017 //------------------------------------------------------------------------------------------------------------ 00018 public: 00019 00020 /* 00021 * Creates a command with the given text 00022 * @return Returns the created commandObject pointer 00023 */ 00024 CommandObject( ); 00025 00026 /* 00027 * Destroys the command 00028 */ 00029 virtual ~CommandObject( ); 00030 //------------------------------------------------------------------------------------------------------------ 00031 // Methods 00032 //------------------------------------------------------------------------------------------------------------ 00033 00034 /* 00035 * Includes the command into the given queue for execution 00036 * @param executionQueue Is the queue in which is included the command 00037 */ 00038 virtual void includeToExecute(std::deque<CommandObject *> &executionQueue)=0; 00039 00040 /* 00041 * Counts the command(s) 00042 * @return The value of commands that represents this 00043 */ 00044 virtual int count() = 0; 00045 00046 /* 00047 * Method that clears the command 00048 */ 00049 virtual void clear() = 0; 00050 00051 //------------------------------------------------------------------------------------------------------------ 00052 // Constants 00053 //------------------------------------------------------------------------------------------------------------ 00054 00055 private: 00056 //------------------------------------------------------------------------------------------------------------ 00057 // Attributes 00058 //------------------------------------------------------------------------------------------------------------ 00059 00060 int accum; 00061 00062 }; 00063 #endif