Isis 3.0 Object Programmers' Reference
Home
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
Endian.h
Go to the documentation of this file.
1
24
#ifndef Endian_h
25
#define Endian_h
26
27
#include <QString>
28
29
namespace
Isis {
59
enum
ByteOrder
{
60
NoByteOrder = 0,
61
Lsb,
62
Msb
63
};
64
65
inline
QString ByteOrderName(
Isis::ByteOrder
byteOrder) {
66
if
(byteOrder == Isis::NoByteOrder)
return
"None"
;
67
if
(byteOrder == Isis::Lsb)
return
"Lsb"
;
68
if
(byteOrder == Isis::Msb)
return
"Msb"
;
69
return
"Error"
;
70
}
71
72
inline
Isis::ByteOrder
ByteOrderEnumeration(
const
QString &order) {
73
QString temp = order.toUpper();
74
if
(temp ==
"LSB"
)
return
Isis::Lsb;
75
if
(temp ==
"MSB"
)
return
Isis::Msb;
76
return
Isis::NoByteOrder;
77
}
78
84
inline
bool
IsLsb
() {
85
union
{
86
short
a;
87
char
b[2];
88
} test;
89
90
test.a = 1;
91
if
(test.b[0] == 0)
return
false
;
92
return
true
;
93
}
94
100
inline
bool
IsMsb
() {
101
return
!
Isis::IsLsb
();
102
}
103
111
inline
bool
IsLittleEndian
() {
112
return
IsLsb
();
113
}
114
122
inline
bool
IsBigEndian
() {
123
return
!
Isis::IsLsb
();
124
}
125
}
126
127
#endif
128