22 #ifndef INCLUDE_OLA_IO_BIGENDIANSTREAM_H_
23 #define INCLUDE_OLA_IO_BIGENDIANSTREAM_H_
25 #include <ola/io/InputStream.h>
26 #include <ola/io/OutputStream.h>
27 #include <ola/network/NetworkUtils.h>
51 bool operator>>(int8_t &val) {
return ExtractAndConvert(&val); }
52 bool operator>>(uint8_t &val) {
return ExtractAndConvert(&val); }
53 bool operator>>(int16_t &val) {
return ExtractAndConvert(&val); }
54 bool operator>>(uint16_t &val) {
return ExtractAndConvert(&val); }
55 bool operator>>(int32_t &val) {
return ExtractAndConvert(&val); }
56 bool operator>>(uint32_t &val) {
return ExtractAndConvert(&val); }
58 unsigned int ReadString(
string *output,
unsigned int size) {
59 return m_stream->ReadString(output, size);
66 bool ExtractAndConvert(T *val) {
67 bool ok = (*m_stream) >> *val;
68 *val = ola::network::NetworkToHost(*val);
84 : m_input_stream(buffer),
85 m_adaptor(&m_input_stream) {
89 bool operator>>(int8_t &val) {
return m_adaptor >> val; }
90 bool operator>>(uint8_t &val) {
return m_adaptor >> val; }
91 bool operator>>(int16_t &val) {
return m_adaptor >> val; }
92 bool operator>>(uint16_t &val) {
return m_adaptor >> val; }
93 bool operator>>(int32_t &val) {
return m_adaptor >> val; }
94 bool operator>>(uint32_t &val) {
return m_adaptor >> val; }
96 unsigned int ReadString(
string *output,
unsigned int size) {
97 return m_adaptor.ReadString(output, size);
125 void Write(
const uint8_t *data,
unsigned int length) {
126 m_stream->Write(data, length);
130 return ConvertAndWrite(val);
134 return ConvertAndWrite(val);
138 return ConvertAndWrite(val);
142 return ConvertAndWrite(val);
146 return ConvertAndWrite(val);
150 return ConvertAndWrite(val);
156 template <
typename T>
158 (*m_stream) << ola::network::HostToNetwork(val);
175 : m_output_stream(buffer),
176 m_adaptor(&m_output_stream) {
180 void Write(
const uint8_t *data,
unsigned int length) {
181 m_adaptor.Write(data, length);
195 template <
typename T>
206 #endif // INCLUDE_OLA_IO_BIGENDIANSTREAM_H_