using System; using System.IO; using System.Text; namespace fis.Vid { public class VinnoStreamWriter { private readonly Stream _stream; public VinnoStreamWriter(Stream stream) { _stream = stream; } /// /// Write a string to stream. /// /// public void WriteString(string value) { var data = Encoding.Unicode.GetBytes(value); WriteInt(data.Length); _stream.Write(data, 0, data.Length); } /// /// Write a int32 value to stream. /// /// public void WriteInt(int value) { _stream.Write(BitConverter.GetBytes(value), 0, sizeof(int)); } /// /// Write a short value to stream. /// /// public void WriteShort(short value) { _stream.Write(BitConverter.GetBytes(value), 0, sizeof(short)); } /// /// Write a int64 value to stream. /// /// public void WriteLong(long value) { _stream.Write(BitConverter.GetBytes(value), 0, sizeof(long)); } /// /// Write a float value to stream. /// /// public void WriteFloat(float value) { _stream.Write(BitConverter.GetBytes(value), 0, sizeof(float)); } /// /// Write a double value to stream. /// /// public void WriteDouble(double value) { _stream.Write(BitConverter.GetBytes(value), 0, sizeof(double)); } /// /// Write a bool value to stream. /// /// public void WriteBool(bool value) { _stream.Write(BitConverter.GetBytes(value), 0, sizeof(bool)); } /// /// Write a byte value to stream. /// /// public void WriteByte(byte value) { _stream.WriteByte(value); } /// /// Write a array in to stream. /// public void WriteBytes(byte[] value) { WriteInt(value.Length); _stream.Write(value, 0, value.Length); } /// /// Write long array into stream. /// /// public void WriteLongs(long[] value) { var data = new byte[value.Length * sizeof(long)]; Buffer.BlockCopy(value, 0, data, 0, data.Length); WriteBytes(data); } } }