public OGLCachedResource(DeleteValue DeleteValueCallback) { if (DeleteValueCallback == null) { throw new ArgumentNullException(nameof(DeleteValueCallback)); } this.DeleteValueCallback = DeleteValueCallback; Cache = new Dictionary <long, CacheBucket>(); SortedCache = new LinkedList <long>(); }
public OglCachedResource(DeleteValue deleteValueCallback, long maxSize) { _maxSize = maxSize; if (deleteValueCallback == null) { throw new ArgumentNullException(nameof(deleteValueCallback)); } _deleteValueCallback = deleteValueCallback; _cache = new Dictionary <long, CacheBucket>(); _sortedCache = new LinkedList <long>(); _deletePending = new Queue <T>(); }
public OGLCachedResource(DeleteValue DeleteValueCallback, long MaxSize) { this.MaxSize = MaxSize; if (DeleteValueCallback == null) { throw new ArgumentNullException(nameof(DeleteValueCallback)); } this.DeleteValueCallback = DeleteValueCallback; Cache = new Dictionary <long, CacheBucket>(); SortedCache = new LinkedList <long>(); DeletePending = new Queue <T>(); }
public ViewModelHash() { HashTable = new MassiveWords().GetHashTableAndTime("../../Model/Words.txt").Item1; var time = new MassiveWords().GetHashTableAndTime("../../Model/Words.txt").Item2; OpHistory = new ObservableCollection <OpHistoryItem>(); var massiveRussian = new MassiveChars("Russian").GetMassiveChars(); var massiveEnglish = new MassiveChars("English").GetMassiveChars(); OpHistory.Add(new OpHistoryItem("Время создания хэш таблицы из " + HashTable.Values.Count() / 20 + " слов - " + time + " ms.")); mp.Open(new Uri("../../Music/music.mp3", UriKind.RelativeOrAbsolute)); var flag = false; Add = new DelegateCommand(() => { var beep = new MediaPlayer(); beep.Open(new Uri("../../Music/beep.mp3", UriKind.RelativeOrAbsolute)); beep.Play(); if (string.IsNullOrWhiteSpace(AddValueF) && !string.IsNullOrWhiteSpace(AddValueS)) { OpHistory.Add(new OpHistoryItem("Вы не ввели слово на английском, которое хотели добавить!")); } else if (!string.IsNullOrWhiteSpace(AddValueF) && string.IsNullOrWhiteSpace(AddValueS)) { OpHistory.Add(new OpHistoryItem("Вы не ввели перевод слова!")); } else if (string.IsNullOrWhiteSpace(AddValueF) && string.IsNullOrWhiteSpace(AddValueS)) { OpHistory.Add(new OpHistoryItem("Вы ничего не ввели!")); } else { if (CheckerForEnglishAndRussian(AddValueF.ToCharArray(), AddValueS.ToCharArray())) { var spForAdd = new Stopwatch(); if (!HashTable.Search(AddValueF)) { spForAdd.Start(); HashTable.Insert(new Word(AddValueF, AddValueS)); spForAdd.Stop(); OpHistory.Add(new OpHistoryItem("Слово \"" + AddValueF + "\" записано в словарь.")); } else { spForAdd.Start(); HashTable.Remove(AddValueF); HashTable.Insert(new Word(AddValueF, AddValueS)); spForAdd.Stop(); OpHistory.Add(new OpHistoryItem("Слово \"" + AddValueF + "\" перезаписано.")); } OpHistory.Add(new OpHistoryItem("Время добавление/переписывание составило - " + spForAdd.ElapsedTicks + " тиков.")); RaisePropertyChanged("OpHistory"); } else { OpHistory.Add(new OpHistoryItem("Первое слово должно быть Английским, а второе Русским!")); } } }); Delete = new DelegateCommand(() => { var beep = new MediaPlayer(); beep.Open(new Uri("../../Music/beep.mp3", UriKind.RelativeOrAbsolute)); beep.Play(); if (string.IsNullOrWhiteSpace(DeleteValue)) { OpHistory.Add(new OpHistoryItem("Вы ничего не ввели!")); } else { if (CheckerForEnglish(DeleteValue.ToCharArray())) { if (HashTable.Search(DeleteValue)) { var spForDelete = new Stopwatch(); spForDelete.Start(); HashTable.Remove(DeleteValue); spForDelete.Stop(); OpHistory.Add(new OpHistoryItem("Слово \"" + DeleteValue + "\" удалено из словаря.")); OpHistory.Add(new OpHistoryItem("Время удаления - " + spForDelete.ElapsedTicks + " тиков")); } else { OpHistory.Add(new OpHistoryItem("Слово \"" + DeleteValue + "\" не найдено в словаре.")); } RaisePropertyChanged("OpHistory"); } else { OpHistory.Add(new OpHistoryItem("Это не английское слово \"" + DeleteValue + "\".")); } } }); Translate = new DelegateCommand(() => { var beep = new MediaPlayer(); beep.Open(new Uri("../../Music/beep.mp3", UriKind.RelativeOrAbsolute)); beep.Play(); if (string.IsNullOrWhiteSpace(TranslateValue)) { OpHistory.Add(new OpHistoryItem("Вы ничего не ввели!")); } else { if (CheckerForEnglish(TranslateValue.ToCharArray())) { if (HashTable.Search(TranslateValue)) { var spForTranslate = new Stopwatch(); spForTranslate.Start(); var russianTranslate = HashTable.Search(TranslateValue, out Word w); spForTranslate.Stop(); OpHistory.Add(new OpHistoryItem("Перевод слова " + TranslateValue + " - " + w.Value)); OpHistory.Add(new OpHistoryItem("Время перевода - " + spForTranslate.ElapsedTicks + " тиков.")); } else { OpHistory.Add(new OpHistoryItem("Слово \"" + TranslateValue + "\" не найдено в словаре.")); } RaisePropertyChanged("OpHistory"); } else { OpHistory.Add(new OpHistoryItem("Это не английское слово \"" + TranslateValue + "\".")); } } }); PlayMusic = new DelegateCommand(() => { if (!flag) { mp.Play(); flag = true; } else { mp.Pause(); flag = false; } }); HashTable.Search("apple", out Word wo); HashTable.Search("apple", out wo); HashTable.Remove("warm"); HashTable.Remove("yourself"); HashTable.Insert(new Word("Test", "Тест")); }
public ViewModelTrie() { var tupleTreeAndTime = new DictionaryWords("../../Model/Words.txt").CreateTree(); Tree = tupleTreeAndTime.Item1; OpHistory = new ObservableCollection <OpHistoryItem>(); var massiveRussian = new MassiveChars("Russian").GetMassiveChars(); var massiveEnglish = new MassiveChars("English").GetMassiveChars(); OpHistory.Add(new OpHistoryItem("Время создания дерева из " + tupleTreeAndTime.Item3 + " слов - " + tupleTreeAndTime.Item2 + " ms.")); Add = new DelegateCommand(() => { var beep = new MediaPlayer(); beep.Open(new Uri("../../Music/beep.mp3", UriKind.RelativeOrAbsolute)); beep.Play(); if (string.IsNullOrWhiteSpace(AddValueF) && !string.IsNullOrWhiteSpace(AddValueS)) { OpHistory.Add(new OpHistoryItem("Вы не ввели слово на английском, которое хотели добавить!")); } else if (!string.IsNullOrWhiteSpace(AddValueF) && string.IsNullOrWhiteSpace(AddValueS)) { OpHistory.Add(new OpHistoryItem("Вы не ввели перевод слова!")); } else if (string.IsNullOrWhiteSpace(AddValueF) && string.IsNullOrWhiteSpace(AddValueS)) { OpHistory.Add(new OpHistoryItem("Вы ничего не ввели!")); } else { var spForAdd = new Stopwatch(); if (CheckerForEnglishAndRussian(AddValueF.ToCharArray(), AddValueS.ToCharArray())) { long time = 0; if (!Tree.ContainsValue(AddValueF)) { spForAdd.Start(); Tree.Add(AddValueF, AddValueS); spForAdd.Stop(); OpHistory.Add(new OpHistoryItem("Слово \"" + AddValueF + "\" записано в словарь.")); } else { spForAdd.Start(); Tree.Remove(AddValueF); Tree.Add(AddValueF, AddValueS); spForAdd.Stop(); OpHistory.Add(new OpHistoryItem("Слово \"" + AddValueF + "\" перезаписано.")); } OpHistory.Add(new OpHistoryItem("Время добавления/переписывания составило - " + spForAdd.ElapsedTicks + " тиков.")); RaisePropertyChanged("OpHistory"); } else { OpHistory.Add(new OpHistoryItem("Первое слово должно быть Английским, а второе Русским!")); } } }); Delete = new DelegateCommand(() => { var beep = new MediaPlayer(); beep.Open(new Uri("../../Music/beep.mp3", UriKind.RelativeOrAbsolute)); beep.Play(); if (string.IsNullOrWhiteSpace(DeleteValue)) { OpHistory.Add(new OpHistoryItem("Вы ничего не ввели!")); } else { if (CheckerForEnglish(DeleteValue.ToCharArray())) { if (Tree.ContainsValue(DeleteValue)) { var spForDelete = new Stopwatch(); spForDelete.Start(); Tree.Remove(DeleteValue); spForDelete.Stop(); OpHistory.Add(new OpHistoryItem("Слово \"" + DeleteValue + "\" удалено из словаря.")); OpHistory.Add(new OpHistoryItem("Время удаления - " + spForDelete.ElapsedTicks + " тиков")); } else { OpHistory.Add(new OpHistoryItem("Слово \"" + DeleteValue + "\" не найдено в словаре.")); } RaisePropertyChanged("OpHistory"); } else { OpHistory.Add(new OpHistoryItem("Это не английское слово \"" + DeleteValue + "\".")); } } }); Translate = new DelegateCommand(() => { var beep = new MediaPlayer(); beep.Open(new Uri("../../Music/beep.mp3", UriKind.RelativeOrAbsolute)); beep.Play(); if (string.IsNullOrWhiteSpace(TranslateValue)) { OpHistory.Add(new OpHistoryItem("Вы ничего не ввели!")); } else { if (CheckerForEnglish(TranslateValue.ToCharArray())) { if (Tree.ContainsValue(TranslateValue)) { var spForTranslate = new Stopwatch(); spForTranslate.Start(); var russianTranslate = Tree.GetValue(TranslateValue); spForTranslate.Stop(); OpHistory.Add(new OpHistoryItem("Перевод слова " + TranslateValue + " - " + russianTranslate)); OpHistory.Add(new OpHistoryItem("Время перевода - " + spForTranslate.ElapsedTicks + " тиков.")); } else { OpHistory.Add(new OpHistoryItem("Слово \"" + TranslateValue + "\" не найдено в словаре.")); } RaisePropertyChanged("OpHistory"); } else { OpHistory.Add(new OpHistoryItem("Это не английское слово \"" + TranslateValue + "\".")); } } }); Tree.GetValue("apple"); Tree.Remove("warm"); Tree.Remove("yourself"); Tree.Add("Test", "Тест"); }