/// <summary> /// Tries to start next remove task. /// </summary> /// <param name="quotesManager">The QuotesManager instance</param> /// <param name="removeTasks">Collection of remove tasks</param> /// <param name="removeQuoteListener">Listener of remove quotes task</param> private static void StartNextRemoveTask(QuotesManager quotesManager, Queue <RemoveQuotesTask> removeTasks, RemoveQuotesListener removeQuoteListener) { RemoveQuotesTask removeTask = removeTasks.Dequeue(); quotesManager.executeTask(removeTask); removeQuoteListener.WaitEvents(); }
public void update(RemoveQuotesTask task, QuotesManagerError error) { if (error != null && OnErrorEvent != null) { OnErrorEvent(String.Format("{0}({1}) : {2}", error.Code, error.SubCode, error.Message)); } }
/// <summary> /// Listener: when the remove task status is changed. /// </summary> /// <param name="task"></param> /// <param name="error"></param> public void update(RemoveQuotesTask task, QuotesManagerError error) { if (error != null) { string errorMessage = String.Format("{0}({1}) : {2}", error.Code, error.SubCode, error.Message); Console.WriteLine("Error occurred : {0}", errorMessage); } }
public void onTaskCompleted(RemoveQuotesTask task) { mRemoved++; mRunning = mRemoved < mToRemove; if (!mRunning && OnQuotesRemovedEvent != null) { OnQuotesRemovedEvent(); } }
/// <summary> /// Removes the data from cache. /// </summary> /// <param name="quotesManager">The QuotesManager instance</param> /// <param name="list">Collection of quotes manager storage data.</param> public static void RemoveData(QuotesManager quotesManager, IEnumerable <IQMData> list) { Queue <RemoveQuotesTask> removeTasks = new Queue <RemoveQuotesTask>(); RemoveQuotesListener removeQuotesListener = new RemoveQuotesListener(); foreach (IQMData data in list) { RemoveQuotesTask task = quotesManager.createRemoveQuotesTask(data.Instrument, data.Timeframe, removeQuotesListener); task.addYear(data.Year); removeTasks.Enqueue(task); } while (removeTasks.Count > 0) { StartNextRemoveTask(quotesManager, removeTasks, removeQuotesListener); } }
/// <summary> /// Removes the data from cache. /// </summary> /// <param name="list"></param> public void RemoveData(IEnumerable <IQMData> list) { List <Task> tasks = new List <Task>(); foreach (IQMData data in list) { RemoveQuotesTask task = mMgr.createRemoveQuotesTask(data.Instrument, data.Timeframe, this); task.addYear(data.Year); tasks.Add(task); } if (tasks.Count > 0) { mRunning = true; mRemoved = 0; mToRemove = tasks.Count; foreach (Task task in tasks) { mMgr.executeTask(task); } } }
/// <summary> /// Listener: when the remove task is completed. /// </summary> /// <param name="task"></param> public void onTaskCompleted(RemoveQuotesTask task) { Console.WriteLine("Quotes removed."); mEvent.Set(); }
/// <summary> /// Listener: when the remove task is cancelled. /// </summary> /// <param name="task"></param> public void onTaskCanceled(RemoveQuotesTask task) { Console.WriteLine("Remove task was cancelled."); mEvent.Set(); }