Ejemplo n.º 1
0
        public override string AddItemListener(IItemListener <T> listener, bool includeValue)
        {
            var request = SetAddListenerCodec.EncodeRequest(GetName(), includeValue, false);

            DistributedEventHandler handler = message => SetAddListenerCodec.AbstractEventHandler.Handle(message,
                                                                                                         ((item, uuid, type) => { HandleItemListener(item, uuid, (ItemEventType)type, listener, includeValue); }));

            return(Listen(request,
                          m => SetAddListenerCodec.DecodeResponse(m).response, GetPartitionKey(), handler));
        }
        public override string AddItemListener(IItemListener <T> listener, bool includeValue)
        {
            var request = SetAddListenerCodec.EncodeRequest(GetName(), includeValue, IsSmart());

            DistributedEventHandler handler = message => SetAddListenerCodec.EventHandler.HandleEvent(message,
                                                                                                      (item, uuid, type) =>
            {
                HandleItemListener(item, uuid, (ItemEventType)type, listener, includeValue);
            });

            return(RegisterListener(request, m => SetAddListenerCodec.DecodeResponse(m).response,
                                    id => SetRemoveListenerCodec.EncodeRequest(GetName(), id), handler));
        }
 protected override ValueTask CodecHandleEventAsync(ClientMessage eventMessage, Func <IData, Guid, int, ValueTask> f, ILoggerFactory loggerFactory)
 => SetAddListenerCodec.HandleEventAsync(
     eventMessage,
     (itemData, memberId, eventTypeData) => f(itemData, memberId, eventTypeData),
     loggerFactory);
 protected override Guid ReadSubscribeResponse(ClientMessage responseMessage, SubscriptionState <CollectionItemEventHandlers <T> > state)
 => SetAddListenerCodec.DecodeResponse(responseMessage).Response;
 protected override ClientMessage CreateSubscribeRequest(bool includeValue, bool isSmartRouting)
 => SetAddListenerCodec.EncodeRequest(Name, includeValue, isSmartRouting);
 protected override ValueTask CodecHandleEventAsync(ClientMessage eventMessage, Func <IData, Guid, int, object, ValueTask> handler, object state, ILoggerFactory loggerFactory)
 => SetAddListenerCodec.HandleEventAsync(eventMessage, handler, state, loggerFactory);