void query_line_handler(unsigned char nfields, char** tokens) { unsigned short q_id, q_artist, q_bdaystart, q_bdayend; unsigned short q_relartists[3]; q_id = atoi(tokens[QUERY_FIELD_QID]); q_artist = atoi(tokens[QUERY_FIELD_A1]); q_relartists[0] = atoi(tokens[QUERY_FIELD_A2]); q_relartists[1] = atoi(tokens[QUERY_FIELD_A3]); q_relartists[2] = atoi(tokens[QUERY_FIELD_A4]); q_bdaystart = birthday_to_short(tokens[QUERY_FIELD_BS]); q_bdayend = birthday_to_short(tokens[QUERY_FIELD_BE]); query(q_id, q_artist, q_relartists, q_bdaystart, q_bdayend); }
void person_line_handler(unsigned char nfields, char** tokens) { int ret; khiter_t k; person->person_id = atol(tokens[PERSON_FIELD_ID]); person->birthday = birthday_to_short(tokens[PERSON_FIELD_BIRTHDAY]); person->location = atoi(tokens[PERSON_FIELD_LOCATION]); // add mapping person id -> offset to hash table k = kh_put(pht, person_offsets, person->person_id, &ret); kh_value(person_offsets, k) = person_offset; // write binary person record to file fwrite(person, sizeof(Person), 1, person_out); person_offset++; }