dox/Common/vtkByteSwap.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00030
#ifndef __vtkByteSwap_h
00031
#define __vtkByteSwap_h
00032
00033
#include "vtkObject.h"
00034
00035 class VTK_COMMON_EXPORT vtkByteSwap :
public vtkObject
00036 {
00037
public:
00038
static vtkByteSwap *
New();
00039 vtkTypeRevisionMacro(vtkByteSwap,
vtkObject);
00040
00042
00043
static void Swap2LE(
short *s);
00044
static void Swap2LE(
unsigned short *s);
00046
00048
00049
static void Swap4LE(
char *c);
00050 static void Swap4LE(
float *p) {
vtkByteSwap::Swap4LE((
char *)p);};
00051 static void Swap4LE(
int *i) {
vtkByteSwap::Swap4LE((
char *)i);};
00052 static void Swap4LE(
unsigned int *i) {
vtkByteSwap::Swap4LE((
char *)i);};
00053 static void Swap4LE(
long *i) {
vtkByteSwap::Swap4LE((
char *)i);};
00054 static void Swap4LE(
unsigned long *i) {
vtkByteSwap::Swap4LE((
char *)i);};
00056
00058
00060
static void Swap8LE(
char *c);
00061 static void Swap8LE(
double *d) {
vtkByteSwap::Swap8LE((
char *)d);};
00063
00065
00067
static void Swap2LERange(
char *c,
int num);
00068 static void Swap2LERange(
short *i,
int num)
00069 {
vtkByteSwap::Swap2LERange((
char *)i,num);};
00071
00073
00075
static void Swap4LERange(
char *c,
int num);
00076 static void Swap4LERange(
unsigned char *c,
int num)
00077 {
vtkByteSwap::Swap4LERange((
char *)c,num);};
00078 static void Swap4LERange(
float *p,
int num)
00079 {
vtkByteSwap::Swap4LERange((
char *)p,num);};
00080 static void Swap4LERange(
int *i,
int num)
00081 {
vtkByteSwap::Swap4LERange((
char *)i,num);};
00082 static void Swap4LERange(
unsigned int *i,
int num)
00083 {
vtkByteSwap::Swap4LERange((
char *)i,num);};
00084 static void Swap4LERange(
long *i,
int num)
00085 {
vtkByteSwap::Swap4LERange((
char *)i,num);};
00086 static void Swap4LERange(
unsigned long *i,
int num)
00087 {
vtkByteSwap::Swap4LERange((
char *)i,num);};
00089
00091
00093
static void Swap8LERange(
char *c,
int num);
00094 static void Swap8LERange(
double *d,
int num)
00095 {
vtkByteSwap::Swap8LERange((
char *)d, num);};
00097
00099
00100
static void Swap2BE(
short *s);
00101
static void Swap2BE(
unsigned short *s);
00103
00105
00107
static void Swap4BE(
char *c);
00108 static void Swap4BE(
float *p) {
vtkByteSwap::Swap4BE((
char *)p);};
00109 static void Swap4BE(
int *i) {
vtkByteSwap::Swap4BE((
char *)i);};
00110 static void Swap4BE(
unsigned int *i) {
vtkByteSwap::Swap4BE((
char *)i);};
00111 static void Swap4BE(
long *i) {
vtkByteSwap::Swap4BE((
char *)i);};
00112 static void Swap4BE(
unsigned long *i) {
vtkByteSwap::Swap4BE((
char *)i);};
00114
00116
00118
static void Swap8BE(
char *c);
00119 static void Swap8BE(
double *d) {
vtkByteSwap::Swap8BE((
char *)d);};
00121
00123
00125
static void Swap2BERange(
char *c,
int num);
00126 static void Swap2BERange(
short *i,
int num)
00127 {
vtkByteSwap::Swap2BERange((
char *)i,num);};
00129
00131
00133
static void Swap4BERange(
char *c,
int num);
00134 static void Swap4BERange(
float *p,
int num)
00135 {
vtkByteSwap::Swap4BERange((
char *)p,num); };
00136 static void Swap4BERange(
int *i,
int num)
00137 {
vtkByteSwap::Swap4BERange((
char *)i,num); };
00138 static void Swap4BERange(
unsigned int *i,
int num)
00139 {
vtkByteSwap::Swap4BERange((
char *)i,num); };
00140 static void Swap4BERange(
long *i,
int num)
00141 {
vtkByteSwap::Swap4BERange((
char *)i,num); };
00142 static void Swap4BERange(
unsigned long *i,
int num)
00143 {
vtkByteSwap::Swap4BERange((
char *)i,num); };
00145
00146
#ifdef VTK_USE_64BIT_IDS
00147
static void Swap4BERange(
vtkIdType *i,
int num)
00148 {
vtkByteSwap::Swap4BERange((
char *)i,num); };
00149
#endif
00150
00152
00154
static void Swap8BERange(
char *c,
int num);
00155 static void Swap8BERange(
double *d,
int num)
00156 {
vtkByteSwap::Swap8BERange((
char *)d,num); };
00158
00160
00163
static void SwapWrite2BERange(
char *c,
int num,FILE *fp);
00164 static void SwapWrite2BERange(
short *i,
int num, FILE *fp)
00165 {
vtkByteSwap::SwapWrite2BERange((
char *)i,num,fp);};
00167
00169
00172
static void SwapWrite4BERange(
char *c,
int num,FILE *fp);
00173 static void SwapWrite4BERange(
float *p,
int num, FILE *fp)
00174 {
vtkByteSwap::SwapWrite4BERange((
char *)p,num,fp);};
00175 static void SwapWrite4BERange(
int *i,
int num,FILE *fp)
00176 {
vtkByteSwap::SwapWrite4BERange((
char *)i,num,fp);};
00177 static void SwapWrite4BERange(
unsigned int *i,
int num,FILE *fp)
00178 {
vtkByteSwap::SwapWrite4BERange((
char *)i,num,fp);};
00179 static void SwapWrite4BERange(
unsigned long *i,
int num, FILE *fp)
00180 {
vtkByteSwap::SwapWrite4BERange((
char *)i,num,fp);};
00181 static void SwapWrite4BERange(
long *i,
int num, FILE *fp)
00182 {
vtkByteSwap::SwapWrite4BERange((
char *)i,num,fp);};
00183
#ifdef VTK_USE_64BIT_IDS
00184
static void SwapWrite4BERange(
vtkIdType *i,
int num, FILE *fp)
00185 {
vtkByteSwap::SwapWrite4BERange((
char *)i,num,fp);};
00187
#endif
00188
00189
00192
static void SwapWrite8BERange(
char *c,
int num,FILE *fp);
00193 static void SwapWrite8BERange(
double *d,
int num, FILE *fp)
00194 {
vtkByteSwap::SwapWrite8BERange((
char *)d,num,fp);};
00196
00198
00201
static void SwapWrite2BERange(
char *c,
int num, ostream *fp);
00202 static void SwapWrite2BERange(
short *i,
int num, ostream *fp)
00203 {
vtkByteSwap::SwapWrite2BERange((
char *)i,num,fp);};
00205
00207
00210
static void SwapWrite4BERange(
char *c,
int num, ostream *fp);
00211 static void SwapWrite4BERange(
float *p,
int num, ostream *fp)
00212 {
vtkByteSwap::SwapWrite4BERange((
char *)p,num,fp);};
00213 static void SwapWrite4BERange(
int *i,
int num, ostream *fp)
00214 {
vtkByteSwap::SwapWrite4BERange((
char *)i,num,fp);};
00215 static void SwapWrite4BERange(
unsigned int *i,
int num, ostream *fp)
00216 {
vtkByteSwap::SwapWrite4BERange((
char *)i,num,fp);};
00217 static void SwapWrite4BERange(
unsigned long *i,
int num, ostream *fp)
00218 {
vtkByteSwap::SwapWrite4BERange((
char *)i,num,fp);};
00219 static void SwapWrite4BERange(
long *i,
int num, ostream *fp)
00220 {
vtkByteSwap::SwapWrite4BERange((
char *)i,num,fp);};
00221
#ifdef VTK_USE_64BIT_IDS
00222
static void SwapWrite4BERange(
vtkIdType *i,
int num, ostream *fp)
00223 {
vtkByteSwap::SwapWrite4BERange((
char *)i,num,fp);};
00225
#endif
00226
00227
00230
static void SwapWrite8BERange(
char *c,
int num, ostream *fp);
00231 static void SwapWrite8BERange(
double *d,
int num, ostream *fp)
00232 {
vtkByteSwap::SwapWrite8BERange((
char *)d,num,fp);};
00234
00237
static void SwapVoidRange(
void *buffer,
int numWords,
int wordSize);
00238
00239
00240
protected:
00241 vtkByteSwap() {};
00242 ~vtkByteSwap() {};
00243
00244
private:
00246
static void Swap2Bytes(
char* &data);
00247
00248
static void Swap4Bytes(
char* &data);
00249
00250
static void Swap8Bytes(
char* &data);
00251
00252
private:
00253 vtkByteSwap(
const vtkByteSwap&);
00254
void operator=(
const vtkByteSwap&);
00255 };
00256
00257
00258
inline void
00259 vtkByteSwap::Swap2Bytes(
char* &data)
00260 {
00261
char one_byte;
00262 one_byte = data[0]; data[0] = data[1]; data[1] = one_byte;
00263 }
00264
00265
inline void
00266 vtkByteSwap::Swap4Bytes(
char* &data)
00267 {
00268
char one_byte;
00269 one_byte = data[0]; data[0] = data[3]; data[3] = one_byte;
00270 one_byte = data[1]; data[1] = data[2]; data[2] = one_byte;
00271 }
00272
00273
inline void
00274 vtkByteSwap::Swap8Bytes(
char* &data)
00275 {
00276
char one_byte;
00277 one_byte = data[0]; data[0] = data[7]; data[7] = one_byte;
00278 one_byte = data[1]; data[1] = data[6]; data[6] = one_byte;
00279 one_byte = data[2]; data[2] = data[5]; data[5] = one_byte;
00280 one_byte = data[3]; data[3] = data[4]; data[4] = one_byte;
00281 }
00282
00283
#endif