Example #1
0
        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));
        }
Example #2
0
        /// <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);
        }