diff options
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  | 
