void SKKDictionaryKeeper::Complete(SKKCompletionHelper& helper) { pthread::lock scope(condition_); if(!ready()) return; typedef std::pair<SKKDictionaryEntryIterator, SKKDictionaryEntryIterator> EntryRange; SKKDictionaryEntryContainer& container = file_.OkuriNasi(); std::string query = eucj_from_utf8(helper.Entry()); EntryRange range = std::equal_range(container.begin(), container.end(), query, CompareFunctor((unsigned)query.size())); for(SKKDictionaryEntryIterator iter = range.first; iter != range.second; ++ iter) { std::string completion = utf8_from_eucj(iter->first); helper.Add(completion); if(!helper.CanContinue()) return; } }
void SetList::sortByKey() { qSort(begin(), end(), CompareFunctor()); }