00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef SIM_OP_OP_STATUS_H
00033 #define SIM_OP_OP_STATUS_H
00034
00035
00036 namespace Onikiri
00037 {
00038
00039 class OpStatus
00040 {
00041 public:
00042
00043
00044
00045 enum Status
00046 {
00047 OS_INVALID = 0,
00048 OS_FLUSHED,
00049 OS_FETCH,
00050 OS_RENAME,
00051 OS_DISPATCHING,
00052 OS_DISPATCHED,
00053 OS_ISSUING,
00054 OS_EXECUTING,
00055 OS_FINISHED,
00056 OS_WRITING_BACK,
00057 OS_WRITTEN_BACK,
00058 OS_COMPLETED,
00059 OS_NOP,
00060 OS_COMITTING,
00061 OS_COMITTED,
00062 OS_RETIRED,
00063 OS_MAX
00064 };
00065
00066 OpStatus() :
00067 m_status( OS_INVALID )
00068 {
00069 }
00070
00071 OpStatus( const OpStatus& status ) :
00072 m_status( status.m_status )
00073 {
00074 }
00075
00076 OpStatus( const Status& status ) :
00077 m_status( status )
00078 {
00079 }
00080
00081
00082 bool operator == ( const Status& rhs ) const
00083 { return m_status == rhs; }
00084
00085 bool operator != ( const Status& rhs ) const
00086 { return m_status != rhs; }
00087
00088 bool operator < ( const Status& rhs ) const
00089 { return m_status < rhs; }
00090
00091 bool operator <= ( const Status& rhs ) const
00092 { return m_status <= rhs; }
00093
00094 bool operator > ( const Status& rhs ) const
00095 { return m_status > rhs; }
00096
00097 bool operator >= ( const Status& rhs ) const
00098 { return m_status >= rhs; }
00099
00100
00101 bool operator == ( const OpStatus& rhs ) const
00102 { return m_status == rhs.m_status; }
00103
00104 bool operator != ( const OpStatus& rhs ) const
00105 { return m_status != rhs.m_status; }
00106
00107 bool operator < ( const OpStatus& rhs ) const
00108 { return m_status < rhs.m_status; }
00109
00110 bool operator <= ( const OpStatus& rhs ) const
00111 { return m_status <= rhs.m_status; }
00112
00113 bool operator > ( const OpStatus& rhs ) const
00114 { return m_status > rhs.m_status; }
00115
00116 bool operator >= ( const OpStatus& rhs ) const
00117 { return m_status >= rhs.m_status; }
00118
00119 const char* ToString();
00120
00121 protected:
00122 Status m_status;
00123 };
00124
00125
00126
00127 };
00128
00129 #endif // SIM_OP_OP_STATUS_H
00130