#ifndef FIELD_H #define FIELD_H #include class Field { private: quint32 _value; quint32 _mask; quint8 _length; quint8 _position; quint32 _zeroBasedMask; bool _isSigned; bool _isUpdated; Field(quint32 mask, bool isSigned); void findLength(); void findPosition(); void findZeroBasedMask(); public: static Field* fromBitPosition(quint32 bitPosition); static Field* fromMaskSigned(quint32 mask); static Field* fromMaskUnsigned(quint32 mask); quint32 getValue(); void setValue(quint32 value); bool isUpdated(); void updateValue(quint32 value); quint32 getRegisterWriteValue(); }; #endif //FIELD_H