protected override ReplicationBatchItem CloneInternal(JsonOperationContext context) { MemoryStream stream = null; if (Stream != null) { stream = new MemoryStream(); Stream.CopyTo(stream); stream.Position = 0; Stream.Position = 0; } var item = new AttachmentReplicationItem { ContentType = ContentType.Clone(context), Name = Name.Clone(context), Stream = stream }; var baseMem = Base64Hash.CloneToJsonContext(context, out item.Base64Hash); var keyMem = Key.CloneToJsonContext(context, out item.Key); item.ToDispose(new DisposableAction(() => { context.ReturnMemory(baseMem); context.ReturnMemory(keyMem); })); return(item); }
protected override ReplicationBatchItem CloneInternal(JsonOperationContext context) { var item = new AttachmentTombstoneReplicationItem(); var keyMem = Key.CloneToJsonContext(context, out item.Key); item.ToDispose(new DisposableAction(() => { context.ReturnMemory(keyMem); })); return(item); }
protected override ReplicationBatchItem CloneInternal(JsonOperationContext context) { var item = new TimeSeriesReplicationItem { Collection = Collection.Clone(context) }; var mem = Segment.Clone(context, out item.Segment); var keyMem = Key.CloneToJsonContext(context, out item.Key); item.ToDispose(new DisposableAction(() => { context.ReturnMemory(keyMem); context.ReturnMemory(mem); })); return(item); }