#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