casacore
Loading...
Searching...
No Matches
IBMDataConversion.h
Go to the documentation of this file.
1// # IBMDataConversion.h: A class with virtual functions to convert IBM format
2// # Copyright (C) 1996,1999,2001
3// # Associated Universities, Inc. Washington DC, USA.
4// #
5// # This library is free software; you can redistribute it and/or modify it
6// # under the terms of the GNU Library General Public License as published by
7// # the Free Software Foundation; either version 2 of the License, or (at your
8// # option) any later version.
9// #
10// # This library is distributed in the hope that it will be useful, but WITHOUT
11// # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12// # FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
13// # License for more details.
14// #
15// # You should have received a copy of the GNU Library General Public License
16// # along with this library; if not, write to the Free Software Foundation,
17// # Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
18// #
19// # Correspondence concerning AIPS++ should be addressed as follows:
20// # Internet email: casa-feedback@nrao.edu.
21// # Postal address: AIPS++ Project Office
22// # National Radio Astronomy Observatory
23// # 520 Edgemont Road
24// # Charlottesville, VA 22903-2475 USA
25
26#ifndef CASA_IBMDATACONVERSION_H
27#define CASA_IBMDATACONVERSION_H
28
29// # Includes
30#include <casacore/casa/aips.h>
31#include <casacore/casa/OS/DataConversion.h>
32
33namespace casacore { // # NAMESPACE CASACORE - BEGIN
34
35// <summary>
36// A class with virtual functions to convert IBM format.
37// </summary>
38
39// <use visibility=export>
40
41// <reviewed reviewer="Friso Olnon" date="1996/11/06" tests="tDataConversion" demos="">
42// </reviewed>
43
44// <synopsis>
45// This class is a specialization of the abstract base class
46// <linkto class=DataConversion>DataConversion</linkto>.
47// It contains functions to convert data from/to the old IBM format
48// using the static functions in class <linkto class=IBMConversion>
49// IBMConversion</linkto>.
50// </synopsis>
51
52// <example>
53// See example in class <linkto class=DataConversion>DataConversion</linkto>.
54// </example>
55
56// <motivation>
57// This class is an addition to <linkto class=IBMConversion>IBMConversion
58// </linkto> to be able to use the conversion functions in a polymorphic way.
59// </motivation>
60
61// <todo asof="$DATE$">
62// <li> Support data type long double.
63// </todo>
64
66 public:
67 // Construct the object.
69
71
72 // Convert one value from IBM format to local format.
73 // The from and to buffer should not overlap.
74 // <note>
75 // The char version converts from EBCDIC to ASCII, while the
76 // unsigned char version is a simple copy.
77 // </note>
78 // <group>
79 size_t toLocal(char& to, const void* from) const override;
80 size_t toLocal(unsigned char& to, const void* from) const override;
81 size_t toLocal(short& to, const void* from) const override;
82 size_t toLocal(unsigned short& to, const void* from) const override;
83 size_t toLocal(int& to, const void* from) const override;
84 size_t toLocal(unsigned int& to, const void* from) const override;
85 size_t toLocal(Int64& to, const void* from) const override;
86 size_t toLocal(uInt64& to, const void* from) const override;
87 size_t toLocal(float& to, const void* from) const override;
88 size_t toLocal(double& to, const void* from) const override;
89 // </group>
90
91 // Convert nr values from IBM format to local format.
92 // The from and to buffer should not overlap.
93 // <note>
94 // The char version converts from EBCDIC to ASCII, while the
95 // unsigned char version is a simple copy.
96 // </note>
97 // <group>
98 size_t toLocal(char* to, const void* from, size_t nr) const override;
99 size_t toLocal(unsigned char* to, const void* from, size_t nr) const override;
100 size_t toLocal(short* to, const void* from, size_t nr) const override;
101 size_t toLocal(unsigned short* to, const void* from, size_t nr) const override;
102 size_t toLocal(int* to, const void* from, size_t nr) const override;
103 size_t toLocal(unsigned int* to, const void* from, size_t nr) const override;
104 size_t toLocal(Int64* to, const void* from, size_t nr) const override;
105 size_t toLocal(uInt64* to, const void* from, size_t nr) const override;
106 size_t toLocal(float* to, const void* from, size_t nr) const override;
107 size_t toLocal(double* to, const void* from, size_t nr) const override;
108 // </group>
109
110 // Convert one value from local format to IBM format.
111 // The from and to buffer should not overlap.
112 // <note>
113 // The char version converts from ASCII to EBCDIC, while the
114 // unsigned char version is a simple copy.
115 // </note>
116 // <group>
117 size_t fromLocal(void* to, char from) const override;
118 size_t fromLocal(void* to, unsigned char from) const override;
119 size_t fromLocal(void* to, short from) const override;
120 size_t fromLocal(void* to, unsigned short from) const override;
121 size_t fromLocal(void* to, int from) const override;
122 size_t fromLocal(void* to, unsigned int from) const override;
123 size_t fromLocal(void* to, Int64 from) const override;
124 size_t fromLocal(void* to, uInt64 from) const override;
125 size_t fromLocal(void* to, float from) const override;
126 size_t fromLocal(void* to, double from) const override;
127 // </group>
128
129 // Convert nr values from local format to IBM format.
130 // The from and to buffer should not overlap.
131 // <note>
132 // The char version converts from ASCII to EBCDIC, while the
133 // unsigned char version is a simple copy.
134 // </note>
135 // <group>
136 size_t fromLocal(void* to, const char* from, size_t nr) const override;
137 size_t fromLocal(void* to, const unsigned char* from, size_t nr) const override;
138 size_t fromLocal(void* to, const short* from, size_t nr) const override;
139 size_t fromLocal(void* to, const unsigned short* from, size_t nr) const override;
140 size_t fromLocal(void* to, const int* from, size_t nr) const override;
141 size_t fromLocal(void* to, const unsigned int* from, size_t nr) const override;
142 size_t fromLocal(void* to, const Int64* from, size_t nr) const override;
143 size_t fromLocal(void* to, const uInt64* from, size_t nr) const override;
144 size_t fromLocal(void* to, const float* from, size_t nr) const override;
145 size_t fromLocal(void* to, const double* from, size_t nr) const override;
146 // </group>
147
148 // Determine if the data for a data type can be simply copied, thus
149 // if no conversion is needed.
150 // <group>
151 Bool canCopy(const char*) const override;
152 Bool canCopy(const unsigned char*) const override;
153 Bool canCopy(const short*) const override;
154 Bool canCopy(const unsigned short*) const override;
155 Bool canCopy(const int*) const override;
156 Bool canCopy(const unsigned int*) const override;
157 Bool canCopy(const Int64*) const override;
158 Bool canCopy(const uInt64*) const override;
159 Bool canCopy(const float*) const override;
160 Bool canCopy(const double*) const override;
161 // </group>
162
163 // Get the external size of the data type.
164 // <group>
165 unsigned int externalSize(const char*) const override;
166 unsigned int externalSize(const unsigned char*) const override;
167 unsigned int externalSize(const short*) const override;
168 unsigned int externalSize(const unsigned short*) const override;
169 unsigned int externalSize(const int*) const override;
170 unsigned int externalSize(const unsigned int*) const override;
171 unsigned int externalSize(const Int64*) const override;
172 unsigned int externalSize(const uInt64*) const override;
173 unsigned int externalSize(const float*) const override;
174 unsigned int externalSize(const double*) const override;
175 // </group>
176};
177
179
180} // namespace casacore
181
182#endif
DataConversion()
Construct the object.
Bool canCopy(const short *) const override
size_t toLocal(unsigned int &to, const void *from) const override
size_t fromLocal(void *to, const double *from, size_t nr) const override
Bool canCopy(const int *) const override
size_t toLocal(short *to, const void *from, size_t nr) const override
unsigned int externalSize(const unsigned char *) const override
size_t fromLocal(void *to, short from) const override
unsigned int externalSize(const unsigned short *) const override
unsigned int externalSize(const unsigned int *) const override
unsigned int externalSize(const char *) const override
Get the external size of the data type.
size_t fromLocal(void *to, const unsigned int *from, size_t nr) const override
unsigned int externalSize(const int *) const override
size_t fromLocal(void *to, const uInt64 *from, size_t nr) const override
size_t fromLocal(void *to, const unsigned char *from, size_t nr) const override
size_t toLocal(Int64 *to, const void *from, size_t nr) const override
size_t fromLocal(void *to, Int64 from) const override
size_t toLocal(unsigned short *to, const void *from, size_t nr) const override
Bool canCopy(const unsigned char *) const override
size_t fromLocal(void *to, unsigned char from) const override
size_t fromLocal(void *to, float from) const override
size_t toLocal(char *to, const void *from, size_t nr) const override
Convert nr values from IBM format to local format.
Bool canCopy(const float *) const override
Bool canCopy(const char *) const override
Determine if the data for a data type can be simply copied, thus if no conversion is needed.
size_t fromLocal(void *to, const float *from, size_t nr) const override
size_t toLocal(char &to, const void *from) const override
Convert one value from IBM format to local format.
size_t toLocal(double *to, const void *from, size_t nr) const override
size_t toLocal(uInt64 *to, const void *from, size_t nr) const override
size_t toLocal(unsigned char *to, const void *from, size_t nr) const override
size_t fromLocal(void *to, double from) const override
size_t toLocal(int *to, const void *from, size_t nr) const override
size_t fromLocal(void *to, unsigned short from) const override
size_t fromLocal(void *to, int from) const override
unsigned int externalSize(const float *) const override
unsigned int externalSize(const short *) const override
size_t fromLocal(void *to, const char *from, size_t nr) const override
Convert nr values from local format to IBM format.
Bool canCopy(const unsigned int *) const override
size_t toLocal(float *to, const void *from, size_t nr) const override
unsigned int externalSize(const double *) const override
size_t toLocal(double &to, const void *from) const override
size_t fromLocal(void *to, const short *from, size_t nr) const override
size_t toLocal(int &to, const void *from) const override
size_t toLocal(float &to, const void *from) const override
unsigned int externalSize(const uInt64 *) const override
size_t toLocal(Int64 &to, const void *from) const override
size_t fromLocal(void *to, const Int64 *from, size_t nr) const override
unsigned int externalSize(const Int64 *) const override
size_t fromLocal(void *to, uInt64 from) const override
Bool canCopy(const double *) const override
size_t toLocal(unsigned short &to, const void *from) const override
Bool canCopy(const uInt64 *) const override
size_t toLocal(unsigned int *to, const void *from, size_t nr) const override
size_t toLocal(uInt64 &to, const void *from) const override
size_t fromLocal(void *to, char from) const override
Convert one value from local format to IBM format.
size_t toLocal(short &to, const void *from) const override
size_t fromLocal(void *to, unsigned int from) const override
Bool canCopy(const unsigned short *) const override
IBMDataConversion()
Construct the object.
Bool canCopy(const Int64 *) const override
size_t toLocal(unsigned char &to, const void *from) const override
size_t fromLocal(void *to, const unsigned short *from, size_t nr) const override
size_t fromLocal(void *to, const int *from, size_t nr) const override
For temporary backward namespace compatibility, use casa as alias for casacore.
Definition mainpage.dox:28
long long Int64
Define the extra non-standard types used by Casacore (like proposed uSize, Size).
Definition aipsxtype.h:36
bool Bool
Define the standard types used by Casacore.
Definition aipstype.h:40
unsigned long long uInt64
Definition aipsxtype.h:37