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 150 #endif // DOXYGEN_HIDE_INTERNAL_CLASSES 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 );
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 );
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 );
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 void read(std::istream &is, T &item) const
void read(const std::string &istring, T *pitem, size_t n) const
The class for EcatSino data write operation.
Default low-levels readers.
void read(const std::string &istring, T *pitem, size_t n) const
std::complex< float > cfloat
void read(const std::string &istring, T &item) const
void read(const std::string &istring, T &item) 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 *pitem, size_t n) const
virtual ~DefaultBSwapItemReader()
virtual void read(std::istream &is, AimsVector< T, D > &item) const
void read(const std::string &istring, T *pitem, size_t n) const
virtual void read(std::istream &is, AimsVector< T, D > &item) 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 *pitem, size_t n) const
virtual ~DefaultItemReader()
std::complex< double > cdouble
virtual ~DefaultItemReader()
virtual ItemReader< T > * reader(const std::string &openmode="binar", bool bswap=false) const
Low-level "small item" reader, used by higher-level file readers.
void read(const std::string &istring, T &item) const
virtual ~DefaultAsciiItemReader()
virtual ~DefaultBSwapItemReader()
virtual void read(std::istream &is, T &item) const