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));
        }
示例#2
0
 protected override bool ReadUnsubscribeResponse(ClientMessage unsubscribeResponseMessage, SubscriptionState <CollectionItemEventHandlers <T> > state)
 => ListRemoveListenerCodec.DecodeResponse(unsubscribeResponseMessage).Response;
示例#3
0
 public override bool RemoveItemListener(string registrationId)
 {
     return(StopListening(s => ListRemoveListenerCodec.EncodeRequest(GetName(), s),
                          message => ListRemoveListenerCodec.DecodeResponse(message).response,
                          registrationId));
 }
示例#4
0
 protected override ClientMessage CreateUnsubscribeRequest(Guid subscriptionId, SubscriptionState <CollectionItemEventHandlers <T> > state)
 => ListRemoveListenerCodec.EncodeRequest(Name, subscriptionId);
 public override bool RemoveItemListener(string registrationId)
 {
     return(DeregisterListener(registrationId, id => ListRemoveListenerCodec.EncodeRequest(GetName(), id)));
 }