コード例 #1
0
        public int DrainTo <TE>(ICollection <TE> c) where TE : T
        {
            var request = QueueDrainToCodec.EncodeRequest(GetName());
            var result  = Invoke(request, m => QueueDrainToCodec.DecodeResponse(m).response);

            foreach (var data in result)
            {
                var e = ToObject <T>(data);
                c.Add((TE)e);
            }
            return(result.Count);
        }
コード例 #2
0
        /// <inheritdoc />
        public async Task <int> DrainToAsync(ICollection <T> items)
        {
            var requestMessage  = QueueDrainToCodec.EncodeRequest(Name);
            var responseMessage = await Cluster.Messaging.SendToPartitionOwnerAsync(requestMessage, PartitionId).CfAwait();

            var response = QueueDrainToMaxSizeCodec.DecodeResponse(responseMessage).Response;

            foreach (var itemData in response)
            {
                items.Add(ToObject <T>(itemData));
            }
            return(response.Count);
        }