void PlainDictionary::convertMapping(unsigned int mapping) { switch(mapping) { case MAPPING1: this->mapping = mapping; updateIDs(); break; case MAPPING2: this->mapping = mapping; updateIDs(); break; default: break; } }
ExpandRequest::ExpandRequest( const RequestData& parentOrID, const ExpandRequestData& data ) : SearchResultRequest( parentOrID ) { enqueuePacket( updateIDs( new ExpandRequestPacket( data, getUser() ) ), MODULE_TYPE_MAP ); m_status = StringTable::TIMEOUT_ERROR; m_replyData = new SearchReplyData(); m_params = new SearchRequestParameters(); }
void PlainDictionary::load(std::istream & input, ControlInformation &ci, ProgressListener *listener) { std::string line; unsigned char region = 1; startProcessing(); std::string format = ci.getFormat(); if(format!=getType()) { throw "Trying to read a PlainDictionary but the data is not PlainDictionary"; } this->mapping = ci.getUint("mapping"); this->sizeStrings = ci.getUint("sizeStrings"); unsigned int numElements = ci.getUint("numEntries"); unsigned int numLine = 0; IntermediateListener iListener(listener); iListener.setRange(0,25); while(region<5 && getline(input, line,'\1')) { //std::cout << line << std::endl; if(line!="") { if (region == 1) { //shared SO NOTIFYCOND(&iListener, "Dictionary loading shared area.", numLine, numElements); insert(line, SHARED_SUBJECT); } else if (region == 2) { //not shared Subjects NOTIFYCOND(&iListener, "Dictionary loading subjects.", numLine, numElements); insert(line, NOT_SHARED_SUBJECT); NOTIFYCOND(&iListener, "Dictionary loading objects.", numLine, numElements); } else if (region == 3) { //not shared Objects insert(line, NOT_SHARED_OBJECT); NOTIFYCOND(&iListener, "Dictionary loading predicates.", numLine, numElements); } else if (region == 4) { //predicates insert(line, NOT_SHARED_PREDICATE); } } else { region++; } numLine++; } // No stopProcessing() Needed. Dictionary already split and sorted in file. updateIDs(); }
void PlainDictionary::idSort() { #ifdef _OPENMP #pragma omp parallel sections { { sort(shared.begin(), shared.end(), DictionaryEntry::cmpID); } { sort(subjects.begin(), subjects.end(), DictionaryEntry::cmpID); } { sort(objects.begin(), objects.end(), DictionaryEntry::cmpID); } { sort(predicates.begin(), predicates.end(), DictionaryEntry::cmpID); } } #else sort(shared.begin(), shared.end(), DictionaryEntry::cmpID); sort(subjects.begin(), subjects.end(), DictionaryEntry::cmpID); sort(objects.begin(), objects.end(), DictionaryEntry::cmpID); sort(predicates.begin(), predicates.end(), DictionaryEntry::cmpID); #endif updateIDs(); }
/** Lexicographic Sort * @param mapping Description of the param. * @return void */ void PlainDictionary::lexicographicSort(ProgressListener *listener) { #ifdef _OPENMP NOTIFY(listener, "Sorting dictionary", 0, 100); #pragma omp parallel sections if(objects.size()>100000) { { sort(predicates.begin(), predicates.end(), DictionaryEntry::cmpLexicographic); } { sort(shared.begin(), shared.end(), DictionaryEntry::cmpLexicographic); } { sort(subjects.begin(), subjects.end(), DictionaryEntry::cmpLexicographic); } { sort(objects.begin(), objects.end(), DictionaryEntry::cmpLexicographic); } } #else NOTIFY(listener, "Sorting shared", 0, 100); sort(shared.begin(), shared.end(), DictionaryEntry::cmpLexicographic); NOTIFY(listener, "Sorting subjects", 20, 100); sort(subjects.begin(), subjects.end(), DictionaryEntry::cmpLexicographic); NOTIFY(listener, "Sorting objects", 50, 100); sort(objects.begin(), objects.end(), DictionaryEntry::cmpLexicographic); NOTIFY(listener, "Sorting predicates", 90, 100); sort(predicates.begin(), predicates.end(), DictionaryEntry::cmpLexicographic); #endif NOTIFY(listener, "Update Dictionary IDs", 99, 100); updateIDs(); }