made stream.read/write explicit instead of using a template

This commit is contained in:
Noel Berry
2022-02-11 15:19:35 -08:00
parent 51e80ec6a2
commit 0c809f8085
6 changed files with 253 additions and 153 deletions

View File

@ -73,3 +73,134 @@ size_t Stream::write(const String& string)
{
return write(string.begin(), string.length());
}
u8 Stream::read_u8(Endian endian)
{
u8 value; read_data(&value, sizeof(u8));
if (!Calc::is_endian(endian)) Calc::swap_endian(&value);
return value;
}
u16 Stream::read_u16(Endian endian)
{
u16 value; read_data(&value, sizeof(u16));
if (!Calc::is_endian(endian)) Calc::swap_endian(&value);
return value;
}
u32 Stream::read_u32(Endian endian)
{
u32 value; read_data(&value, sizeof(u32));
if (!Calc::is_endian(endian)) Calc::swap_endian(&value);
return value;
}
u64 Stream::read_u64(Endian endian)
{
u64 value; read_data(&value, sizeof(u64));
if (!Calc::is_endian(endian)) Calc::swap_endian(&value);
return value;
}
i8 Stream::read_i8(Endian endian)
{
i8 value; read_data(&value, sizeof(i8));
if (!Calc::is_endian(endian)) Calc::swap_endian(&value);
return value;
}
i16 Stream::read_i16(Endian endian)
{
i16 value; read_data(&value, sizeof(i16));
if (!Calc::is_endian(endian)) Calc::swap_endian(&value);
return value;
}
i32 Stream::read_i32(Endian endian)
{
i32 value; read_data(&value, sizeof(i32));
if (!Calc::is_endian(endian)) Calc::swap_endian(&value);
return value;
}
i64 Stream::read_i64(Endian endian)
{
i64 value; read_data(&value, sizeof(i64));
if (!Calc::is_endian(endian)) Calc::swap_endian(&value);
return value;
}
float Stream::read_f32(Endian endian)
{
float value; read_data(&value, sizeof(float));
if (!Calc::is_endian(endian)) Calc::swap_endian(&value);
return value;
}
double Stream::read_f64(Endian endian)
{
double value; read_data(&value, sizeof(double));
if (!Calc::is_endian(endian)) Calc::swap_endian(&value);
return value;
}
size_t Stream::write_u8(u8 value, Endian endian)
{
if (!Calc::is_endian(endian)) Calc::swap_endian(&value);
return write_data(&value, sizeof(u8));
}
size_t Stream::write_u16(u16 value, Endian endian)
{
if (!Calc::is_endian(endian)) Calc::swap_endian(&value);
return write_data(&value, sizeof(u16));
}
size_t Stream::write_u32(u32 value, Endian endian)
{
if (!Calc::is_endian(endian)) Calc::swap_endian(&value);
return write_data(&value, sizeof(u32));
}
size_t Stream::write_u64(u64 value, Endian endian)
{
if (!Calc::is_endian(endian)) Calc::swap_endian(&value);
return write_data(&value, sizeof(u64));
}
size_t Stream::write_i8(i8 value, Endian endian)
{
if (!Calc::is_endian(endian)) Calc::swap_endian(&value);
return write_data(&value, sizeof(i8));
}
size_t Stream::write_i16(i16 value, Endian endian)
{
if (!Calc::is_endian(endian)) Calc::swap_endian(&value);
return write_data(&value, sizeof(i16));
}
size_t Stream::write_i32(i32 value, Endian endian)
{
if (!Calc::is_endian(endian)) Calc::swap_endian(&value);
return write_data(&value, sizeof(i32));
}
size_t Stream::write_i64(i64 value, Endian endian)
{
if (!Calc::is_endian(endian)) Calc::swap_endian(&value);
return write_data(&value, sizeof(i64));
}
size_t Stream::write_f32(float value, Endian endian)
{
if (!Calc::is_endian(endian)) Calc::swap_endian(&value);
return write_data(&value, sizeof(float));
}
size_t Stream::write_f64(double value, Endian endian)
{
if (!Calc::is_endian(endian)) Calc::swap_endian(&value);
return write_data(&value, sizeof(double));
}