public override string AddItemListener(IItemListener <T> listener, bool includeValue) { var request = ListAddListenerCodec.EncodeRequest(GetName(), includeValue, false); DistributedEventHandler handler = message => ListAddListenerCodec.AbstractEventHandler.Handle(message, ((item, uuid, type) => { HandleItemListener(item, uuid, (ItemEventType)type, listener, includeValue); })); return(Listen(request, m => ListAddListenerCodec.DecodeResponse(m).response, GetPartitionKey(), handler)); }
public override string AddItemListener(IItemListener <T> listener, bool includeValue) { var request = ListAddListenerCodec.EncodeRequest(GetName(), includeValue, IsSmart()); DistributedEventHandler handler = message => ListAddListenerCodec.EventHandler.HandleEvent(message, (item, uuid, type) => { HandleItemListener(item, uuid, (ItemEventType)type, listener, includeValue); }); return(RegisterListener(request, m => ListAddListenerCodec.DecodeResponse(m).response, id => ListRemoveListenerCodec.EncodeRequest(GetName(), id), handler)); }
protected override Guid ReadSubscribeResponse(ClientMessage responseMessage, SubscriptionState <CollectionItemEventHandlers <T> > state) => ListAddListenerCodec.DecodeResponse(responseMessage).Response;