private void WritePacked( PacketWriter src )
{
byte[] buffer = src.UnderlyingStream.GetBuffer();
int length = (int) src.Length;
if ( length == 0 )
{
m_Stream.Write( (int) 0 );
return;
}
int wantLength = 1 + ( ( buffer.Length * 1024 ) / 1000 );
wantLength += 4095;
wantLength &= ~4095;
if ( m_PackBuffer == null || m_PackBuffer.Length < wantLength )
m_PackBuffer = new byte[wantLength];
int packLength = m_PackBuffer.Length;
Compression.Pack( m_PackBuffer, ref packLength, buffer, length, ZLibQuality.Default );
m_Stream.Write( (int) ( 4 + packLength ) );
m_Stream.Write( (int) length );
m_Stream.Write( m_PackBuffer, 0, packLength );
}