Isis Developer Reference
EndianSwapper.h
Go to the documentation of this file.
1#ifndef EndianSwapper_h
2#define EndianSwapper_h
8/* SPDX-License-Identifier: CC0-1.0 */
9
10#include "IException.h"
11
12namespace Isis {
13
39 private:
41 bool p_needSwap;
46 int p_swapDirection;
47
53 union {
55 uint32_t p_uint32;
57 double p_double;
59 float p_float;
61 int p_int;
63 long long int p_longLongInt;
65 short int p_shortInt;
70 unsigned short int p_uShortInt;
72 char p_char[8];
73 } p_swapper;
74
75 public:
76 EndianSwapper(QString inputEndian);
78 double Double(void *buf);
79 float Float(void *buf);
80 int ExportFloat(void *buf);
81 int Int(void *buf);
82 uint32_t Uint32_t(void *buf);
83 long long int LongLongInt(void *buf);
84 short int ShortInt(void *buf);
85 unsigned short int UnsignedShortInt(void *buf);
86 bool willSwap() const {
87 return p_needSwap;
88 }
89 };
90};
91
92#endif
Byte swapper.
Definition EndianSwapper.h:38
float Float(void *buf)
Swaps a floating point value.
Definition EndianSwapper.cpp:78
int p_int
Union containing the output 4 byte integer value with swapped bytes.
Definition EndianSwapper.h:61
short int ShortInt(void *buf)
Swaps a short integer value.
Definition EndianSwapper.cpp:174
short int p_shortInt
Union containing the output 2 byte integer value with swapped bytes.
Definition EndianSwapper.h:65
bool willSwap() const
Definition EndianSwapper.h:86
long long int LongLongInt(void *buf)
Swaps an 8 byte integer value.
Definition EndianSwapper.cpp:152
~EndianSwapper()
Destroys the EndianSwapper object.
Definition EndianSwapper.cpp:46
int Int(void *buf)
Swaps a 4 byte integer value.
Definition EndianSwapper.cpp:108
float p_float
Union containing the output floating point value with swapped bytes.
Definition EndianSwapper.h:59
uint32_t Uint32_t(void *buf)
Swaps a 32bit unsigned integer.
Definition EndianSwapper.cpp:130
uint32_t p_uint32
Union containing the output uint32_t value with swapped bytes.
Definition EndianSwapper.h:55
unsigned short int UnsignedShortInt(void *buf)
Swaps an unsigned short integer value.
Definition EndianSwapper.cpp:197
double p_double
Union containing the output double precision value with swapped bytes.
Definition EndianSwapper.h:57
EndianSwapper(QString inputEndian)
Constructs an EndianSwapper object, determining whether swapping of bytes actually needs to occur and...
Definition EndianSwapper.cpp:23
unsigned short int p_uShortInt
Union containing the output unsigned short integer value with swapped bytes.
Definition EndianSwapper.h:70
char p_char[8]
Union containing the output value in byte format.
Definition EndianSwapper.h:72
int ExportFloat(void *buf)
Swaps a floating point value for Exporting.
Definition EndianSwapper.cpp:99
long long int p_longLongInt
Union containing the output 8 byte integer value with swapped bytes.
Definition EndianSwapper.h:63
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16
@ Double
Definition PixelType.h:36