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);
        }
Example #3
0
        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);
        }