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);
}
}
}