public static void ProcessCopy(IDefragmentServices services, int sourceID, ISlotCopyHandler command, ByteArrayBuffer sourceReader) { int targetID = services.StrictMappedID(sourceID); Slot targetSlot = services.AllocateTargetSlot(sourceReader.Length()); services.Mapping().MapId(targetID, targetSlot); Db4objects.Db4o.Internal.DefragmentContextImpl context = new Db4objects.Db4o.Internal.DefragmentContextImpl (sourceReader, services); command.ProcessCopy(context); services.TargetWriteBytes(context, targetSlot.Address()); }