void interest_line_handler(unsigned char nfields, char** tokens) { unsigned short interest_id; person_id = atol(tokens[INTEREST_FIELD_PERSON]); interest_id = atoi(tokens[INTEREST_FIELD_INTEREST]); if (person_id != person_id_prev) { updatePerson(); person->interests_first = interest_offset; person->interest_n = 0; } fwrite(&interest_id, sizeof(unsigned short), 1, interest_out); interest_offset++; person->interest_n++; }
bool System::updatePeople(std::map<std::string, eca419::exercicio01::Pessoa*> people) { if (people.empty()) { return false; } bool success(true); for (std::map<std::string, eca419::exercicio01::Pessoa*>::iterator it(people.begin()); it != people.end(); it++) { if (!updatePerson(it->second)) { success = false; } } return success; }
void knows_line_handler(unsigned char nfields, char** tokens) { unsigned int knows_person_offset; person_id = atol(tokens[KNOWS_FIELD_PERSON]); unsigned long knows_id = atol(tokens[KNOWS_FIELD_FRIEND]); if (person_id != person_id_prev) { updatePerson(); person->knows_first = knows_offset; person->knows_n = 0; } // lookup other person and write offset knows_person_offset = kh_value(person_offsets, kh_get(pht, person_offsets, knows_id)); fwrite(&knows_person_offset, sizeof(unsigned int), 1, knows_out); knows_offset++; person->knows_n++; }