ConversionIO.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef CASA_CONVERSIONIO_H
00029 #define CASA_CONVERSIONIO_H
00030
00031 #include <casacore/casa/aips.h>
00032 #include <casacore/casa/IO/TypeIO.h>
00033 #include <casacore/casa/Utilities/CountedPtr.h>
00034
00035
00036
00037 #include <casacore/casa/BasicSL/Complex.h>
00038
00039 namespace casacore {
00040
00041 class DataConversion;
00042 class ByteIO;
00043 class String;
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074 class ConversionIO: public TypeIO
00075 {
00076 public:
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090 ConversionIO (DataConversion* dataConversion, ByteIO* byteIO,
00091 uInt bufferLength=4096, Bool takeOver=False);
00092
00093
00094 ConversionIO (const ConversionIO& conversionIO);
00095
00096
00097 ConversionIO& operator= (const ConversionIO& conversionIO);
00098
00099
00100 ~ConversionIO();
00101
00102
00103
00104
00105 virtual size_t write (size_t nvalues, const Bool* value);
00106 virtual size_t write (size_t nvalues, const Char* data);
00107 virtual size_t write (size_t nvalues, const uChar* data);
00108 virtual size_t write (size_t nvalues, const Short* data);
00109 virtual size_t write (size_t nvalues, const uShort* data);
00110 virtual size_t write (size_t nvalues, const Int* data);
00111 virtual size_t write (size_t nvalues, const uInt* data);
00112 virtual size_t write (size_t nvalues, const Int64* data);
00113 virtual size_t write (size_t nvalues, const uInt64* data);
00114 virtual size_t write (size_t nvalues, const Float* data);
00115 virtual size_t write (size_t nvalues, const Double* data);
00116 virtual size_t write (size_t nvalues, const Complex* value);
00117 virtual size_t write (size_t nvalues, const DComplex* value);
00118 virtual size_t write (size_t nvalues, const String* value);
00119
00120
00121
00122
00123
00124 virtual size_t read (size_t nvalues, Bool* value);
00125 virtual size_t read (size_t nvalues, Char* data);
00126 virtual size_t read (size_t nvalues, uChar* data);
00127 virtual size_t read (size_t nvalues, Short* data);
00128 virtual size_t read (size_t nvalues, uShort* data);
00129 virtual size_t read (size_t nvalues, Int* data);
00130 virtual size_t read (size_t nvalues, uInt* data);
00131 virtual size_t read (size_t nvalues, Int64* data);
00132 virtual size_t read (size_t nvalues, uInt64* data);
00133 virtual size_t read (size_t nvalues, Float* data);
00134 virtual size_t read (size_t nvalues, Double* data);
00135 virtual size_t read (size_t nvalues, Complex* value);
00136 virtual size_t read (size_t nvalues, DComplex* value);
00137 virtual size_t read (size_t nvalues, String* value);
00138
00139
00140 private:
00141
00142 void init();
00143
00144
00145
00146 CountedPtr<DataConversion> itsConversion;
00147 uInt itsSizeChar;
00148 uInt itsSizeuChar;
00149 uInt itsSizeShort;
00150 uInt itsSizeuShort;
00151 uInt itsSizeInt;
00152 uInt itsSizeuInt;
00153 uInt itsSizeInt64;
00154 uInt itsSizeuInt64;
00155 uInt itsSizeFloat;
00156 uInt itsSizeDouble;
00157 Bool itsCopyChar;
00158 Bool itsCopyuChar;
00159 Bool itsCopyShort;
00160 Bool itsCopyuShort;
00161 Bool itsCopyInt;
00162 Bool itsCopyuInt;
00163 Bool itsCopyInt64;
00164 Bool itsCopyuInt64;
00165 Bool itsCopyFloat;
00166 Bool itsCopyDouble;
00167
00168 char* itsBuffer;
00169 uInt itsBufferLength;
00170 };
00171
00172
00173
00174 }
00175
00176 #endif