19 using System.Collections.Generic;
    23 using System.IO.Compression;
    29         public override byte[] 
Compress(
byte[] uncompressedData)
    31             MemoryStream outStream = 
new MemoryStream();
    34                         new DeflateStream(outStream,
    35                         CompressionMode.Compress))
    37                 Compress.Write(uncompressedData, 0, uncompressedData.Length);
    39             return outStream.ToArray();
    44             MemoryStream inStream = 
new MemoryStream(compressedData);
    45             MemoryStream outStream = 
new MemoryStream();
    48                         new DeflateStream(inStream,
    49                         CompressionMode.Decompress))
    53             return outStream.ToArray();
    56         private static void CopyTo(Stream from, Stream to)
    58             byte[] buffer = 
new byte[4096];
    60             while((read = from.Read(buffer, 0, buffer.Length)) != 0)
    62                 to.Write(buffer, 0, read);
    71         public override bool Equals(
object other)
    75             return (this.GetType().Name == other.GetType().Name);
 override int GetHashCode()
Codecs must implement a HashCode() method that is consistent with Equals
 
override string GetName()
Name of this codec type
 
override bool Equals(object other)
Codecs must implement an equals() method
 
const int DeflateCodecHash
 
override byte [] Compress(byte[] uncompressedData)
Compress data using implemented codec
 
const string DeflateCodec
 
override byte [] Decompress(byte[] compressedData)
Decompress data using implemented codec