コード例 #1
0
        public byte[] Encode(ITranscoder transcoder, bool canCompress, object value)
        {
            lock(this)
            {
                buffer.Clear();
                transcoder.Encode(buffer, value);

                byte[] bytes = buffer.ToArray();
                byte compress = 0;
                /*if (canCompress && bytes.Length > COMPRESSION_LEN)
                {
                    using (MemoryStream ms = new MemoryStream())
                    {
                        using (GZipStream gipStream = new GZipStream(ms, CompressionMode.Compress))
                        {
                            gipStream.Write(bytes, 0, bytes.Length);
                        }
                        bytes = ms.ToArray();
                        compress = 1;
                    }
                }*/

                buffer.Clear();

                buffer.WriteShort(MAGIC_NUMBER);
                buffer.WriteByte(compress);
                buffer.WriteInt(bytes.Length);
                buffer.WriteBytes(bytes);

                byte[] newBytes = buffer.ToArray();
                
                return newBytes;
            }
        }
コード例 #2
0
        public byte[] Encode(ITranscoder transcoder, bool canCompress, object value)
        {
            lock (this)
            {
                buffer.Clear();
                transcoder.Encode(buffer, value);

                byte[] bytes    = buffer.ToArray();
                byte   compress = 0;

                /*if (canCompress && bytes.Length > COMPRESSION_LEN)
                 * {
                 *  using (MemoryStream ms = new MemoryStream())
                 *  {
                 *      using (GZipStream gipStream = new GZipStream(ms, CompressionMode.Compress))
                 *      {
                 *          gipStream.Write(bytes, 0, bytes.Length);
                 *      }
                 *      bytes = ms.ToArray();
                 *      compress = 1;
                 *  }
                 * }*/

                buffer.Clear();

                buffer.WriteShort(MAGIC_NUMBER);
                buffer.WriteByte(compress);
                buffer.WriteInt(bytes.Length);
                buffer.WriteBytes(bytes);

                byte[] newBytes = buffer.ToArray();

                return(newBytes);
            }
        }