diff --git a/EMU7800/Core/SerializationContext.cs b/EMU7800/Core/SerializationContext.cs deleted file mode 100644 index 2ff20a40d7..0000000000 --- a/EMU7800/Core/SerializationContext.cs +++ /dev/null @@ -1,232 +0,0 @@ -using System; -using System.IO; - -namespace EMU7800.Core -{ - /// - /// A context for serializing objects. - /// - public class SerializationContext - { - #region Fields - - readonly BinaryWriter _binaryWriter; - - #endregion - - public void Write(byte value) - { - _binaryWriter.Write(value); - } - - public void Write(ushort value) - { - _binaryWriter.Write(value); - } - - public void Write(int value) - { - _binaryWriter.Write(value); - } - - public void Write(uint value) - { - _binaryWriter.Write(value); - } - - public void Write(long value) - { - _binaryWriter.Write(value); - } - - public void Write(ulong value) - { - _binaryWriter.Write(value); - } - - public void Write(bool value) - { - _binaryWriter.Write(value); - } - - public void Write(double value) - { - _binaryWriter.Write(value); - } - - /* - public void Write(BufferElement bufferElement) - { - for (var i = 0; i < BufferElement.SIZE; i++) - Write(bufferElement[i]); - } - */ - - public void Write(byte[] bytes) - { - _binaryWriter.Write(bytes.Length); - if (bytes.Length > 0) - _binaryWriter.Write(bytes); - } - - public void Write(ushort[] ushorts) - { - var bytes = new byte[ushorts.Length << 1]; - Buffer.BlockCopy(ushorts, 0, bytes, 0, bytes.Length); - Write(bytes); - } - - public void Write(int[] ints) - { - var bytes = new byte[ints.Length << 2]; - Buffer.BlockCopy(ints, 0, bytes, 0, bytes.Length); - Write(bytes); - } - - public void Write(uint[] uints) - { - var bytes = new byte[uints.Length << 2]; - Buffer.BlockCopy(uints, 0, bytes, 0, bytes.Length); - Write(bytes); - } - - public void Write(bool[] booleans) - { - var bytes = new byte[booleans.Length]; - for (var i = 0; i < bytes.Length; i++) - { - bytes[i] = (byte)(booleans[i] ? 0xff : 0x00); - } - Write(bytes); - } - - public void Write(MachineBase m) - { - WriteTypeName(m); - m.GetObjectData(this); - } - - public void Write(AddressSpace mem) - { - mem.GetObjectData(this); - } - - public void Write(M6502 cpu) - { - cpu.GetObjectData(this); - } - - public void Write(PIA pia) - { - pia.GetObjectData(this); - } - - public void Write(TIA tia) - { - tia.GetObjectData(this); - } - - public void Write(TIASound tiaSound) - { - tiaSound.GetObjectData(this); - } - - public void Write(Maria maria) - { - maria.GetObjectData(this); - } - - public void Write(Cart cart) - { - WriteTypeName(cart); - cart.GetObjectData(this); - } - - public void Write(RAM6116 ram6116) - { - ram6116.GetObjectData(this); - } - - public void Write(InputState inputState) - { - inputState.GetObjectData(this); - } - - public void WriteVersion(int version) - { - Write(0x78000087); - Write(version); - } - - public void WriteOptional(byte[] bytes) - { - var hasBytes = (bytes != null); - _binaryWriter.Write(hasBytes); - if (!hasBytes) - return; - _binaryWriter.Write(bytes.Length); - if (bytes.Length > 0) - _binaryWriter.Write(bytes); - } - - public void WriteOptional(HSC7800 hsc7800) - { - var exist = (hsc7800 != null); - Write(exist); - if (!exist) - return; - hsc7800.GetObjectData(this); - } - - public void WriteOptional(Bios7800 bios7800) - { - var exist = (bios7800 != null); - Write(exist); - if (!exist) - return; - bios7800.GetObjectData(this); - } - - public void WriteOptional(PokeySound pokeySound) - { - var exist = (pokeySound != null); - Write(exist); - if (!exist) - return; - pokeySound.GetObjectData(this); - } - - #region Constructors - - private SerializationContext() - { - } - - /// - /// Instantiates a new instance of . - /// - /// - internal SerializationContext(BinaryWriter binaryWriter) - { - if (binaryWriter == null) - throw new ArgumentNullException("binaryWriter"); - _binaryWriter = binaryWriter; - } - - #endregion - - #region Helpers - - void WriteTypeName(object o) - { - if (o == null) - throw new Emu7800SerializationException("Type unexpectedly null."); - var typeName = o.GetType().FullName; - if (string.IsNullOrWhiteSpace(typeName)) - throw new Emu7800SerializationException("Unable to discover type name."); - _binaryWriter.Write(typeName); - } - - #endregion - } -}