Nazara Engine  0.4
A fast, complete, cross-platform API designed for game development
SerializationContext.hpp
1 // Copyright (C) 2017 Jérôme Leclercq
2 // This file is part of the "Nazara Engine - Core module"
3 // For conditions of distribution and use, see copyright notice in Config.hpp
4 
5 #pragma once
6 
7 #ifndef NAZARA_SERIALIZATION_HPP
8 #define NAZARA_SERIALIZATION_HPP
9 
10 #include <Nazara/Prerequesites.hpp>
11 #include <Nazara/Core/Config.hpp>
12 #include <Nazara/Core/Endianness.hpp>
13 
14 namespace Nz
15 {
16  class Stream;
17 
18  struct NAZARA_CORE_API SerializationContext
19  {
20  Stream* stream;
21  Endianness endianness = Endianness_BigEndian; //< Default to Big Endian encoding
22  UInt8 currentBitPos = 8; //< 8 means no bit is currently wrote
23  UInt8 currentByte; //< Undefined value, will be initialized at the first bit write
24 
25  void FlushBits();
26  inline void ResetBitPosition();
27  };
28 }
29 
30 #include <Nazara/Core/SerializationContext.inl>
31 
32 #endif // NAZARA_SERIALIZATION_HPP
TODO: Inherit SoundEmitter from Node.
Definition: Algorithm.hpp:12
Structure containing a serialization/unserialization context states.
Definition: SerializationContext.hpp:18
Core class that represents a stream.
Definition: Stream.hpp:19