37 #ifndef AIMS_IO_DEFAULTITEMR_H
38 #define AIMS_IO_DEFAULTITEMR_H
61 virtual void read( std::istream & is, T& item )
const
62 {
read( is, &item, 1 ); }
63 virtual void read( std::istream & is, T* pitem,
size_t n )
const;
65 bool bswap =
false )
const;
66 inline void read(
const std::string &istring, T &item )
const
68 inline void read(
const std::string &istring, T *pitem,
size_t n )
const
80 virtual void read( std::istream & is, T& item )
const;
81 virtual void read( std::istream & is, T* pitem,
size_t n )
const;
82 inline void read(
const std::string &istring, T &item )
const
84 inline void read(
const std::string &istring, T *pitem,
size_t n )
const
96 virtual void read( std::istream & is, T& item )
const
97 {
read( is, &item, 1 ); }
98 virtual void read( std::istream & is, T* pitem,
size_t n )
const;
99 inline void read(
const std::string &istring, T &item )
const
101 inline void read(
const std::string &istring, T *pitem,
size_t n )
const
106 #ifndef DOXYGEN_HIDE_INTERNAL_CLASSES
109 template <
class T,
int D>
118 {
read( is, &item, 1 ); }
123 bool bswap =
false )
const;
124 inline void read(
const std::string &istring, T &item )
const
126 inline void read(
const std::string &istring, T *pitem,
size_t n )
const
132 template <
class T,
int D>
141 {
read( is, &item, 1 ); }
144 inline void read(
const std::string &istring, T &item )
const
146 inline void read(
const std::string &istring, T *pitem,
size_t n )
const
153 template<
class T> ItemReader<T>*
157 if( openmode ==
"ascii" )
165 template <
class T>
inline void
168 is.read( (
char *) pitem,
sizeof(T) * n );
172 template <
class T>
inline
175 carto::StreamUtil::skip( is,
" \t\n\r,",
true );
180 template <
class T>
inline
185 for(
size_t i=0; i<n; ++i, ++ptr )
190 template <
class T>
inline
194 is.read( (
char *) pitem,
sizeof(T) * n );
195 byte* ptr = (
byte*) pitem;
196 for(
size_t k=0; k<n*
sizeof(T); k+=
sizeof(T) )
197 for(
size_t b=0; b<
sizeof(T)/2; ++b )
198 std::swap( ptr[k+b], ptr[k+
sizeof(T)-1-b] );
208 if( openmode ==
"ascii" )
216 template <
class T,
int D>
inline
224 for(
size_t p=0; p<n; ++p, ++ptr )
226 ir.
read( is, &(*ptr)[0], D );
230 template <
class T,
int D>
inline void
238 for(
size_t p=0; p<n; ++p, ++ptr )
240 ir.
read( is, &(*ptr)[0], D );
258 template <>
inline void
264 template <>
inline void
270 template <>
inline void
276 template <>
inline void
286 is.read( (
char *) pitem, n );
295 is.read( (
char *) pitem, n );
300 #if !defined(__sun__) || !defined(_CHAR_IS_SIGNED)
306 is.read( (
char *) pitem, n );
315 is.read( (
char *) pitem, n );
323 is.read( (
char *) pitem, n );
324 byte *ptr = (
byte*) pitem;
325 for(
size_t k=0; k<n*
sizeof(
cfloat); k+=
sizeof(float) )
326 for(
size_t b=0; b<
sizeof(float)/2; ++b )
327 std::swap( ptr[k+b], ptr[k+
sizeof(
float)-1-b] );
331 template <>
inline void
335 is.read( (
char *) pitem, n );
336 byte* ptr = (
byte*) pitem;
337 for(
size_t k=0; k<n*
sizeof(
cdouble); k+=
sizeof(float) )
338 for(
size_t b=0; b<
sizeof(double)/2; ++b )
339 std::swap( ptr[k+b], ptr[k+
sizeof(
double)-1-b] );
virtual ~DefaultAsciiItemReader()
void read(const std::string &istring, T *pitem, size_t n) const
void read(const std::string &istring, T &item) const
virtual void read(std::istream &is, T &item) const
void read(const std::string &istring, T &item) const
virtual ~DefaultBSwapItemReader()
void read(const std::string &istring, T *pitem, size_t n) const
virtual void read(std::istream &is, AimsVector< T, D > &item) const
virtual ~DefaultBSwapItemReader()
virtual void read(std::istream &is, T &item) const
void read(const std::string &istring, T *pitem, size_t n) const
void read(const std::string &istring, T &item) const
virtual ~DefaultItemReader()
void read(const std::string &istring, T *pitem, size_t n) const
void read(const std::string &istring, T &item) const
virtual void read(std::istream &is, AimsVector< T, D > &item) const
Default low-levels readers.
void read(const std::string &istring, T *pitem, size_t n) const
virtual ItemReader< T > * reader(const std::string &openmode="binar", bool bswap=false) const
void read(const std::string &istring, T &item) const
virtual ~DefaultItemReader()
virtual void read(std::istream &is, T &item) const
Low-level "small item" reader, used by higher-level file readers.
virtual void read(std::istream &is, T &item) const
The class for EcatSino data write operation.
std::complex< double > cdouble
std::complex< float > cfloat