#ifndef FIELD_H #define FIELD_H #include class Field { private: quint32 _value; quint64 _valueLong; quint32 _mask; quint64 _maskLong; quint8 _length; quint8 _position; quint32 _zeroBasedMask; quint64 _zeroBasedMaskLong; bool _isSigned; bool _isUpdated; Field(quint32 mask, bool isSigned); Field(quint64 mask); void findLength(); void findLengthLong(); void findPosition(); void findPositionLong(); void findZeroBasedMask(); void findZeroBasedMaskLong(); public: static Field* fromBitPosition(quint32 bitPosition); static Field* fromMaskSigned(quint32 mask); static Field* fromMaskUnsigned(quint32 mask); static Field* fromMaskUnsignedLong(quint64 maskLong); quint32 getValue(); void setValue(quint32 value); void setValueLong(quint64 valueLong); bool isUpdated(); void updateValue(quint32 value); quint32 getRegisterWriteValue(); quint64 getRegisterWriteValueLong(); }; #endif //FIELD_H