VTK
dox
Common
Core
vtkByteSwap.h
Go to the documentation of this file.
1
/*=========================================================================
2
3
Program: Visualization Toolkit
4
Module: vtkByteSwap.h
5
6
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7
All rights reserved.
8
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10
This software is distributed WITHOUT ANY WARRANTY; without even
11
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12
PURPOSE. See the above copyright notice for more information.
13
14
=========================================================================*/
27
#ifndef vtkByteSwap_h
28
#define vtkByteSwap_h
29
30
#include "vtkCommonCoreModule.h"
// For export macro
31
#include "
vtkObject.h
"
32
33
class
VTKCOMMONCORE_EXPORT
vtkByteSwap
:
public
vtkObject
34
{
35
public
:
36
static
vtkByteSwap
*
New
();
37
vtkTypeMacro(
vtkByteSwap
,
vtkObject
);
38
40
45
#define VTK_BYTE_SWAP_DECL(T) \
46
static void SwapLE(T* p); \
47
static void SwapBE(T* p); \
48
static void SwapLERange(T* p, size_t num); \
49
static void SwapBERange(T* p, size_t num); \
50
static bool SwapLERangeWrite(const T* p, size_t num, FILE* file); \
51
static bool SwapBERangeWrite(const T* p, size_t num, FILE* file); \
52
static void SwapLERangeWrite(const T* p, size_t num, ostream* os); \
53
static void SwapBERangeWrite(const T* p, size_t num, ostream* os)
54
VTK_BYTE_SWAP_DECL
(
float
);
55
VTK_BYTE_SWAP_DECL
(
double
);
56
VTK_BYTE_SWAP_DECL
(
char
);
57
VTK_BYTE_SWAP_DECL
(
short
);
58
VTK_BYTE_SWAP_DECL
(
int
);
59
VTK_BYTE_SWAP_DECL
(
long
);
60
VTK_BYTE_SWAP_DECL
(
long
long
);
61
VTK_BYTE_SWAP_DECL
(
signed
char
);
62
VTK_BYTE_SWAP_DECL
(
unsigned
char
);
63
VTK_BYTE_SWAP_DECL
(
unsigned
short
);
64
VTK_BYTE_SWAP_DECL
(
unsigned
int
);
65
VTK_BYTE_SWAP_DECL
(
unsigned
long
);
66
VTK_BYTE_SWAP_DECL
(
unsigned
long
long
);
67
#undef VTK_BYTE_SWAP_DECL
68
69
71
74
static
void
Swap2LE(
void
* p);
75
static
void
Swap4LE(
void
* p);
76
static
void
Swap8LE(
void
* p);
78
80
83
static
void
Swap2LERange(
void
* p,
size_t
num);
84
static
void
Swap4LERange(
void
* p,
size_t
num);
85
static
void
Swap8LERange(
void
* p,
size_t
num);
87
89
93
static
bool
SwapWrite2LERange(
void
const
* p,
size_t
num, FILE* f);
94
static
bool
SwapWrite4LERange(
void
const
* p,
size_t
num, FILE* f);
95
static
bool
SwapWrite8LERange(
void
const
* p,
size_t
num, FILE* f);
96
static
void
SwapWrite2LERange(
void
const
* p,
size_t
num, ostream* os);
97
static
void
SwapWrite4LERange(
void
const
* p,
size_t
num, ostream* os);
98
static
void
SwapWrite8LERange(
void
const
* p,
size_t
num, ostream* os);
100
102
105
static
void
Swap2BE(
void
* p);
106
static
void
Swap4BE(
void
* p);
107
static
void
Swap8BE(
void
* p);
109
111
114
static
void
Swap2BERange(
void
* p,
size_t
num);
115
static
void
Swap4BERange(
void
* p,
size_t
num);
116
static
void
Swap8BERange(
void
* p,
size_t
num);
118
120
124
static
bool
SwapWrite2BERange(
void
const
* p,
size_t
num, FILE* f);
125
static
bool
SwapWrite4BERange(
void
const
* p,
size_t
num, FILE* f);
126
static
bool
SwapWrite8BERange(
void
const
* p,
size_t
num, FILE* f);
127
static
void
SwapWrite2BERange(
void
const
* p,
size_t
num, ostream* os);
128
static
void
SwapWrite4BERange(
void
const
* p,
size_t
num, ostream* os);
129
static
void
SwapWrite8BERange(
void
const
* p,
size_t
num, ostream* os);
131
136
static
void
SwapVoidRange(
void
*buffer,
size_t
numWords,
size_t
wordSize);
137
138
protected
:
139
vtkByteSwap
();
140
~
vtkByteSwap
()
override
;
141
142
private
:
143
vtkByteSwap
(
const
vtkByteSwap
&) =
delete
;
144
void
operator=(
const
vtkByteSwap
&) =
delete
;
145
};
146
147
#endif
148
// VTK-HeaderTest-Exclude: vtkByteSwap.h
VTK_BYTE_SWAP_DECL
#define VTK_BYTE_SWAP_DECL(T)
Type-safe swap signatures to swap for storage in either Little Endian or Big Endian format.
Definition:
vtkByteSwap.h:45
vtkObject::New
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
vtkObject
abstract base class for most VTK objects
Definition:
vtkObject.h:59
vtkObject.h
vtkByteSwap
perform machine dependent byte swapping
Definition:
vtkByteSwap.h:33
Generated by
1.8.16