1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| #include "serialize.h"
Serialization::Serialization(const char* nomFichier): m_nomFichier(nomFichier), m_little(testLittleEndian())
{
}
Serialization::~Serialization()
{
}
std::ostream& operator<<( std::ostream &flux, Serialization const& seriaz)
{
std::copy(seriaz.m_buffer.begin(), seriaz.m_buffer.end(), std::ostreambuf_iterator<char>(flux));
return flux;
}
int Serialization::getSizeBuffer()
{
return m_buffer.size();
}
bool Serialization::testLittleEndian()
{
unsigned char test[2] = { 0x1, 0x0};
return *(short *) test;
}
int Serialization::save()
{
std::ofstream file (m_nomFichier, std::ios::in|std::ios::binary|std::ios::trunc);
std::copy(m_buffer.begin(), m_buffer.end(), std::ostreambuf_iterator<char>(file));
file.close();
return 0;
}
int Serialization::load()
{
std::ifstream file (m_nomFichier, std::ios::out|std::ios::binary);
if(!file.is_open())
{
std::cout << "Erreur à l'ouverture du fichier " << m_nomFichier << std::endl;
return 1;
}
if(!m_buffer.empty()) m_buffer.clear();
std::copy(std::istream_iterator<char>(file), std::istream_iterator<char>(), std::back_inserter(m_buffer));
file.close();
return 0;
} |
Partager