using System.IO; using System; namespace Plugin { /// /// In memory blob allows to serialize objects to memory stream. Eventually, we might add debugging support as well. /// public class InMemoryBlob : IBlob { private readonly BinaryWriter _writer; private readonly BinaryReader _reader; public InMemoryBlob(Stream stream) { _writer = new BinaryWriter(stream); _reader = new BinaryReader(stream); } public void extract(ref bool value) { value = _reader.ReadBoolean(); } public void push(bool value) { _writer.Write(value); } public void extract(ref int value) { value = _reader.ReadInt32(); } public void push(int value) { _writer.Write(value); } public void extract(ref float value) { value = _reader.ReadSingle(); } public void push(float value) { _writer.Write(value); } public void extract(ref uint value) { value = _reader.ReadUInt32(); } public void push(uint value) { _writer.Write(value); } public void extract(ref string value) { value = _reader.ReadString(); } public void push(string value) { _writer.Write(value); } public void extractPath(ref string value) { value = _reader.ReadString(); } public void pushPath(string value) { _writer.Write(value); } public void extractString8(ref string value) { value = _reader.ReadString(); } public void pushString8(string value) { _writer.Write(value); } byte[] IBlob.extractBinaryArray() { throw new Exception("The method or operation is not implemented."); } void IBlob.pushBytesArray(byte[] array) { throw new Exception("The method or operation is not implemented."); } } }