47 ~BigEndianInputStreamAdaptor() {}
49 bool operator>>(int8_t &val) {
return ExtractAndConvert(&val); }
50 bool operator>>(uint8_t &val) {
return ExtractAndConvert(&val); }
51 bool operator>>(int16_t &val) {
return ExtractAndConvert(&val); }
52 bool operator>>(uint16_t &val) {
return ExtractAndConvert(&val); }
53 bool operator>>(int32_t &val) {
return ExtractAndConvert(&val); }
54 bool operator>>(uint32_t &val) {
return ExtractAndConvert(&val); }
56 unsigned int ReadString(std::string *output,
unsigned int size) {
57 return m_stream->ReadString(output, size);
64 bool ExtractAndConvert(T *val) {
65 bool ok = (*m_stream) >> *val;
70 BigEndianInputStreamAdaptor(
const BigEndianInputStreamAdaptor&);
71 BigEndianInputStreamAdaptor& operator=(
const BigEndianInputStreamAdaptor&);
82 : m_input_stream(buffer),
83 m_adaptor(&m_input_stream) {
85 ~BigEndianInputStream() {}
87 bool operator>>(int8_t &val) {
return m_adaptor >> val; }
88 bool operator>>(uint8_t &val) {
return m_adaptor >> val; }
89 bool operator>>(int16_t &val) {
return m_adaptor >> val; }
90 bool operator>>(uint16_t &val) {
return m_adaptor >> val; }
91 bool operator>>(int32_t &val) {
return m_adaptor >> val; }
92 bool operator>>(uint32_t &val) {
return m_adaptor >> val; }
94 unsigned int ReadString(std::string *output,
unsigned int size) {
95 return m_adaptor.ReadString(output, size);
102 BigEndianInputStream(
const BigEndianInputStream&);
103 BigEndianInputStream& operator=(
const BigEndianInputStream&);
121 ~BigEndianOutputStreamAdaptor() {}
123 void Write(
const uint8_t *data,
unsigned int length) {
124 m_stream->Write(data, length);
127 BigEndianOutputStreamAdaptor& operator<<(int8_t val) {
128 return ConvertAndWrite(val);
131 BigEndianOutputStreamAdaptor& operator<<(uint8_t val) {
132 return ConvertAndWrite(val);
135 BigEndianOutputStreamAdaptor& operator<<(int16_t val) {
136 return ConvertAndWrite(val);
139 BigEndianOutputStreamAdaptor& operator<<(uint16_t val) {
140 return ConvertAndWrite(val);
143 BigEndianOutputStreamAdaptor& operator<<(int32_t val) {
144 return ConvertAndWrite(val);
147 BigEndianOutputStreamAdaptor& operator<<(uint32_t val) {
148 return ConvertAndWrite(val);
154 template <
typename T>
155 BigEndianOutputStreamAdaptor& ConvertAndWrite(
const T &val) {
160 BigEndianOutputStreamAdaptor(
const BigEndianOutputStreamAdaptor&);
161 BigEndianOutputStreamAdaptor& operator=(
162 const BigEndianOutputStreamAdaptor&);
173 : m_output_stream(buffer),
174 m_adaptor(&m_output_stream) {
176 ~BigEndianOutputStream() {}
178 void Write(
const uint8_t *data,
unsigned int length) {
179 m_adaptor.Write(data, length);
182 BigEndianOutputStream& operator<<(int8_t val) {
return Output(val); }
183 BigEndianOutputStream& operator<<(uint8_t val) {
return Output(val); }
184 BigEndianOutputStream& operator<<(int16_t val) {
return Output(val); }
185 BigEndianOutputStream& operator<<(uint16_t val) {
return Output(val); }
186 BigEndianOutputStream& operator<<(int32_t val) {
return Output(val); }
187 BigEndianOutputStream& operator<<(uint32_t val) {
return Output(val); }
193 template <
typename T>
194 BigEndianOutputStream& Output(T val) {
199 BigEndianOutputStream(
const BigEndianOutputStream&);
200 BigEndianOutputStream& operator=(
const BigEndianOutputStream&);