/// <summary> /// /// </summary> /// <param name="obj"></param> /// <returns></returns> public override bool Equals(object obj) { if (!(obj is CallbackInfo)) { return(false); } CallbackInfo info = obj as CallbackInfo; if (info.Client != base.Client) { return(false); } if ((info.Callback is short) && (base._theCallback is short)) { if (((short)info.Callback) != ((short)base._theCallback)) { return(false); } } else if (info.Callback != base._theCallback) { return(false); } return(true); }
public override void RegisterKeyNotification(string[] keys, CallbackInfo updateCallback, CallbackInfo removeCallback, OperationContext operationContext) { base.Sync.AcquireWriterLock(-1); try { this.Internal.RegisterKeyNotification(keys, updateCallback, removeCallback, operationContext); } finally { base.Sync.ReleaseWriterLock(); } }
/// <summary> /// /// </summary> /// <param name="value">Valor associado.</param> /// <param name="onCacheItemRemovedCallback">Callback de quando o item é removido.</param> /// <param name="onCacheItemUpdateCallback">Callback de quando o item é atualizado.</param> /// <param name="onAsyncOperationCompleteCallback">Callback de quando a operação é completada.</param> /// <param name="onWriteBehindOperationCompletedCallback">Callback de quando a operação de escrita é completada.</param> public CallbackEntry(object value, CallbackInfo onCacheItemRemovedCallback, CallbackInfo onCacheItemUpdateCallback, AsyncCallbackInfo onAsyncOperationCompleteCallback, AsyncCallbackInfo onWriteBehindOperationCompletedCallback) { _itemRemovedListener = ArrayList.Synchronized(new ArrayList(2)); _itemUpdateListener = ArrayList.Synchronized(new ArrayList(2)); _value = value; if (onCacheItemRemovedCallback != null) { _itemRemovedListener.Add(onCacheItemRemovedCallback); } if (onCacheItemUpdateCallback != null) { _itemUpdateListener.Add(onCacheItemUpdateCallback); } _onAsyncOperationCompleteCallback = onAsyncOperationCompleteCallback; _onWriteBehindOperationCompletedCallback = onWriteBehindOperationCompletedCallback; }
/// <summary> /// Remove as informações de callback. /// </summary> /// <param name="updateCallback"></param> /// <param name="removeCallback"></param> internal void RemoveCallbackInfo(CallbackInfo updateCallback, CallbackInfo removeCallback) { lock (this) { if ((updateCallback != null) || (removeCallback != null)) { CallbackEntry entry = null; if (this.Value is CallbackEntry) { entry = this.Value as CallbackEntry; if (updateCallback != null) { entry.RemoveItemUpdateCallback(updateCallback); } if (removeCallback != null) { entry.RemoveItemRemoveCallback(removeCallback); } } } } }
public virtual void UnregisterKeyNotification(string key, CallbackInfo updateCallback, CallbackInfo removeCallback, OperationContext operationContext) { }