diff options
author | Javier <dev.git@javispedro.com> | 2015-06-13 17:35:15 +0200 |
---|---|---|
committer | Javier <dev.git@javispedro.com> | 2015-06-13 17:35:15 +0200 |
commit | 72a71a2003028fc97d74cebecebb1541d66ded86 (patch) | |
tree | f9850b0091f50c0dab524bec47445380fed62ef3 /afdpageaddress.h | |
parent | 41f9a9b0563c3bd523bd534b854e50161a2626b3 (diff) | |
download | scribiu-72a71a2003028fc97d74cebecebb1541d66ded86.tar.gz scribiu-72a71a2003028fc97d74cebecebb1541d66ded86.zip |
split afdpageaddress into new class
Diffstat (limited to 'afdpageaddress.h')
-rw-r--r-- | afdpageaddress.h | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/afdpageaddress.h b/afdpageaddress.h new file mode 100644 index 0000000..911dd53 --- /dev/null +++ b/afdpageaddress.h @@ -0,0 +1,66 @@ +#ifndef AFDPAGEADDRESS_H +#define AFDPAGEADDRESS_H + +#include <QtCore/QString> + +class AfdPageAddress +{ +public: + AfdPageAddress(); + AfdPageAddress(uint section, uint segment, uint shelf, uint book, uint page); + AfdPageAddress(uint segment, uint shelf, uint book, uint page); + explicit AfdPageAddress(const QString &addr); + explicit AfdPageAddress(quint64 addr); + + uint section() const; + uint segment() const; + uint shelf() const; + uint book() const; + uint page() const; + + QString toString() const; + quint64 toUInt64() const; + +private: + quint64 v; +}; + +inline AfdPageAddress::AfdPageAddress() : v(0) +{ +} + +inline AfdPageAddress::AfdPageAddress(quint64 addr) : v(addr) +{ +} + +inline uint AfdPageAddress::section() const +{ + return (v >> 52) & 0xFFFU; +} + +inline uint AfdPageAddress::segment() const +{ + return (v >> 40) & 0xFFFU; +} + +inline uint AfdPageAddress::shelf() const +{ + return (v >> 24) & 0xFFFFU; +} + +inline uint AfdPageAddress::book() const +{ + return (v >> 12) & 0xFFFU; +} + +inline uint AfdPageAddress::page() const +{ + return (v >> 0) & 0xFFFU; +} + +inline quint64 AfdPageAddress::toUInt64() const +{ + return v; +} + +#endif // AFDPAGEADDRESS_H |