Exemple #1
0
        public string AddEntryListener(IEntryListener <TKey, TValue> listener)
        {
            var listenerAdapter =
                EntryListenerAdapter <TKey, TValue> .CreateAdapter(listener, GetContext().GetSerializationService());

            var request = ReplicatedMapAddEntryListenerCodec.EncodeRequest(GetName(), IsSmart());
            DistributedEventHandler handler =
                eventData => ReplicatedMapAddEntryListenerCodec.EventHandler.HandleEvent(eventData,
                                                                                         (key, value, oldValue, mergingValue, type, uuid, entries) =>
            {
                OnEntryEvent(key, value, oldValue, mergingValue, type, uuid, entries, listenerAdapter);
            });

            return(RegisterListener(request,
                                    message => ReplicatedMapAddEntryListenerCodec.DecodeResponse(message).response,
                                    id => ReplicatedMapRemoveEntryListenerCodec.EncodeRequest(GetName(), id), handler));
        }
        public Guid AddEntryListener(IEntryListener <TKey, TValue> listener, TKey key)
        {
            var keyData         = ToData(key);
            var listenerAdapter =
                EntryListenerAdapter <TKey, TValue> .CreateAdapter(listener, Client.SerializationService);

            var request = ReplicatedMapAddEntryListenerToKeyCodec.EncodeRequest(Name, keyData, IsSmart());
            DistributedEventHandler handler =
                eventData => ReplicatedMapAddEntryListenerToKeyCodec.EventHandler.HandleEvent(eventData,
                                                                                              (k, value, oldValue, mergingValue, type, uuid, entries) =>
            {
                OnEntryEvent(k, value, oldValue, mergingValue, type, uuid, entries, listenerAdapter);
            });

            return(RegisterListener(request,
                                    message => ReplicatedMapAddEntryListenerCodec.DecodeResponse(message).Response,
                                    id => ReplicatedMapRemoveEntryListenerCodec.EncodeRequest(Name, id), handler));
        }