//This is a window encoder for the VCDIFF format //if you are not including a checksum simply pass 0 to checksum //it will be ignored public WindowEncoder(long dictionarySize, uint checksum, ChecksumFormat checksumFormat, bool interleaved) { this.Checksum = checksum; this.ChecksumFormat = checksumFormat; this.IsInterleaved = interleaved; this.dictionarySize = dictionarySize; // The encoder currently doesn't support encoding with a custom table // will be added in later since it will be easy as decoding is already implemented maxMode = AddressCache.DefaultLast; table = CodeTable.DefaultTable; addrCache = new AddressCache(); targetLength = 0; lastOpcodeIndex = -1; instrMap = InstructionMap.Instance; //Separate buffers for each type if not interleaved if (!interleaved) { instructionAndSizes = new MemoryStream(); dataForAddAndRun = new MemoryStream(); addressForCopy = new MemoryStream(); } else { instructionAndSizes = dataForAddAndRun = addressForCopy = new MemoryStream(); } }