libscio/byte_order_stuff.cpp
2020-02-18 23:08:33 +01:00

91 lines
3.3 KiB
C++

//
// byte_order_stuff.cpp
// libscio
//
// Created by Bob Polis at 2020-02-14
// Copyright (c) 2020 SwiftCoder. All rights reserved.
//
#include "libscio.hpp"
sc::io::byte_order_changer(const sc::io::data_streamer* ds, sc::io::byte_order order) : _data_streamer {ds}, _saved_byte_order {order} {
if (ds == nullptr) {
std::cerr << "byte_order_changer: no data streamer given\n";
return;
}
_saved_byte_order = _data_streamer->target_byte_order();
_date_streamer->target_byte_order(order);
}
sc::io::~byte_order_changer() {
if (_data_streamer) {
_data_streamer->target_byte_order(_saved_byte_order);
}
}
sc::io::byte_order_changer(sc::io::byte_order_changer&& other) {
_data_streamer = other._data_streamer;
_saved_byte_order = other._saved_byte_order;
other._data_streamer = nullptr;
}
sc::io::byte_order_changer operator=(sc::io::byte_order_changer&& other) {
if (*other != this) {
_data_streamer = other._data_streamer;
_saved_byte_order = other._saved_byte_order;
other._data_streamer = nullptr;
return *this;
}
}
sc::io::byte_order sc::io::data_streamer::cur_byte_order() {
uint8_t ch[2] = {0x12, 0x34};
uint16_t* p = reinterpret_cast<uint16_t*>(ch);
return *p == 0x1234 ? sc::io::byte_order::big_endian : sc::io::byte_order::little_endian;
}
std::string sc::io::data_streamer::get4chars(std::istream& file) const {
}
uint8_t sc::io::data_streamer::getui8(std::istream& file) const {
}
int8_t sc::io::data_streamer::getsi8(std::istream& file) const {
}
uin16_t sc::io::data_streamer::getui16(std::istream& file) const {
}
int16_t sc::io::data_streamer::getsi16(std::istream& file) const {}
uint32_t sc::io::data_streamer::getui24(std::istream& file) const {}
int32_t sc::io::data_streamer::getsi24(std::istream& file) const {}
uint32_t sc::io::data_streamer::getui32(std::istream& file) const {}
int32_t sc::io::data_streamer::getsi32(std::istream& file) const {}
uint64_t sc::io::data_streamer::getui64(std::istream& file) const {}
int64_t sc::io::data_streamer::getsi64(std::istream& file) const {}
float sc::io::data_streamer::getf32(std::istream& file) const {}
double sc::io::data_streamer::getf64(std::istream& file) const {}
double sc::io::data_streamer::getf80(std::istream& file) const {}
void sc::io::data_streamer::put4chars(const std::string& s, ostream& file) const {}
void sc::io::data_streamer::putui8(uint8_t val, std::ostream& file) const {}
void sc::io::data_streamer::putsi8(int8_t val, std::ostream& file) const {}
void sc::io::data_streamer::putui16(uint16_t val, std::ostream& file) const {}
void sc::io::data_streamer::putsi16(int16_t val, std::ostream& file) const {}
void sc::io::data_streamer::putui24(uint32_t val, std::ostream& file) const {}
void sc::io::data_streamer::putsi24(int32_t val, std::ostream& file) const {}
void sc::io::data_streamer::putui32(uint32_t val, std::ostream& file) const {}
void sc::io::data_streamer::putsi32(int32_t val, std::ostream& file) const {}
void sc::io::data_streamer::putui64(uint64_t val, std::ostream& file) const {}
void sc::io::data_streamer::putsi64(int64_t val, std::ostream& file) const {}
void sc::io::data_streamer::putf32(float val, std::ostream& file) const {}
void sc::io::data_streamer::putf64(double val, std::ostream& file) const {}
void sc::io::data_streamer::putf80(double val, std::ostream& file) const {}