public void RemoveTaskCallbackInfo(TaskCallbackInfo taskCallbackInfo) { if (CallbackListeners != null && CallbackListeners.Contains(taskCallbackInfo)) { CallbackListeners.Remove(taskCallbackInfo); } }
public void AddTaskCallbackInfo(TaskCallbackInfo taskCallbackInfo) { if (CallbackListeners != null && !CallbackListeners.Contains(taskCallbackInfo)) { CallbackListeners.Add(taskCallbackInfo); } }
public void AddToListeners(TaskCallbackInfo listener) { lock (_mutex) { if (this.listeners != null) { listeners.Add(listener); } } }
public void Deserialize(Runtime.Serialization.IO.CompactReader reader) { _opCode = (MapReduceOpCodes)reader.ReadObject(); _taskId = reader.ReadString(); _data = reader.ReadObject(); _source = (Address)reader.ReadObject(); _sequenceId = reader.ReadInt64(); _operationContext = (OperationContext)reader.ReadObject(); _callbackInfo = (TaskCallbackInfo)reader.ReadObject(); _filter = (Filter)reader.ReadObject(); }
public void RemoveFromListeners(TaskCallbackInfo listener) { if (this.listeners != null) { lock (_mutex) { if (listeners.Contains(listener)) { listeners.Remove(listener); } } } }
private bool IsValidPointer(TaskEnumeratorPointer pointer) { if (this.listeners != null) { lock (_mutex) { IEnumerator it = this.listeners.GetEnumerator(); while (it.MoveNext()) { TaskCallbackInfo callbackInfo = (TaskCallbackInfo)it.Current; if ((callbackInfo.Client.Equals(pointer.ClientId) && (callbackInfo.CallbackId.Equals(pointer.CallbackId)))) { return(true); } } } } return(false); }
private void RemoveFromListeners(TaskEnumeratorPointer pointer) { if (listeners != null) { lock (_mutex) { IEnumerator itListeners = listeners.GetEnumerator(); // change to for loop. for (int i = 0; i < listeners.Count; i++) { TaskCallbackInfo callBackInfo = (TaskCallbackInfo)listeners[i]; if (callBackInfo.Client.Equals(pointer.ClientId) && ((short)callBackInfo.CallbackId).Equals(pointer.CallbackId)) { listeners.RemoveAt(i); } } } } }
public void RemoveDeadClientsTasks(ArrayList clients) { //Locking with starttask lock (_lock) { //Removing callback entries of dead clients from waiting tasks ICollection waitingTaskList = waitingTasks.Keys; for (IEnumerator it = clients.GetEnumerator(); it.MoveNext();) { string client = (string)it.Current; if (_context.NCacheLog.IsInfoEnabled) { _context.NCacheLog.Info("TaskTracker.RemoveDeadClients", "Removing waiting task listeners for client " + client); } foreach (string taskId in waitingTaskList) { TaskBase t = (TaskBase)waitingTasks[taskId]; if (t != null && t.CallbackListeners.Count != 0) { for (IEnumerator cbit = t.CallbackListeners.GetEnumerator(); cbit.MoveNext();) { TaskCallbackInfo taskCallbackInfo = (TaskCallbackInfo)cbit.Current; if (taskCallbackInfo.Client.Equals(client)) { t.CallbackListeners.Remove(taskCallbackInfo); } } if (t.CallbackListeners.Count == 0) { if (_context.NCacheLog.IsInfoEnabled) { _context.NCacheLog.Info("TaskTracker.RemoveDeadClients", "No listeners remaining therefore removing waiting task " + t.TaskId); } waitingTasks.Remove(t.TaskId); if (_context.PerfStatsColl != null) { _context.PerfStatsColl.DecrementWaitingTasks(); } } } } } //Removing callback entries of dead clients from running tasks ICollection runningTaskList = runningTasks.Keys; for (IEnumerator it = clients.GetEnumerator(); it.MoveNext();) { string client = (string)it.Current; if (_context.NCacheLog.IsInfoEnabled) { _context.NCacheLog.Info("TaskTracker.RemoveDeadClients", "Removing running task listeners for client " + client); } foreach (string taskId in runningTaskList) { TaskBase t = (TaskBase)runningTasks[taskId]; if (t != null && t.CallbackListeners.Count != 0) { for (IEnumerator cbit = t.CallbackListeners.GetEnumerator(); cbit.MoveNext();) { TaskCallbackInfo taskCallbackInfo = (TaskCallbackInfo)cbit.Current; if (taskCallbackInfo.Client.Equals(client)) { t.CallbackListeners.Remove(taskCallbackInfo); } } if (t.CallbackListeners.Count == 0) { if (_context.NCacheLog.IsInfoEnabled) { _context.NCacheLog.Info("TaskTracker.RemoveDeadClients", "No listeners remaining therefore removing running task " + t.TaskId); } waitingTasks.Remove(t.TaskId); if (_context.PerfStatsColl != null) { _context.PerfStatsColl.DecrementWaitingTasks(); } } } } } } //Remove Iterators from the task output list //Remove Listeners for these clients }