From 72a71a2003028fc97d74cebecebb1541d66ded86 Mon Sep 17 00:00:00 2001 From: Javier Date: Sat, 13 Jun 2015 17:35:15 +0200 Subject: split afdpageaddress into new class --- afdpageaddress.h | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 afdpageaddress.h (limited to 'afdpageaddress.h') 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 + +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 -- cgit v1.2.3