Core/Serialization: Add bit serialization

Former-commit-id: dbaf3a2d40a85955b4d48efba72a5df9d92d0eb1
This commit is contained in:
Lynix
2015-11-23 13:45:35 +01:00
parent c93e4e901e
commit 7f220ce48c
6 changed files with 58 additions and 11 deletions

View File

@@ -2,16 +2,29 @@
// This file is part of the "Nazara Engine - Core module"
// For conditions of distribution and use, see copyright notice in Config.hpp
#include <Nazara/Core/Algorithm.hpp>
#include <Nazara/Core/Debug.hpp>
namespace Nz
{
inline Serializer::Serializer(Stream& stream)
{
m_serializationContext.currentBitPos = 8;
m_serializationContext.endianness = Endianness_BigEndian;
m_serializationContext.stream = &stream;
}
inline Serializer::~Serializer()
{
if (m_serializationContext.currentBitPos != 8)
{
m_serializationContext.currentBitPos = 8; //< To prevent Serialize to flush bits itself
if (!Serialize<UInt8>(m_serializationContext, m_serializationContext.currentByte))
NazaraWarning("Failed to flush bits at serializer destruction");
}
}
inline Endianness Serializer::GetDataEndianness() const
{
return m_serializationContext.endianness;
@@ -43,3 +56,4 @@ namespace Nz
}
#include <Nazara/Core/DebugOff.hpp>
#include "Serializer.hpp"