Timer& Timer::operator-=(time_t abs) { if(!is_active()) set(); timer.tv_sec -= _difftime(abs); return *this; }
Timer& Timer::operator+=(time_t abs) { if(!is_active()) set(); timer.tv_sec += _difftime(abs); updated = true; return *this; }
Timer& Timer::operator=(time_t abs) { #if _POSIX_TIMERS > 0 && defined(POSIX_TIMERS) clock_gettime(_posix_clocking, &timer); #else gettimeofday(&timer, NULL); #endif if(!abs) return *this; timer.tv_sec += _difftime(abs); updated = true; return *this; }
int main() { int list_size, i, choice; dl_node *list = NULL, *copy = NULL; char temp_name[MAX_NOME], temp_phone[MAX_FONE]; double time_result; clock_t _start; do { display_menu(); printf("Escolha uma opção: "); scanf("%d", &choice); switch (choice) { case 1: dllist_free_all(&list, tpc_generic_free); printf("Insira o tamanho total da lista: "); scanf("%d", &list_size); srand(time(NULL)); dllist_create(&list); // Populate with fake data for (i = 0; i < list_size; i++) { sprintf(temp_name, "Fulano %d", rand() / list_size); sprintf(temp_phone, "(%02d) %04d-%04d", rand() % 99, rand() % 9999, rand() % 9999); dllist_insert_tail(&list, tpc_create(temp_name, temp_phone), sizeof(TpContato)); } dllist_print_all_records(list, tpc_generic_print); break; case 2: dllist_free_all(©, tpc_generic_free); copy = dllist_copy(list, tpc_generic_clone); _start = clock(); dllist_insertion_sort(copy, tpc_generic_cmp); time_result = _difftime(_start); dllist_print_all_records(copy, tpc_generic_print); printf("Tempo: %lf segs\n", time_result); break; case 3: dllist_free_all(©, tpc_generic_free); copy = dllist_copy(list, tpc_generic_clone); _start = clock(); dllist_selection_sort(copy, tpc_generic_cmp); time_result = _difftime(_start); dllist_print_all_records(copy, tpc_generic_print); printf("Tempo: %lf segs\n", time_result); break; case 4: dllist_free_all(©, tpc_generic_free); copy = dllist_copy(list, tpc_generic_clone); _start = clock(); dllist_quick_sort(copy, tpc_generic_cmp); time_result = _difftime(_start); dllist_print_all_records(copy, tpc_generic_print); printf("Tempo: %lf segs\n", time_result); break; case 5: dllist_free_all(©, tpc_generic_free); copy = dllist_copy(list, tpc_generic_clone); _start = clock(); copy = dllist_merge_sort(©, tpc_generic_cmp); time_result = _difftime(_start); dllist_print_all_records(copy, tpc_generic_print); printf("Tempo: %lf segs\n", time_result); break; case 6: printf("Bye!\n"); break; default: printf("Opção inválida! [%d]\n", choice); } } while (choice != EXIT_OPTION); dllist_free_all(&list, tpc_generic_free); dllist_free_all(©, tpc_generic_free); return 0; }
Timer::Timer(time_t in) { set(); timer.tv_sec += _difftime(in); }
void Timer::set(time_t time) { set(); timer.tv_sec += _difftime(time); }