00001 #ifndef SIGEL_SIMULATION_SIG_REGISTER_H 00002 #define SIGEL_SIMULATION_SIG_REGISTER_H 00003 00004 #include "SIGEL_Simulation/SIG_RegisterWrongSizeException.h" 00005 00006 namespace SIGEL_Simulation 00007 { 00008 00016 class SIG_Register { 00017 public: 00018 00033 SIG_Register(int size) 00034 throw(SIG_RegisterWrongSizeException); 00035 00045 void copyReg(SIG_Register const& otherRegister); 00046 00056 void addReg(SIG_Register const& otherRegister); 00057 00067 void subReg(SIG_Register const& otherRegister); 00068 00077 void loadValue(int newValue); 00078 00087 void mulReg(SIG_Register const& otherRegister); 00088 00098 void divReg(SIG_Register const& otherRegister); 00099 00108 void minReg(SIG_Register const& otherRegister); 00109 00119 void maxReg(SIG_Register const& otherRegister); 00120 00129 void modReg(SIG_Register const& otherRegister); 00130 00136 int getValue() const; 00137 00142 int getSize() const; 00143 00148 int getMaxValue() const; 00149 00154 int getMinValue() const; 00155 00156 private: 00157 00170 void makeValid(); 00171 00177 int value; 00178 00182 int size; 00183 00184 }; 00185 00186 } 00187 00188 #endif // SIGEL_SIMULATION_SIG_REGISTER_H