public Task <long> AddAsync(T item, OverflowPolicy overflowPolicy) { ValidationUtil.ThrowExceptionIfNull(item, "Item cannot be null"); var request = RingbufferAddCodec.EncodeRequest(GetName(), (int)OverflowPolicy.Overwrite, ToData(item)); return(InvokeAsync(request, GetPartitionKey(), m => RingbufferAddCodec.DecodeResponse(m).response)); }
/// <inheritdoc /> public async Task <long> AddAsync(TItem item, OverflowPolicy overflowPolicy) { var itemData = ToSafeData(item); var requestMessage = RingbufferAddCodec.EncodeRequest(Name, (int)overflowPolicy, itemData); var responseMessage = await Cluster.Messaging.SendToPartitionOwnerAsync(requestMessage, PartitionId).CfAwait(); return(RingbufferAddCodec.DecodeResponse(responseMessage).Response); }
public Task <long> AddAllAsync <TE>(ICollection <TE> collection, OverflowPolicy overflowPolicy) where TE : T { ValidationUtil.ThrowExceptionIfTrue(collection.Count == 0, "Collection cannot be empty"); var valueList = ToDataList(collection); var request = RingbufferAddAllCodec.EncodeRequest(GetName(), valueList, (int)overflowPolicy); return(InvokeAsync(request, GetPartitionKey(), m => RingbufferAddAllCodec.DecodeResponse(m).response)); }
/// <inheritdoc /> public async Task <long> AddAllAsync(ICollection <TItem> items, OverflowPolicy overflowPolicy) { if (items.Count == 0) { throw new ArgumentException("Cannot add zero items.", nameof(items)); } var itemsData = ToSafeData(items); var requestMessage = RingbufferAddAllCodec.EncodeRequest(Name, itemsData, (int)overflowPolicy); var responseMessage = await Cluster.Messaging.SendToPartitionOwnerAsync(requestMessage, PartitionId).CfAwait(); return(RingbufferAddAllCodec.DecodeResponse(responseMessage).Response); }