Exemplo n.º 1
0
void write_rat_header(std::ofstream& file, const std::vector<uint32_t>& sizes,
                      const uint32_t var, const uint32_t type,
                      const std::string& info)
{
    using tools::endian_reverse_inplace;
    using std::string;

    auto write = [&file](uint32_t x) {
        endian_reverse_inplace(x);
        file.write(reinterpret_cast<const char*>(&x), sizeof(x));
    };

    const uint32_t dim = sizes.size();

    write(dim);
    for (auto sz : sizes) {
        write(sz);
    }
    write(var);
    write(type);

    write(0);
    write(0);
    write(0);
    write(0);

    string _info = string(80, ' ');
    boost::copy(string(info, 0, 80), _info.begin());

    file << _info;
}