29 #ifndef ENDIAN_FSTREAM_H
30 #define ENDIAN_FSTREAM_H
40 iendianfstream(
const char *_Filename, ios_base::openmode _Mode = ios_base::in)
41 : ifstream(_Filename, _Mode)
63 get(
reinterpret_cast<char&
>(value));
69 read(reinterpret_cast<char*>(&value),
sizeof(value));
71 swap_bytes(reinterpret_cast<unsigned char*>(&value),
sizeof(value));
78 read(reinterpret_cast<char*>(&value),
sizeof(value));
80 swap_bytes(reinterpret_cast<unsigned char*>(&value),
sizeof(value));
87 read(reinterpret_cast<char*>(&value),
sizeof(value));
89 swap_bytes(reinterpret_cast<unsigned char*>(&value),
sizeof(value));
96 read(reinterpret_cast<char*>(&value),
sizeof(value));
98 swap_bytes(reinterpret_cast<unsigned char*>(&value),
sizeof(value));
105 read(reinterpret_cast<char*>(&value),
sizeof(value));
107 swap_bytes(reinterpret_cast<unsigned char*>(&value),
sizeof(value));
114 read(reinterpret_cast<char*>(&value),
sizeof(value));
116 swap_bytes(reinterpret_cast<unsigned char*>(&value),
sizeof(value));
123 read(reinterpret_cast<char*>(&value),
sizeof(value));
125 swap_bytes(reinterpret_cast<unsigned char*>(&value),
sizeof(value));
132 read(reinterpret_cast<char*>(&value),
sizeof(value));
134 swap_bytes(reinterpret_cast<unsigned char*>(&value),
sizeof(value));
141 read(reinterpret_cast<char*>(&value),
sizeof(value));
143 swap_bytes(reinterpret_cast<unsigned char*>(&value),
sizeof(value));
150 read(reinterpret_cast<char*>(&value[0]), value.size());
151 string::size_type pos = value.find_first_of(
'\0');
152 if(pos != string::npos)
160 unsigned char color[4];
161 read(reinterpret_cast<char*>(&color),
sizeof(color));
185 value.
column = color[0] - 0x64;
191 for(
int i = 0; i < 3; ++i)
192 value.
custom[i] = color[i];
201 else if(color[0] == 0xF7)
221 register int j = size - 1;
224 std::swap(data[i], data[j]);
231 #endif // ENDIAN_FSTREAM_H
iendianfstream & operator>>(string &value)
Definition: endianfstream.hh:148
iendianfstream & operator>>(unsigned int &value)
Definition: endianfstream.hh:94
iendianfstream & operator>>(unsigned long &value)
Definition: endianfstream.hh:112
iendianfstream & operator>>(char &value)
Definition: endianfstream.hh:55
iendianfstream & operator>>(bool &value)
Definition: endianfstream.hh:47
Definition: OriginObj.h:55
Definition: endianfstream.hh:35
Definition: OriginObj.h:55
iendianfstream & operator>>(short &value)
Definition: endianfstream.hh:67
Definition: endianfstream.hh:37
bool bigEndian
Definition: endianfstream.hh:217
iendianfstream & operator>>(float &value)
Definition: endianfstream.hh:121
ColorType type
Definition: OriginObj.h:60
Definition: OriginObj.h:53
void swap_bytes(unsigned char *data, int size)
Definition: endianfstream.hh:218
iendianfstream & operator>>(int &value)
Definition: endianfstream.hh:85
unsigned char custom[3]
Definition: OriginObj.h:64
Definition: OriginObj.h:55
iendianfstream & operator>>(unsigned char &value)
Definition: endianfstream.hh:61
iendianfstream & operator>>(long &value)
Definition: endianfstream.hh:103
Definition: OriginObj.h:55
iendianfstream & operator>>(double &value)
Definition: endianfstream.hh:130
Definition: OriginObj.h:55
iendianfstream & operator>>(Origin::Color &value)
Definition: endianfstream.hh:158
iendianfstream(const char *_Filename, ios_base::openmode _Mode=ios_base::in)
Definition: endianfstream.hh:40
unsigned char regular
Definition: OriginObj.h:63
Definition: OriginObj.h:55
iendianfstream & operator>>(unsigned short &value)
Definition: endianfstream.hh:76
Definition: OriginObj.h:55
unsigned char column
Definition: OriginObj.h:66
unsigned char starting
Definition: OriginObj.h:65
Definition: OriginObj.h:55
iendianfstream & operator>>(long double &value)
Definition: endianfstream.hh:139