![]() |
GNUnet
0.11.x
|
Time and time calculations. More...
Data Structures | |
struct | GNUNET_TIME_Absolute |
Time for absolute times used by GNUnet, in microseconds. More... | |
struct | GNUNET_TIME_Relative |
Time for relative time used by GNUnet, in microseconds. More... | |
struct | GNUNET_TIME_RelativeNBO |
Time for relative time used by GNUnet, in microseconds and in network byte order. More... | |
struct | GNUNET_TIME_AbsoluteNBO |
Time for absolute time used by GNUnet, in microseconds and in network byte order. More... | |
Functions | |
int | GNUNET_STRINGS_fancy_time_to_absolute (const char *fancy_time, struct GNUNET_TIME_Absolute *atime) |
Convert a given fancy human-readable time to our internal representation. More... | |
const char * | GNUNET_STRINGS_absolute_time_to_string (struct GNUNET_TIME_Absolute t) |
Like asctime , except for GNUnet time. More... | |
const char * | GNUNET_STRINGS_relative_time_to_string (struct GNUNET_TIME_Relative delta, int do_round) |
Give relative time in human-readable fancy format. More... | |
struct GNUNET_TIME_Relative | GNUNET_TIME_randomized_backoff (struct GNUNET_TIME_Relative rt, struct GNUNET_TIME_Relative threshold) |
Randomized exponential back-off, starting at 1 ms and going up by a factor of 2+r, where 0 <= r <= 0.5, up to a maximum of the given threshold. More... | |
struct GNUNET_TIME_Relative | GNUNET_TIME_randomize (struct GNUNET_TIME_Relative r) |
Return a random time value between 0.5*r and 1.5*r. More... | |
struct GNUNET_TIME_Relative | GNUNET_TIME_relative_get_zero_ (void) |
Return relative time of 0ms. More... | |
struct GNUNET_TIME_Absolute | GNUNET_TIME_absolute_get_zero_ (void) |
Return absolute time of 0ms. More... | |
struct GNUNET_TIME_Relative | GNUNET_TIME_relative_get_unit_ (void) |
Return relative time of 1 microsecond. More... | |
struct GNUNET_TIME_Relative | GNUNET_TIME_relative_get_millisecond_ (void) |
Return relative time of 1ms. More... | |
struct GNUNET_TIME_Relative | GNUNET_TIME_relative_get_second_ (void) |
Return relative time of 1s. More... | |
struct GNUNET_TIME_Relative | GNUNET_TIME_relative_get_minute_ (void) |
Return relative time of 1 minute. More... | |
struct GNUNET_TIME_Relative | GNUNET_TIME_relative_get_hour_ (void) |
Return relative time of 1 hour. More... | |
struct GNUNET_TIME_Relative | GNUNET_TIME_relative_get_forever_ (void) |
Return "forever". More... | |
struct GNUNET_TIME_Absolute | GNUNET_TIME_absolute_get_forever_ (void) |
Return "forever". More... | |
struct GNUNET_TIME_Absolute | GNUNET_TIME_absolute_get (void) |
Get the current time. More... | |
struct GNUNET_TIME_Absolute | GNUNET_TIME_relative_to_absolute (struct GNUNET_TIME_Relative rel) |
Convert relative time to an absolute time in the future. More... | |
int | GNUNET_TIME_round_abs (struct GNUNET_TIME_Absolute *at) |
Round a time value so that it is suitable for transmission via JSON encodings. More... | |
int | GNUNET_TIME_round_rel (struct GNUNET_TIME_Relative *rt) |
Round a time value so that it is suitable for transmission via JSON encodings. More... | |
struct GNUNET_TIME_Relative | GNUNET_TIME_relative_min (struct GNUNET_TIME_Relative t1, struct GNUNET_TIME_Relative t2) |
Return the minimum of two relative time values. More... | |
struct GNUNET_TIME_Relative | GNUNET_TIME_relative_max (struct GNUNET_TIME_Relative t1, struct GNUNET_TIME_Relative t2) |
Return the maximum of two relative time values. More... | |
struct GNUNET_TIME_Absolute | GNUNET_TIME_absolute_min (struct GNUNET_TIME_Absolute t1, struct GNUNET_TIME_Absolute t2) |
Return the minimum of two absolute time values. More... | |
struct GNUNET_TIME_Absolute | GNUNET_TIME_absolute_max (struct GNUNET_TIME_Absolute t1, struct GNUNET_TIME_Absolute t2) |
Return the maximum of two absolute time values. More... | |
struct GNUNET_TIME_Relative | GNUNET_TIME_absolute_get_remaining (struct GNUNET_TIME_Absolute future) |
Given a timestamp in the future, how much time remains until then? More... | |
struct GNUNET_TIME_Relative | GNUNET_TIME_calculate_eta (struct GNUNET_TIME_Absolute start, uint64_t finished, uint64_t total) |
Calculate the estimate time of arrival/completion for an operation. More... | |
struct GNUNET_TIME_Relative | GNUNET_TIME_absolute_get_difference (struct GNUNET_TIME_Absolute start, struct GNUNET_TIME_Absolute end) |
Compute the time difference between the given start and end times. More... | |
struct GNUNET_TIME_Relative | GNUNET_TIME_absolute_get_duration (struct GNUNET_TIME_Absolute whence) |
Get the duration of an operation as the difference of the current time and the given start time "hence". More... | |
struct GNUNET_TIME_Absolute | GNUNET_TIME_absolute_add (struct GNUNET_TIME_Absolute start, struct GNUNET_TIME_Relative duration) |
Add a given relative duration to the given start time. More... | |
struct GNUNET_TIME_Absolute | GNUNET_TIME_absolute_subtract (struct GNUNET_TIME_Absolute start, struct GNUNET_TIME_Relative duration) |
Subtract a given relative duration from the given start time. More... | |
struct GNUNET_TIME_Relative | GNUNET_TIME_relative_multiply (struct GNUNET_TIME_Relative rel, unsigned long long factor) |
Multiply relative time by a given factor. More... | |
struct GNUNET_TIME_Relative | GNUNET_TIME_relative_saturating_multiply (struct GNUNET_TIME_Relative rel, unsigned long long factor) |
Saturating multiply relative time by a given factor. More... | |
struct GNUNET_TIME_Relative | GNUNET_TIME_relative_divide (struct GNUNET_TIME_Relative rel, unsigned long long factor) |
Divide relative time by a given factor. More... | |
struct GNUNET_TIME_Relative | GNUNET_TIME_relative_add (struct GNUNET_TIME_Relative a1, struct GNUNET_TIME_Relative a2) |
Add relative times together. More... | |
struct GNUNET_TIME_Relative | GNUNET_TIME_relative_subtract (struct GNUNET_TIME_Relative a1, struct GNUNET_TIME_Relative a2) |
Subtract relative timestamp from the other. More... | |
struct GNUNET_TIME_RelativeNBO | GNUNET_TIME_relative_hton (struct GNUNET_TIME_Relative a) |
Convert relative time to network byte order. More... | |
struct GNUNET_TIME_Relative | GNUNET_TIME_relative_ntoh (struct GNUNET_TIME_RelativeNBO a) |
Convert relative time from network byte order. More... | |
struct GNUNET_TIME_AbsoluteNBO | GNUNET_TIME_absolute_hton (struct GNUNET_TIME_Absolute a) |
Convert absolute time to network byte order. More... | |
struct GNUNET_TIME_Absolute | GNUNET_TIME_absolute_ntoh (struct GNUNET_TIME_AbsoluteNBO a) |
Convert absolute time from network byte order. More... | |
void | GNUNET_TIME_set_offset (long long offset) |
Set the timestamp offset for this instance. More... | |
long long | GNUNET_TIME_get_offset (void) |
Get the timestamp offset for this instance. More... | |
unsigned int | GNUNET_TIME_get_current_year (void) |
Return the current year (i.e. More... | |
struct GNUNET_TIME_Absolute | GNUNET_TIME_year_to_time (unsigned int year) |
Convert a year to an expiration time of January 1st of that year. More... | |
unsigned int | GNUNET_TIME_time_to_year (struct GNUNET_TIME_Absolute at) |
Convert an expiration time to the respective year (rounds) More... | |
struct GNUNET_TIME_Absolute | GNUNET_TIME_absolute_get_monotonic (const struct GNUNET_CONFIGURATION_Handle *cfg) |
Obtain the current time and make sure it is monotonically increasing. More... | |
Time and time calculations.
#define GNUNET_TIME_UNIT_ZERO GNUNET_TIME_relative_get_zero_ () |
Relative time zero.
Definition at line 97 of file gnunet_time_lib.h.
Referenced by adapt_parallelism(), check_zone_namestore_next(), consider_sending_fc(), create_experiment(), get_delay(), get_delay_randomization(), get_transmit_delay(), GNUNET_ATS_solver_logging_now(), GNUNET_BANDWIDTH_tracker_get_delay(), GNUNET_DEFRAGMENT_process_fragment(), GNUNET_FS_search_make_status_(), GNUNET_FS_unindex_stop(), GNUNET_HELLO_equals(), GNUNET_NSE_connect(), GNUNET_SCHEDULER_add_with_priority(), GNUNET_TIME_absolute_get_difference(), GNUNET_TIME_absolute_get_duration(), GNUNET_TIME_absolute_get_remaining(), GNUNET_TIME_calculate_eta(), GNUNET_TIME_relative_multiply(), GNUNET_TIME_relative_saturating_multiply(), GNUNET_TIME_relative_subtract(), GNUNET_TRANSPORT_core_connect(), GNUNET_TRANSPORT_core_get_mq(), GSF_peer_connect_handler(), GST_ats_block_reset(), GST_neighbours_calculate_receive_delay(), GST_receive_callback(), handle_acknowledged(), handle_ats_address_suggestion(), handle_data(), handle_data_end(), handle_estimate(), handle_fragment_box(), handle_iterate_end(), handle_status(), handle_unindex_response(), handle_validation_response(), handle_watch_record(), main(), main_run(), maint_child_death(), process_result_with_request(), reconstruct_cb(), relative_multiply_double(), remove_timeout_messages_and_select(), reservations_reserve(), run(), select_loop(), signal_publish_completion(), start_dv_learn(), task_check(), transmit_next(), try_match_block(), udp_plugin_create_session(), update_excess(), and update_velocity().
#define GNUNET_TIME_UNIT_ZERO_ABS GNUNET_TIME_absolute_get_zero_ () |
Absolute time zero.
Definition at line 102 of file gnunet_time_lib.h.
Referenced by call_continuation(), check_link_down(), cleanup_validation_entry(), client_delete_session(), execute_get(), execute_select(), find_matching(), find_validation_entry(), GNUNET_DATASTORE_disconnect(), GNUNET_GNSRECORD_record_get_expiration_time(), GNUNET_HELLO_equals(), GNUNET_HELLO_get_last_expiration(), GNUNET_SCHEDULER_add_now(), GNUNET_TIME_absolute_subtract(), GSF_cadet_query_cancel(), handle_data_end(), handle_dht_reply(), handle_dv_learn(), handle_get_key(), handle_p2p_put(), handle_reliability_box(), handle_response_end(), handle_validation_response(), heap_plugin_get_expiration(), heap_plugin_get_key(), heap_plugin_get_replication(), heap_plugin_get_zero_anonymity(), mq_error_handler(), mysql_plugin_get_replication(), notify_session_monitor(), ns_lookup_result_cb(), postgres_plugin_get_key(), postgres_plugin_get_replication(), postgres_plugin_get_zero_anonymity(), process_result(), publish_sblocks_cont(), reconnect_peer_ctx(), server_delete_session(), server_lookup_connection(), sqlite_plugin_get_expiration(), sqlite_plugin_get_key(), sqlite_plugin_get_replication(), sqlite_plugin_get_zero_anonymity(), start_insert(), tcp_plugin_disconnect_session(), unix_plugin_session_disconnect(), and update_active_address().
#define GNUNET_TIME_UNIT_MICROSECONDS GNUNET_TIME_relative_get_unit_ () |
One microsecond, our basic time unit.
Definition at line 107 of file gnunet_time_lib.h.
Referenced by estimate_latency(), reannounce_regex(), and revalidate_address().
#define GNUNET_TIME_UNIT_MILLISECONDS GNUNET_TIME_relative_get_millisecond_ () |
One millisecond.
Definition at line 112 of file gnunet_time_lib.h.
Referenced by attempt_connect_task(), calculate_pow(), check_disconnect(), client_schedule(), context_task(), create_macendpoint(), curl_download_prepare(), delay_ms_rnd(), download_prepare(), get_randomized_delay(), GNUNET_CRYPTO_random_timeflake(), GNUNET_RESOLVER_connect(), GNUNET_SET_listen(), GNUNET_SETI_listen(), GNUNET_SETU_listen(), GNUNET_STATISTICS_create(), GNUNET_TIME_randomized_backoff(), handle_init_reply(), handle_p2p_put(), handle_request(), handle_statistics_end(), peer_id_cb(), process_queue(), process_requests(), reconnect(), send_hello(), server_schedule(), setup_service(), shutdown_task(), test_master(), try_reconnect(), and udp_plugin_create_session().
#define GNUNET_TIME_UNIT_SECONDS GNUNET_TIME_relative_get_second_ () |
One second.
Definition at line 117 of file gnunet_time_lib.h.
Referenced by announce_id(), ats_perf_cb(), ats_perf_mon_cb(), churn(), cleanup_expired_records(), client_connect_cb(), client_schedule(), consider_gathering(), consider_sending_fc(), expire_records_continuation(), find_best_address_it(), force_reconnect(), GCD_init(), get_delay(), GNUNET_ATS_TEST_logging_now(), GNUNET_ATS_TEST_traffic_handle_pong(), GNUNET_DEFRAGMENT_context_create(), GNUNET_DNSPARSER_parse_record(), GNUNET_FRAGMENT_process_ack(), GNUNET_NETWORK_socket_select(), GNUNET_RPS_request_peer_info(), GNUNET_RPS_request_peers(), GNUNET_RPS_sub_start(), GNUNET_TESTBED_run(), GNUNET_TRANSPORT_TESTING_start_peer(), GSF_cadet_query_cancel(), GSF_pending_request_create_(), handle_core_connect(), handle_data(), handle_dht_local_get(), handle_reliability_box(), handle_transport_notify_connect(), hello_offered(), helper_read(), helper_write(), incoming_channel(), iter_finished(), libgnunet_plugin_transport_udp_init(), main(), peer_id_cb(), plan(), profiler_cb(), put_migration_continuation(), reconnect(), rest_process_request(), run(), sample_load_task(), schedule_missing_requests(), server_schedule(), start_cb(), start_helper(), start_typemap_task(), store_pi(), task_check(), try_send_tcp(), and update_excess().
#define GNUNET_TIME_UNIT_MINUTES GNUNET_TIME_relative_get_minute_ () |
One minute.
Definition at line 122 of file gnunet_time_lib.h.
Referenced by announce_next_regex(), download_hostlist(), dyndns_lookup(), error_handler(), get_age(), GNUNET_ARM_request_service_start(), GNUNET_FS_start(), GNUNET_HOSTLIST_client_start(), GNUNET_SERVER_inject(), lookup_authz_cb(), main(), maint_child_death(), maintain_connections_cb(), mq_send_impl(), odc_warn_delay_task(), process_job_queue(), process_local_reply(), put_migration_continuation(), register_sender(), run(), schedule_next_put(), send_find_peer_message(), service_client_mst_cb(), start_local_query(), topology_setup_done(), update_zoneinfo_page(), warn_delay_task(), warn_no_client_continue(), warn_no_receive_done(), and work().
#define GNUNET_TIME_UNIT_HOURS GNUNET_TIME_relative_get_hour_ () |
One hour.
Definition at line 127 of file gnunet_time_lib.h.
Referenced by add_attribute_cont(), add_credential_cont(), dns_result_parser(), do_dht_put(), main(), namecache_sqlite_cache_block(), put_migration_continuation(), run(), and task_check().
#define GNUNET_TIME_UNIT_DAYS |
One day.
Definition at line 132 of file gnunet_time_lib.h.
Referenced by make_file(), and process_result().
#define GNUNET_TIME_UNIT_WEEKS |
One week.
Definition at line 138 of file gnunet_time_lib.h.
Referenced by sign_pow_identity().
#define GNUNET_TIME_UNIT_MONTHS |
One month (30 days).
Definition at line 144 of file gnunet_time_lib.h.
#define GNUNET_TIME_UNIT_YEARS |
One year (365 days).
Definition at line 150 of file gnunet_time_lib.h.
Referenced by cadet_reply_proc(), GNUNET_REVOCATION_pow_start(), handle_dht_reply(), handle_p2p_put(), and run().
#define GNUNET_TIME_UNIT_FOREVER_REL GNUNET_TIME_relative_get_forever_ () |
Constant used to specify "forever".
This constant will be treated specially in all time operations.
Definition at line 157 of file gnunet_time_lib.h.
Referenced by accept_client(), ack_proc(), check_timeouts(), child_death_task(), compute_rand_delay(), connect_success_continuation(), consider_sending_fc(), context_task(), create_listen_socket(), curl_download_prepare(), delayed_restart_task(), do_accept(), do_reconnect(), do_resume(), do_s5r_read(), do_send(), do_udp_read(), do_write(), ds_put_cont(), encapsulate_for_dv(), encode_cont(), enforce_start_send(), extract_rel_time(), find_validation_entry(), free_queue(), get_transmit_delay(), GNUNET_ATS_solver_generate_preferences_start(), GNUNET_BANDWIDTH_tracker_get_delay(), GNUNET_BANDWIDTH_value_get_delay_for(), GNUNET_FS_publish_main_(), GNUNET_FS_unindex_start(), GNUNET_HELPER_send(), GNUNET_JSON_from_time_rel(), GNUNET_NAT_AUTO_test_start(), GNUNET_NAT_mini_get_external_ipv4_(), GNUNET_NAT_test_start(), GNUNET_NETWORK_socket_select(), GNUNET_OS_install_parent_control_handler(), GNUNET_SCHEDULER_driver_init(), GNUNET_SERVER_resume(), GNUNET_STRINGS_fancy_time_to_relative(), GNUNET_STRINGS_relative_time_to_string(), GNUNET_TIME_absolute_get_difference(), GNUNET_TIME_absolute_get_remaining(), GNUNET_TIME_calculate_eta(), GNUNET_TIME_relative_add(), GNUNET_TIME_relative_divide(), GNUNET_TIME_relative_multiply(), GNUNET_TIME_relative_saturating_multiply(), GNUNET_TIME_relative_subtract(), GNUNET_TIME_round_rel(), gnunet_uri(), GST_neighbours_calculate_receive_delay(), GST_neighbours_keepalive(), handle_add_queue_message(), handle_command(), handle_dv_learn(), handle_test(), helper_read(), helper_write(), init_range(), init_socket(), internal_update(), LEGACY_SERVICE_run(), LEGACY_SERVICE_start(), listen_cb(), listen_stdio(), load_op_start_set_preference(), main(), maint_child_death(), mq_init(), mq_send(), nat_address_cb(), nat_server_read(), parent_control_handler(), parse_rel_time(), ping(), plugin_monitoring_cb(), pong(), prepare_daemon(), process_job_queue(), progress_cb(), proto_read_kx(), queue_destroy(), queue_read_kx(), queue_write(), read_dns4(), read_dns6(), read_external_ipv4(), read_task(), receive_complete_cb(), receive_ready(), recursive_gns2dns_resolution(), relative_multiply_double(), rest_identity_process_request(), rest_process_request(), restart_nat_server(), resume_client_receive(), route_control_message_without_fc(), route_via_neighbour(), run(), run_httpd(), schedule_httpd(), schedule_next_hello(), schedule_read(), schedule_select_v4(), schedule_select_v6(), select_read_cb(), select_write_cb(), send_disconnect(), send_keepalive(), send_session_ack_message(), send_syn_ack_message(), send_with_session(), service_client_recv(), set_incoming_quota(), setup_service(), shutdown_pipe_cb(), signal_publish_error(), signal_socks_failure(), signal_socks_success(), signal_unindex_error(), sock_read(), start_address_validation(), start_client(), start_helper(), stdin_cb(), stun_read_task(), testing_main(), tokenizer_cb(), topology_setup_done(), transmit_next(), transmit_ready(), try_connection_reversal(), try_handle_plaintext(), udp_ipv4_broadcast_send(), udp_ipv6_broadcast_send(), unix_plugin_select_read(), unix_plugin_select_write(), unix_plugin_send(), unix_transport_server_start(), update_performance_data(), work(), write_task(), and zone_iteration_finished().
#define GNUNET_TIME_UNIT_FOREVER_ABS GNUNET_TIME_absolute_get_forever_ () |
Constant used to specify "forever".
This constant will be treated specially in all time operations.
Definition at line 163 of file gnunet_time_lib.h.
Referenced by ack_proc(), add_address_to_hello(), add_host(), add_to_buf(), call_continuation(), consider_for_advertising(), create_session(), delayed_put(), disconnect_neighbour(), encrypt_existing_match(), extract_abs_time(), extract_abs_time_nbo(), flush_respect(), free_neighbour(), get_existing_record(), get_timeout(), GNUNET_ATS_TEST_generate_traffic_start(), GNUNET_GNSRECORD_record_get_expiration_time(), GNUNET_HELLO_equals(), GNUNET_JSON_from_time_abs(), GNUNET_PEERSTORE_iterate(), GNUNET_SCHEDULER_add_shutdown(), GNUNET_STRINGS_absolute_time_to_string(), GNUNET_STRINGS_fancy_time_to_absolute(), GNUNET_TIME_absolute_add(), GNUNET_TIME_absolute_subtract(), GNUNET_TIME_relative_to_absolute(), GNUNET_TIME_round_abs(), GSC_KX_handle_client_monitor_peers(), GSF_pending_request_create_(), GSF_request_plan_reference_get_last_transmission_(), handle_data(), handle_dv_learn(), handshake_ack_monotime_cb(), handshake_monotime_cb(), ns_lookup_result_cb(), parse_abs_time(), parse_expiration(), parse_record(), process_reply(), process_result(), process_result_with_request(), quota_processor(), reconnect(), rekey_monotime_cb(), RPS_sampler_elem_reinit(), sampler_mod_get_rand_peer(), schedule_watch_request(), select_loop(), setup_neighbour(), setup_service(), sign_ephemeral_key(), try_transmission(), update_backtalker_monotime(), and update_hello().
#define GNUNET_TIME_STD_EXPONENTIAL_BACKOFF_THRESHOLD GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MINUTES, 15) |
Threshold after which exponential backoff should not increase (15 m).
Definition at line 169 of file gnunet_time_lib.h.
Referenced by restart_nat_server().
#define GNUNET_TIME_STD_BACKOFF | ( | r | ) |
Perform our standard exponential back-off calculation, starting at 1 ms and then going by a factor of 2 up unto a maximum of 15 m.
r | current backoff time, initially zero |
Definition at line 179 of file gnunet_time_lib.h.
Referenced by announce_id(), callback_reconnect(), channel_open_sent_cb(), connect_fail_continuation(), data_sent_cb(), disconnect_and_schedule_reconnect(), do_reconnect(), force_reconnect(), GNUNET_TESTBED_is_host_habitable(), GST_ats_block_address(), habitability_check(), handle_client_listener_error(), maint_child_death(), mq_error_handler(), reconnect(), reconnect_arm_later(), reconnect_arm_monitor_later(), reconnect_cbk(), reconnect_later(), reconnect_peer_ctx(), reconnect_plugin_ctx(), reschedule_connect(), schedule_reconnect(), send_create(), send_create_ack(), send_kx(), send_kx_auth(), set_key_retry_task(), transmit_request(), transmit_typemap_task(), try_again(), and try_reconnect().
int GNUNET_STRINGS_fancy_time_to_absolute | ( | const char * | fancy_time, |
struct GNUNET_TIME_Absolute * | atime | ||
) |
Convert a given fancy human-readable time to our internal representation.
The human-readable time is expected to be in local time, whereas the returned value will be in UTC.
fancy_time | human readable string (i.e. Y-m-d H:M:S) |
atime | set to the absolute time |
Definition at line 407 of file strings.c.
References GNUNET_TIME_Absolute::abs_value_us, GNUNET_OK, GNUNET_SYSERR, GNUNET_TIME_UNIT_FOREVER_ABS, and t.
Referenced by database_setup(), parse_expiration(), parse_record(), set_absolute_time(), and sign_cb().
const char* GNUNET_STRINGS_absolute_time_to_string | ( | struct GNUNET_TIME_Absolute | t | ) |
Like asctime
, except for GNUnet time.
Converts a GNUnet internal absolute time (which is in UTC) to a string in local time. Note that the returned value will be overwritten if this function is called again.
t | the absolute time to convert |
Like asctime
, except for GNUnet time.
Converts a GNUnet internal absolute time (which is in UTC) to a string in local time. Note that the returned value will be overwritten if this function is called again.
t | the absolute time to convert |
Definition at line 758 of file strings.c.
References GNUNET_TIME_Absolute::abs_value_us, buf, GNUNET_THREAD_LOCAL, GNUNET_TIME_UNIT_FOREVER_ABS, and tt.
Referenced by block_decrypt_ecdsa(), display_record(), do_rekey(), dump_pc(), execute_get(), execute_select(), fragmented_message_done(), get_resp_callback(), get_transmit_delay(), GNUNET_CONTAINER_meta_data_add_publication_date(), GNUNET_GNSRECORD_JSON_from_gnsrecord(), GNUNET_GNSRECORD_record_get_expiration_time(), got_hello(), handle_dht_response(), handle_p2p_estimate(), handle_validation_response(), inject_rekey(), monitor_cb(), monitor_notify_connect(), monitor_notify_disconnect(), namecache_sqlite_cache_block(), neighbours_changed_notification(), ns_lookup_result_cb(), parse_expiration(), perform_dht_put(), print_info(), print_plugin_event_info(), printer(), printer_watch(), process_queue(), process_record(), put_callback(), refresh_block(), select_loop(), set_state_and_timeout(), sqlite_plugin_put(), store_and_free_entries(), store_pi(), timeout_cb(), transmit_item(), transmit_task_cb(), update_pm_next_attempt(), and warn_monitor_slow().
const char* GNUNET_STRINGS_relative_time_to_string | ( | struct GNUNET_TIME_Relative | delta, |
int | do_round | ||
) |
Give relative time in human-readable fancy format.
This is one of the very few calls in the entire API that is NOT reentrant!
delta | time in milli seconds |
do_round | are we allowed to round a bit? |
This is one of the very few calls in the entire API that is NOT reentrant!
delta | time in milli seconds |
do_round | are we allowed to round a bit? |
Definition at line 702 of file strings.c.
References buf, GNUNET_snprintf(), GNUNET_THREAD_LOCAL, GNUNET_TIME_UNIT_FOREVER_REL, GNUNET_YES, and GNUNET_TIME_Relative::rel_value_us.
Referenced by ack_proc(), ats_reserve_callback(), channel_open_sent_cb(), client_receive(), client_receive_mst_cb(), client_session_timeout(), connect_fail_continuation(), consider_sending_fc(), data_sent_cb(), delay_warning(), delayed_restart_task(), disconnect_and_schedule_reconnect(), display_record(), do_directory_scan(), do_disconnect(), do_shutdown(), do_speedup(), experiment_done_cb(), expired_processor(), find_proof(), flush_bulk(), fragmented_message_done(), get_delay_randomization(), get_transmit_delay(), GNUNET_ATS_solver_logging_start(), GNUNET_ATS_solvers_experimentation_load(), GNUNET_ATS_solvers_experimentation_run(), GNUNET_ATS_TEST_experimentation_load(), GNUNET_ATS_TEST_experimentation_run(), GNUNET_BANDWIDTH_tracker_get_delay(), GNUNET_BANDWIDTH_value_get_available_until(), GNUNET_BANDWIDTH_value_get_delay_for(), GNUNET_DATASTORE_put(), GNUNET_GNSRECORD_JSON_from_gnsrecord(), GNUNET_HOSTLIST_client_start(), GNUNET_SCHEDULER_do_work(), GNUNET_SPEEDUP_start_(), GSC_CLIENTS_solicit_request(), GSF_block_peer_migration_(), GST_ats_block_address(), GST_ats_update_delay(), GST_manipulation_init(), GST_manipulation_recv(), GST_manipulation_send(), GST_neighbours_calculate_receive_delay(), GST_neighbours_keepalive_response(), GST_receive_callback(), GST_validation_start(), handle_announce(), handle_client_join(), handle_client_send(), handle_data(), handle_dv_learn(), handle_encrypted(), handle_monitor_event(), handle_p2p_migration_stop(), handle_p2p_put(), handle_send_transmit_continuation(), handle_tcp_data(), handler_advertisement(), http_client_plugin_update_inbound_delay(), http_server_plugin_update_inbound_delay(), list_callback(), load_episode(), load_episodes(), maint_child_death(), manage_first_hop_mq(), master_task(), monitor_cb(), odc_warn_delay_task(), parse_expiration(), plan(), pong_handler(), print_plugin_event_info(), process_job_queue(), process_mst(), process_stat(), process_stdin(), prof_time(), progress_cb(), put_gns_record(), put_migration_continuation(), qc_message_sent(), queue_read(), queue_timeout(), quota_processor(), read_process_ack(), receive_ready(), RECLAIM_TICKETS_init(), reconnect(), regex_found_handler(), remove_timeout_messages_and_select(), reschedule_connect(), reservations_reserve(), revalidate_address(), run(), schedule_peer_transmission(), schedule_select_v4(), schedule_select_v6(), search_timed_out(), server_access_cb(), server_receive_mst_cb(), server_session_timeout(), session_timeout(), shutdown_task(), sqlite_plugin_put(), start_dv_learn(), store_completed_cb(), task_check(), task_hostlist_saving(), tcp_plugin_update_inbound_delay(), test_master(), timeout_cb(), timeout_episode(), transmit_item(), transmit_next(), try_reconnect(), try_transmission(), udp_plugin_send(), update_excess(), update_ping_data(), update_tracker(), update_velocity(), validation_start_cb(), warn_delay(), warn_delay_task(), warn_no_client_continue(), warn_no_receive_done(), and zone_iteration_finished().
struct GNUNET_TIME_Relative GNUNET_TIME_randomized_backoff | ( | struct GNUNET_TIME_Relative | rt, |
struct GNUNET_TIME_Relative | threshold | ||
) |
Randomized exponential back-off, starting at 1 ms and going up by a factor of 2+r, where 0 <= r <= 0.5, up to a maximum of the given threshold.
rt | current backoff time, initially zero |
threshold | maximum value for backoff |
Randomized exponential back-off, starting at 1 ms and going up by a factor of 2+r, where 0 <= r <= 0.5, up to a maximum of the given threshold.
r | current backoff time, initially zero |
threshold | maximum value for backoff |
Definition at line 790 of file time.c.
References GNUNET_TIME_relative_max(), GNUNET_TIME_relative_min(), GNUNET_TIME_UNIT_MILLISECONDS, relative_multiply_double(), and threshold.
Referenced by error_handler(), and validation_start_cb().
struct GNUNET_TIME_Relative GNUNET_TIME_randomize | ( | struct GNUNET_TIME_Relative | r | ) |
Return a random time value between 0.5*r and 1.5*r.
r | input time for scaling |
Definition at line 810 of file time.c.
References relative_multiply_double().
Referenced by start_dv_learn().
struct GNUNET_TIME_Relative GNUNET_TIME_relative_get_zero_ | ( | void | ) |
Return relative time of 0ms.
Definition at line 135 of file time.c.
References zero.
Referenced by create_handle(), delayed_disconnect_channel(), and on_identity().
struct GNUNET_TIME_Absolute GNUNET_TIME_absolute_get_zero_ | ( | void | ) |
Return absolute time of 0ms.
Definition at line 147 of file time.c.
References zero.
Referenced by GNUNET_GNSRECORD_block_get_expiration().
struct GNUNET_TIME_Relative GNUNET_TIME_relative_get_unit_ | ( | void | ) |
Return relative time of 1 microsecond.
Return relative time of 1 microsecond.
Definition at line 159 of file time.c.
struct GNUNET_TIME_Relative GNUNET_TIME_relative_get_millisecond_ | ( | void | ) |
Return relative time of 1ms.
Definition at line 171 of file time.c.
struct GNUNET_TIME_Relative GNUNET_TIME_relative_get_second_ | ( | void | ) |
Return relative time of 1s.
Definition at line 183 of file time.c.
Referenced by idle_request_room_messages(), and login_cont().
struct GNUNET_TIME_Relative GNUNET_TIME_relative_get_minute_ | ( | void | ) |
Return relative time of 1 minute.
Definition at line 195 of file time.c.
Referenced by register_reciever().
struct GNUNET_TIME_Relative GNUNET_TIME_relative_get_hour_ | ( | void | ) |
Return relative time of 1 hour.
Definition at line 207 of file time.c.
struct GNUNET_TIME_Relative GNUNET_TIME_relative_get_forever_ | ( | void | ) |
Return "forever".
Definition at line 219 of file time.c.
Referenced by main().
struct GNUNET_TIME_Absolute GNUNET_TIME_absolute_get_forever_ | ( | void | ) |
Return "forever".
Definition at line 231 of file time.c.
struct GNUNET_TIME_Absolute GNUNET_TIME_absolute_get | ( | void | ) |
Get the current time.
Get the current time.
Definition at line 118 of file time.c.
References GNUNET_TIME_Absolute::abs_value_us, ret, and timestamp_offset.
Referenced by ack_proc(), add_valid_address(), add_without_sets(), announce_id(), block_create_ecdsa(), block_decrypt_ecdsa(), cache_nick(), check_vl_transmission(), cleanup_expired_records(), client_receive(), client_receive_mst_cb(), code_redirect(), comm_schedule_send(), consider_for_advertising(), consider_path_cb(), continue_store_activity(), convert_records_for_export(), cookie_identity_interpretation(), core_init(), create_download_context(), create_peers(), create_session(), cron_clean_data_hosts(), cummulative_ack(), data_sent_cb(), dht_connect_cb(), do_directory_scan(), do_transmit(), event_cb(), expire_blocks(), expired_processor(), find_proof(), flush_bulk(), GAS_addresses_add(), GAS_addresses_update(), GCC_handle_connection_create_ack(), GCC_handle_encrypted(), GCC_transmit(), GCT_add_inbound_connection(), GDS_ROUTING_add(), get_age(), get_nick_record(), get_redirect_state(), get_timeout(), GNUNET_ATS_solver_generate_preferences_start(), GNUNET_ATS_solver_generate_property_start(), GNUNET_ATS_solver_logging_now(), GNUNET_ATS_solvers_experimentation_run(), GNUNET_ATS_TEST_experimentation_run(), GNUNET_ATS_TEST_generate_preferences_start(), GNUNET_ATS_TEST_generate_traffic_start(), GNUNET_ATS_TEST_logging_now(), GNUNET_ATS_TEST_logging_start(), GNUNET_ATS_TEST_logging_write_to_file(), GNUNET_ATS_TEST_traffic_handle_pong(), GNUNET_BANDWIDTH_tracker_init2(), GNUNET_CONTAINER_meta_data_add_publication_date(), GNUNET_CRYPTO_random_timeflake(), GNUNET_DEFRAGMENT_process_fragment(), GNUNET_FS_publish_main_(), GNUNET_FS_queue_(), GNUNET_FS_search_probe_progress_(), GNUNET_FS_unindex_start(), GNUNET_LOAD_update(), GNUNET_LOAD_value_init(), GNUNET_SCHEDULER_add_at_with_priority(), GNUNET_SCHEDULER_add_now(), GNUNET_SCHEDULER_add_select(), GNUNET_SCHEDULER_add_shutdown(), GNUNET_SCHEDULER_add_with_reason_and_priority(), GNUNET_SCHEDULER_do_work(), GNUNET_SCHEDULER_run(), GNUNET_SERVER_connect_socket(), GNUNET_SERVER_inject(), GNUNET_TIME_absolute_get_duration(), GNUNET_TIME_absolute_get_monotonic(), GNUNET_TIME_absolute_get_remaining(), GNUNET_TIME_relative_to_absolute(), GNUNET_TIME_year_to_time(), GSC_KX_encrypt_and_transmit(), GSC_SESSIONS_set_typemap(), GSF_peer_transmit_(), GSF_pending_request_create_(), GSF_pending_request_get_message_(), GST_validation_start(), handle_client_send(), handle_client_send_request(), handle_connection_create(), handle_dht_local_get(), handle_dht_reply(), handle_dummy(), handle_dv_learn(), handle_ephemeral_key(), handle_fragment_box(), handle_icmp_back(), handle_monitor_event(), handle_monitor_next(), handle_p2p_estimate(), handle_p2p_put(), handle_stop(), handle_tcp_back(), handle_tcp_data(), handle_tcp_nat_probe(), handle_tcp_welcome(), handle_udp_back(), handler_advertisement(), insert_sorted(), iterate_zones(), iteration_start(), lookup_authz_cb(), manage_first_hop_mq(), merge_with_nick_records(), monitor_cb(), monitor_notify_connect(), monitor_notify_disconnect(), monitor_unblock(), mylog(), mysql_plugin_get_expiration(), namecache_postgres_expire_blocks(), namecache_sqlite_cache_block(), namecache_sqlite_expire_blocks(), notify_connect(), OIDC_generate_id_token(), pack_room_message(), peer_transmit(), postgres_plugin_del(), postgres_plugin_get(), postgres_plugin_get_closest(), postgres_plugin_get_expiration(), postgres_plugin_get_random(), prepare_pending_acknowledgement(), printer(), printer_watch(), process_incoming(), process_local_reply(), process_queue(), process_result(), process_rq_task(), process_stdin(), progress_cb(), put_gns_record(), read_host_file(), read_process_fragment(), read_start_time(), read_stdio(), RECLAIM_TICKETS_consume(), remove_expired(), route_message(), route_packet(), route_via_neighbour(), RPS_sampler_elem_reinit(), run(), run_zone_iteration_round(), sample_load_task(), sampler_mod_get_rand_peer(), scan(), schedule_peer_transmission(), search_start(), select_best_pending_from_link(), send_disconnect(), send_keepalive(), send_kx(), send_kx_auth(), send_syn(), send_utilization_data(), service_client_mst_cb(), session_disconnect_adapter(), set_feedback_task(), setup_estimate_message(), setup_neighbour(), setup_state_record(), shutdown_task(), sign_ephemeral_key(), sign_pow_identity(), solver_bandwidth_changed_cb(), sqlite_plugin_del(), sqlite_plugin_get(), sqlite_plugin_get_closest(), sqlite_plugin_get_expiration(), start_address_validation(), start_dht_request(), start_download(), start_dv_learn(), start_job(), start_local_query(), start_peers_task(), start_process(), start_publish(), stat_iterator(), store_completed_cb(), store_skipped_key(), t_ax_encrypt(), test_exist_cb(), tmt_rdy_ping(), transmit_next(), transmit_ping_if_allowed(), transmit_ready_callback_wrapper(), try_transmission(), udp_plugin_create_session(), udp_plugin_send(), udp_select_send(), unix_plugin_send(), update_active_address(), update_ax_by_kx(), update_excess(), update_hello(), update_hostlist(), update_ping_data(), update_tracker(), update_velocity(), updateAgedLoad(), and wait_op_completion().
struct GNUNET_TIME_Absolute GNUNET_TIME_relative_to_absolute | ( | struct GNUNET_TIME_Relative | rel | ) |
Convert relative time to an absolute time in the future.
rel | relative time to convert |
Definition at line 246 of file time.c.
References GNUNET_TIME_Absolute::abs_value_us, GNUNET_break, GNUNET_TIME_absolute_get(), GNUNET_TIME_UNIT_FOREVER_ABS, and ret.
Referenced by add_setter_action(), add_without_sets(), boot_queue(), cadet_reply_proc(), check_for_glue(), check_for_rekeying(), client_receive_mst_cb(), client_reschedule_session_timeout(), create_macendpoint(), create_session(), data_sent_cb(), do_dht_put(), download_hostlist(), forward_dv_box(), GNUNET_CONNECTION_notify_transmit_ready(), GNUNET_CONNECTION_receive(), GNUNET_DNSPARSER_parse_record(), GNUNET_GNSRECORD_record_get_expiration_time(), GNUNET_OS_command_run(), GNUNET_RESOLVER_hostname_get(), GNUNET_RESOLVER_ip_get(), GNUNET_SCHEDULER_add_delayed_with_priority(), GNUNET_SCHEDULER_add_select(), GSC_SESSIONS_transmit(), GSF_pending_request_create_(), GST_ats_block_address(), GST_manipulation_send(), GST_neighbours_handle_session_ack(), GST_neighbours_handle_session_syn(), GST_neighbours_handle_session_syn_ack(), GST_neighbours_keepalive_response(), GST_neighbours_send(), GST_neighbours_session_terminated(), GST_validation_handle_ping(), GST_validation_handle_pong(), handle_client_call_message(), handle_dht_reply(), handle_dv_box(), handle_dv_learn(), handle_find_peer(), handle_fragment_box(), handle_gns_resolution_result(), handle_p2p_migration_stop(), handle_p2p_put(), handle_reliability_box(), handle_validation_response(), http_client_plugin_get_session(), http_client_plugin_update_inbound_delay(), http_server_plugin_update_inbound_delay(), learn_dv_path(), listen_cb(), login_cont(), maint_child_death(), make_file(), master_task(), modify_address(), mq_init(), ns_lookup_result_cb(), plan(), process_data(), process_record(), process_result(), publish_fs_connect_complete_cb(), put_migration_continuation(), refresh_hello_task(), regex_iterator(), reschedule_queue_timeout(), reschedule_receiver_timeout(), reschedule_sender_timeout(), reschedule_session_timeout(), revalidate_address(), run(), schedule_next_hello(), send_create(), send_create_ack(), send_keepalive(), send_kx(), send_kx_auth(), send_session_syn_ack_cont(), send_session_syn_cont(), send_syn(), send_syn_ack_message(), send_with_fragmentation(), server_lookup_connection(), server_receive_mst_cb(), server_reschedule_session_timeout(), setup_filter(), setup_out_cipher(), setup_queue(), setup_sender(), sign_ephemeral_key(), start_address_validation(), store_pi(), switch_address_bl_check_cont(), tcp_plugin_send(), tcp_plugin_update_inbound_delay(), transmit_next(), transmit_on_queue(), transmit_ping_if_allowed(), transmit_request(), udp_plugin_create_session(), udp_plugin_send(), unix_plugin_get_session(), update_timeout(), validation_start_cb(), vpn_allocation_cb(), and wlan_plugin_update_session_timeout().
int GNUNET_TIME_round_abs | ( | struct GNUNET_TIME_Absolute * | at | ) |
Round a time value so that it is suitable for transmission via JSON encodings.
at | time to round |
Definition at line 80 of file time.c.
References GNUNET_TIME_Absolute::abs_value_us, GNUNET_NO, GNUNET_OK, and GNUNET_TIME_UNIT_FOREVER_ABS.
Referenced by GNUNET_JSON_from_time_abs().
int GNUNET_TIME_round_rel | ( | struct GNUNET_TIME_Relative * | rt | ) |
Round a time value so that it is suitable for transmission via JSON encodings.
rt | time to round |
Definition at line 100 of file time.c.
References GNUNET_NO, GNUNET_OK, GNUNET_TIME_UNIT_FOREVER_REL, and GNUNET_TIME_Relative::rel_value_us.
Referenced by GNUNET_JSON_from_time_rel().
struct GNUNET_TIME_Relative GNUNET_TIME_relative_min | ( | struct GNUNET_TIME_Relative | t1, |
struct GNUNET_TIME_Relative | t2 | ||
) |
Return the minimum of two relative time values.
t1 | first timestamp |
t2 | other timestamp |
Definition at line 272 of file time.c.
Referenced by announce_id(), calculate_put_interval(), check_timeouts(), check_zone_namestore_next(), delayed_restart_task(), download_prepare(), encapsulate_for_dv(), find_advertisable_hello(), find_min_max_it(), GNUNET_ATS_TEST_traffic_handle_pong(), GNUNET_FRAGMENT_process_ack(), GNUNET_TIME_randomized_backoff(), handle_validation_response(), master_task(), process_job_queue(), put_migration_continuation(), reconnect(), revalidate_address(), route_control_message_without_fc(), route_via_neighbour(), schedule_next_put(), schedule_next_task(), start_address_validation(), and try_connect_using_address().
struct GNUNET_TIME_Relative GNUNET_TIME_relative_max | ( | struct GNUNET_TIME_Relative | t1, |
struct GNUNET_TIME_Relative | t2 | ||
) |
Return the maximum of two relative time values.
t1 | first timestamp |
t2 | other timestamp |
Definition at line 287 of file time.c.
Referenced by announce_id(), consider_gathering(), data_sent_cb(), find_min_max_it(), GNUNET_CURL_append_header(), GNUNET_TIME_randomized_backoff(), GST_manipulation_recv(), put_migration_continuation(), reconnect(), schedule_next_task(), send_keep_alive(), and transmit_next().
struct GNUNET_TIME_Absolute GNUNET_TIME_absolute_min | ( | struct GNUNET_TIME_Absolute | t1, |
struct GNUNET_TIME_Absolute | t2 | ||
) |
Return the minimum of two absolute time values.
t1 | first timestamp |
t2 | other timestamp |
Return the minimum of two absolute time values.
t1 | first timestamp |
t2 | other timestamp |
Definition at line 302 of file time.c.
Referenced by cadet_reply_proc(), cummulative_ack(), find_other_matching(), GNUNET_GNSRECORD_record_get_expiration_time(), handle_dht_reply(), handle_p2p_put(), handle_validation_response(), ns_lookup_result_cb(), process_result(), and try_transmission().
struct GNUNET_TIME_Absolute GNUNET_TIME_absolute_max | ( | struct GNUNET_TIME_Absolute | t1, |
struct GNUNET_TIME_Absolute | t2 | ||
) |
Return the maximum of two absolute time values.
t1 | first timestamp |
t2 | other timestamp |
Return the maximum of two absolute time values.
t1 | first timestamp |
t2 | other timestamp |
Definition at line 317 of file time.c.
Referenced by add_valid_address(), check_link_down(), find_max_expire(), GNUNET_GNSRECORD_record_get_expiration_time(), GNUNET_TIME_absolute_get_monotonic(), handle_dht_result(), learn_dv_path(), neighbour_dv_monotime_cb(), put_cb(), timeout_hello_validation(), transmit_ping_if_allowed(), udp_select_send(), and update_iterator().
struct GNUNET_TIME_Relative GNUNET_TIME_absolute_get_remaining | ( | struct GNUNET_TIME_Absolute | future | ) |
Given a timestamp in the future, how much time remains until then?
future | some absolute time, typically in the future |
Definition at line 331 of file time.c.
References GNUNET_TIME_Absolute::abs_value_us, GNUNET_TIME_absolute_get(), GNUNET_TIME_UNIT_FOREVER_REL, GNUNET_TIME_UNIT_ZERO, GNUNET_TIME_Relative::rel_value_us, and ret.
Referenced by add_record(), add_valid_address(), announce_id(), backtalker_timeout_cb(), block_plugin_dns_evaluate(), check_for_glue(), check_for_rekeying(), check_has_addr(), check_link_down(), check_timeouts(), client_session_timeout(), cmd_read(), connect_success_continuation(), connection_ready_cb(), consider_peer_destroy(), core_read_finished_cb(), count_address(), data_sent_cb(), datacache_get_iterator(), delayed_restart_task(), display_record(), do_dht_put(), download_prepare(), evaluate_block_regex_accept(), find_advertisable_hello(), get_cb(), get_transmit_delay(), GNUNET_ATS_TEST_traffic_handle_pong(), GNUNET_CONNECTION_notify_transmit_ready(), GNUNET_CONNECTION_receive(), GNUNET_DATASTORE_put(), GNUNET_GNSRECORD_is_expired(), GNUNET_REVOCATION_check_pow(), GNUNET_SCHEDULER_add_at_with_priority(), GSF_block_peer_migration_(), GST_validation_handle_ping(), GST_validation_handle_pong(), handle_cadet_ring_message(), handle_dht_p2p_put(), handle_dht_p2p_result(), handle_dht_response(), handle_encrypted(), handle_namecache_block_response(), learn_dv_path(), list_callback(), macendpoint_timeout(), master_task(), monitor_cb(), path_cleanup_cb(), pick_random_dv_hops(), plan(), print_address(), print_plugin_event_info(), process_hello(), process_incoming(), process_job_queue(), process_migration_content(), process_pending_messages(), process_queue(), process_record(), proto_read_kx(), put_migration_continuation(), queue_read(), queue_read_kx(), queue_timeout(), queue_write(), quota_processor(), reassembly_cleanup_task(), remove_timeout_messages_and_select(), revalidate_address(), revive_migration(), schedule_next_hello(), schedule_peer_transmission(), schedule_select_v4(), schedule_select_v6(), select_loop(), send_keep_alive(), send_keepalive(), server_access_cb(), server_session_timeout(), session_timeout(), sqlite_plugin_put(), t_ax_encrypt(), task_download(), timeout_cb(), timeout_hello_validation(), transmit_item(), transmit_next_request_task(), transmit_ready(), try_connect_using_address(), try_transmission(), try_transmission_to_peer(), udp_plugin_send(), unix_plugin_do_write(), update_ephemeral(), update_flood_message(), validate_address_iterator(), and validation_start_cb().
struct GNUNET_TIME_Relative GNUNET_TIME_calculate_eta | ( | struct GNUNET_TIME_Absolute | start, |
uint64_t | finished, | ||
uint64_t | total | ||
) |
Calculate the estimate time of arrival/completion for an operation.
start | when did the operation start? |
finished | how much has been done? |
total | how much must be done overall (same unit as for "finished") |
Definition at line 551 of file time.c.
References GNUNET_break, GNUNET_TIME_absolute_get_duration(), GNUNET_TIME_UNIT_FOREVER_REL, GNUNET_TIME_UNIT_ZERO, GNUNET_TIME_Relative::rel_value_us, ret, and start.
Referenced by GNUNET_FS_download_make_status_(), GNUNET_FS_publish_make_status_(), GNUNET_FS_unindex_make_status_(), and progress_proc().
struct GNUNET_TIME_Relative GNUNET_TIME_absolute_get_difference | ( | struct GNUNET_TIME_Absolute | start, |
struct GNUNET_TIME_Absolute | end | ||
) |
Compute the time difference between the given start and end times.
Use this function instead of actual subtraction to ensure that "FOREVER" and overflows are handled correctly.
start | some absolute time |
end | some absolute time (typically larger or equal to start) |
Use this function instead of actual subtraction to ensure that "FOREVER" and overflows are handled correctly.
Definition at line 354 of file time.c.
References end, GNUNET_TIME_UNIT_FOREVER_REL, GNUNET_TIME_UNIT_ZERO, GNUNET_TIME_Relative::rel_value_us, ret, and start.
Referenced by client_receive(), expire_blocks(), expired_processor(), GNUNET_ATS_solver_logging_write_to_disk(), GNUNET_ATS_TEST_logging_now(), GNUNET_ATS_TEST_logging_write_to_file(), GNUNET_ATS_TEST_traffic_handle_pong(), handle_client_join(), sampler_mod_get_rand_peer(), send_utilization_data(), and update_timeout().
struct GNUNET_TIME_Relative GNUNET_TIME_absolute_get_duration | ( | struct GNUNET_TIME_Absolute | whence | ) |
Get the duration of an operation as the difference of the current time and the given start time "hence".
whence | some absolute time, typically in the past |
Get the duration of an operation as the difference of the current time and the given start time "hence".
Definition at line 375 of file time.c.
References GNUNET_TIME_absolute_get(), GNUNET_TIME_UNIT_ZERO, GNUNET_TIME_Relative::rel_value_us, and ret.
Referenced by consider_sending_fc(), do_directory_scan(), do_shutdown(), evaluate_connection(), find_best_address_it(), find_proof(), flush_bulk(), forward_dv_learn(), fragmented_message_done(), get_delay(), get_preference(), get_property(), GNUNET_ATS_solver_logging_now(), GNUNET_BANDWIDTH_tracker_get_available(), GNUNET_FRAGMENT_process_ack(), GNUNET_FS_download_make_status_(), GNUNET_FS_publish_make_status_(), GNUNET_FS_search_make_status_(), GNUNET_FS_search_probe_progress_(), GNUNET_FS_unindex_make_status_(), GNUNET_SCHEDULER_do_work(), GNUNET_TIME_calculate_eta(), GSC_CLIENTS_solicit_request(), GSF_peer_update_performance_(), GSF_update_datastore_delay_(), GST_neighbours_keepalive_response(), GST_validation_handle_pong(), handle_acknowledged(), handle_client_send(), handle_data(), handle_encrypted(), handle_fragment_box(), handle_matching_ack(), handle_monitor_event(), handle_result(), handle_send_transmit_continuation(), handle_validation_response(), internal_update(), iteration_done(), lookup_authz_cb(), maint_child_death(), mylog(), namecache_sqlite_cache_block(), notify_client_chk_update(), odc_warn_delay_task(), peer_transmit(), pong_handler(), process_parallel_lookup_result(), process_queue(), process_reply(), process_result(), process_result_with_request(), process_stdin(), prof_time(), progress_cb(), put_gns_record(), put_migration_continuation(), qc_message_sent(), receive_ready(), regex_found_handler(), run(), run_zone_iteration_round(), schedule_next_task(), set_feedback_task(), shutdown_task(), signal_probe_result(), solver_bandwidth_changed_cb(), stop_job(), store_completed_cb(), test_master(), timeout_episode(), timeout_experiment(), transmit_cummulative_ack_cb(), update_tslots(), update_velocity(), updateAgedLoad(), warn_delay_task(), warn_no_client_continue(), warn_no_receive_done(), and write_start_time().
struct GNUNET_TIME_Absolute GNUNET_TIME_absolute_add | ( | struct GNUNET_TIME_Absolute | start, |
struct GNUNET_TIME_Relative | duration | ||
) |
Add a given relative duration to the given start time.
start | some absolute time |
duration | some relative time to add |
Definition at line 395 of file time.c.
References GNUNET_TIME_Absolute::abs_value_us, duration, GNUNET_break, GNUNET_TIME_UNIT_FOREVER_ABS, GNUNET_TIME_Relative::rel_value_us, ret, and start.
Referenced by announce_id(), block_create_ecdsa(), core_init(), enqueue_fragment(), get_transmit_delay(), GNUNET_REVOCATION_check_pow(), handle_ephemeral_key(), OIDC_generate_id_token(), process_incoming(), process_job_queue(), process_queue(), run(), session_disconnect_adapter(), t_ax_encrypt(), timeout_cb(), udp_plugin_send(), unix_plugin_send(), update_ax_by_kx(), update_ephemeral(), update_flood_message(), update_next_challenge_time(), and update_ping_data().
struct GNUNET_TIME_Absolute GNUNET_TIME_absolute_subtract | ( | struct GNUNET_TIME_Absolute | start, |
struct GNUNET_TIME_Relative | duration | ||
) |
Subtract a given relative duration from the given start time.
start | some absolute time |
duration | some relative time to subtract |
Definition at line 422 of file time.c.
References GNUNET_TIME_Absolute::abs_value_us, duration, GNUNET_TIME_UNIT_FOREVER_ABS, GNUNET_TIME_UNIT_ZERO_ABS, GNUNET_TIME_Relative::rel_value_us, ret, and start.
Referenced by GSF_pending_request_create_(), handle_ephemeral_key(), handle_validation_response(), read_start_time(), and sign_pow_identity().
struct GNUNET_TIME_Relative GNUNET_TIME_relative_multiply | ( | struct GNUNET_TIME_Relative | rel, |
unsigned long long | factor | ||
) |
Multiply relative time by a given factor.
rel | some duration |
factor | integer to multiply with |
Definition at line 442 of file time.c.
References GNUNET_break, GNUNET_TIME_UNIT_FOREVER_REL, GNUNET_TIME_UNIT_ZERO, GNUNET_TIME_Relative::rel_value_us, and ret.
Referenced by announce_next_regex(), ats_perf_cb(), ats_perf_mon_cb(), attempt_connect_task(), check_zone_namestore_next(), churn(), cleanup_expired_records(), client_schedule(), connection_create(), consider_gathering(), context_task(), create_macendpoint(), curl_download_prepare(), delay_ms_rnd(), download_prepare(), expire_records_continuation(), get_randomized_delay(), GNUNET_DNSPARSER_parse_record(), GNUNET_REVOCATION_check_pow(), GNUNET_REVOCATION_pow_start(), GNUNET_RPS_sub_start(), GNUNET_STATISTICS_destroy(), GNUNET_TESTBED_run(), GNUNET_TRANSPORT_TESTING_start_peer(), GSF_pending_request_create_(), handle_connection_create(), handle_dv_learn(), handle_fragment_box(), handle_p2p_put(), handle_validation_response(), helper_read(), helper_write(), iter_finished(), libgnunet_plugin_transport_udp_init(), login_cont(), lookup_authz_cb(), main(), peer_id_cb(), plan(), process_job_queue(), profiler_cb(), reannounce_regex(), reconnect(), register_sender(), rest_process_request(), revalidate_address(), run(), schedule_missing_requests(), schedule_next_put(), send_hello(), send_hello_beacon(), start_dv_learn(), start_helper(), start_test(), task_check(), test_master(), timeout_cb(), transmit_on_queue(), and udp_plugin_create_session().
struct GNUNET_TIME_Relative GNUNET_TIME_relative_saturating_multiply | ( | struct GNUNET_TIME_Relative | rel, |
unsigned long long | factor | ||
) |
Saturating multiply relative time by a given factor.
rel | some duration |
factor | integer to multiply with |
Definition at line 501 of file time.c.
References GNUNET_TIME_UNIT_FOREVER_REL, GNUNET_TIME_UNIT_ZERO, GNUNET_TIME_Relative::rel_value_us, and ret.
Referenced by compute_rand_delay(), daemon_started(), GNUNET_DEFRAGMENT_process_fragment(), GNUNET_FRAGMENT_context_destroy(), GNUNET_FRAGMENT_process_ack(), GNUNET_FS_search_start_probe_(), process_job_queue(), put_migration_continuation(), reconnect(), schedule_next_task(), transmit_next(), and update_excess().
struct GNUNET_TIME_Relative GNUNET_TIME_relative_divide | ( | struct GNUNET_TIME_Relative | rel, |
unsigned long long | factor | ||
) |
Divide relative time by a given factor.
rel | some duration |
factor | integer to divide by |
Definition at line 527 of file time.c.
References GNUNET_TIME_UNIT_FOREVER_REL, GNUNET_TIME_Relative::rel_value_us, and ret.
Referenced by adapt_parallelism(), add_valid_address(), calculate_put_interval(), compute_rand_delay(), consider_gathering(), do_shutdown(), find_proof(), GNUNET_REVOCATION_check_pow(), GST_neighbours_keepalive_response(), GST_validation_handle_pong(), handle_dv_learn(), handle_reliability_box(), peerstore_store_own_cb(), run_zone_iteration_round(), schedule_next_put(), send_keep_alive(), send_with_session(), start_address_validation(), store_completed_cb(), udp_plugin_send(), and update_timeout().
struct GNUNET_TIME_Relative GNUNET_TIME_relative_add | ( | struct GNUNET_TIME_Relative | a1, |
struct GNUNET_TIME_Relative | a2 | ||
) |
Add relative times together.
a1 | some relative time |
a2 | some other relative time |
a1 | first timestamp |
a2 | second timestamp |
Definition at line 579 of file time.c.
References GNUNET_break, GNUNET_TIME_UNIT_FOREVER_REL, GNUNET_TIME_Relative::rel_value_us, and ret.
Referenced by adapt_parallelism(), compute_rand_delay(), forward_dv_learn(), GNUNET_CURL_append_header(), load_episodes(), process_queue(), process_result(), revalidate_address(), run(), sign_ephemeral_key(), stop_job(), store_completed_cb(), topology_setup_done(), update_tslots(), and update_velocity().
struct GNUNET_TIME_Relative GNUNET_TIME_relative_subtract | ( | struct GNUNET_TIME_Relative | a1, |
struct GNUNET_TIME_Relative | a2 | ||
) |
Subtract relative timestamp from the other.
a1 | first timestamp |
a2 | second timestamp |
Definition at line 604 of file time.c.
References GNUNET_TIME_UNIT_FOREVER_REL, GNUNET_TIME_UNIT_ZERO, GNUNET_TIME_Relative::rel_value_us, and ret.
Referenced by check_zone_namestore_next(), GNUNET_FS_search_probe_progress_(), handle_acknowledged(), handle_dv_learn(), learn_dv_path(), store_completed_cb(), and update_velocity().
struct GNUNET_TIME_RelativeNBO GNUNET_TIME_relative_hton | ( | struct GNUNET_TIME_Relative | a | ) |
Convert relative time to network byte order.
a | time to convert |
a | time to convert |
Definition at line 625 of file time.c.
References GNUNET_htonll(), GNUNET_TIME_RelativeNBO::rel_value_us__, and ret.
Referenced by announce_reconnect(), forward_dv_learn(), GAS_handle_reservation_request(), GNUNET_ATS_performance_give_feedback(), GNUNET_ATS_properties_hton(), GNUNET_REVOCATION_pow_start(), GNUNET_RPS_sub_start(), GNUNET_TRANSPORT_address_to_string(), GNUNET_TRANSPORT_communicator_receive(), GNUNET_TRANSPORT_manipulation_set(), GSF_block_peer_migration_(), mq_send_impl(), notify_monitor(), send_add_address(), start_dv_learn(), and transmit_cummulative_ack_cb().
struct GNUNET_TIME_Relative GNUNET_TIME_relative_ntoh | ( | struct GNUNET_TIME_RelativeNBO | a | ) |
Convert relative time from network byte order.
a | time to convert |
a | time to convert |
Definition at line 641 of file time.c.
References GNUNET_ntohll(), GNUNET_TIME_Relative::rel_value_us, and ret.
Referenced by forward_dv_learn(), GNUNET_ATS_properties_ntoh(), GST_manipulation_set_metric(), handle_add_address(), handle_announce(), handle_client_address_to_string(), handle_client_send(), handle_client_start_sub(), handle_dv_learn(), handle_feedback(), handle_monitor_data(), handle_p2p_migration_stop(), handle_reliability_ack(), handle_reservation_result(), and handle_validation_response().
struct GNUNET_TIME_AbsoluteNBO GNUNET_TIME_absolute_hton | ( | struct GNUNET_TIME_Absolute | a | ) |
Convert absolute time to network byte order.
a | time to convert |
a | time to convert |
Definition at line 657 of file time.c.
References GNUNET_TIME_AbsoluteNBO::abs_value_us__, GNUNET_htonll(), and ret.
Referenced by block_create_ecdsa(), client_response_handler(), consider_sending_fc(), create_loc_uri(), do_dht_put(), encapsulate_for_dv(), extract_abs_time_nbo(), forward_reply(), GDS_CLIENTS_process_get_resp(), GDS_CLIENTS_process_put(), GDS_NEIGHBOURS_handle_put(), GDS_NEIGHBOURS_handle_reply(), get_cb(), GNUNET_CONSENSUS_create(), GNUNET_DATASTORE_put(), GNUNET_DHT_put(), GNUNET_FS_uri_loc_create(), GNUNET_HELLO_add_address(), GNUNET_HELLO_extract_address(), GNUNET_HELLO_sign_address(), GNUNET_SECRETSHARING_create_session(), GNUNET_SECRETSHARING_decrypt(), GNUNET_TIME_absolute_get_monotonic(), GSC_KX_encrypt_and_transmit(), GSC_KX_handle_client_monitor_peers(), GST_clients_broadcast_peer_notification(), GST_validation_handle_ping(), handle_client_call_message(), handle_client_loc_sign(), handle_datastore_reply(), handle_list(), handle_lookup_block_it(), handle_p2p_reply(), inject_rekey(), monitor_notify_all(), mq_send_kx(), notify_monitor(), pack_room_message(), parse_abs_time_nbo(), PEERSTORE_create_record_mq_envelope(), plugin_session_info_cb(), regex_iterator(), send_challenge(), send_create(), send_disconnect(), send_peer_information(), send_request(), send_syn(), send_syn_ack_message(), setup_estimate_message(), setup_flood_message(), sign_ephemeral_key(), sign_pow_identity(), start_dv_learn(), tmt_rdy_ping(), transmit_content(), transmit_item(), transmit_kx(), transmit_status(), update_backtalker_monotime(), uri_loc_parse(), and validation_transmit_on_queue().
struct GNUNET_TIME_Absolute GNUNET_TIME_absolute_ntoh | ( | struct GNUNET_TIME_AbsoluteNBO | a | ) |
Convert absolute time from network byte order.
a | time to convert |
a | time to convert |
Definition at line 673 of file time.c.
References GNUNET_TIME_Absolute::abs_value_us, GNUNET_ntohll(), and ret.
Referenced by backtalker_monotime_cb(), bind_nbotime(), block_plugin_dns_evaluate(), do_dht_put(), do_rekey(), evaluate_block_regex_accept(), GCP_check_and_update_monotime(), GNUNET_GNSRECORD_block_get_expiration(), GNUNET_HELLO_iterate_addresses(), GNUNET_JSON_from_time_abs_nbo(), GNUNET_REVOCATION_check_pow(), GNUNET_TIME_absolute_get_monotonic(), GST_neighbours_handle_disconnect_message(), GST_neighbours_handle_session_syn(), GST_neighbours_handle_session_syn_ack(), GST_validation_handle_pong(), handle_arm_list_result(), handle_cadet_ring_message(), handle_client_decrypt(), handle_client_join(), handle_client_keygen(), handle_client_loc_sign(), handle_client_redirect_to_ip(), handle_client_redirect_to_service(), handle_client_send_request(), handle_data(), handle_dht_local_put(), handle_dht_p2p_put(), handle_dht_p2p_result(), handle_dht_result(), handle_dv_box(), handle_dv_learn(), handle_encrypted(), handle_ephemeral_key(), handle_estimate(), handle_event(), handle_flow_control(), handle_lookup_block_response(), handle_monitor_data(), handle_monitor_get_resp(), handle_monitor_put(), handle_p2p_estimate(), handle_p2p_put(), handle_put(), handle_receive_info(), handle_reply(), handle_response(), handle_result(), handle_signature_response(), handle_status(), handle_validation_response(), handshake_ack_monotime_cb(), handshake_monotime_cb(), inject_rekey(), neighbour_dv_monotime_cb(), PEERSTORE_parse_record_message(), pong_handler(), process_client_result(), put_cb(), rekey_monotime_cb(), transmit_task_cb(), and update_flood_message().
void GNUNET_TIME_set_offset | ( | long long | offset | ) |
Set the timestamp offset for this instance.
offset | the offset to skew the locale time by |
Definition at line 53 of file time.c.
References timestamp_offset.
Referenced by do_speedup(), GNUNET_PROGRAM_run2(), GNUNET_SERVICE_run_(), LEGACY_SERVICE_run(), and set_timetravel_time().
long long GNUNET_TIME_get_offset | ( | void | ) |
Get the timestamp offset for this instance.
Definition at line 65 of file time.c.
References timestamp_offset.
Referenced by mylog().
unsigned int GNUNET_TIME_get_current_year | ( | void | ) |
struct GNUNET_TIME_Absolute GNUNET_TIME_year_to_time | ( | unsigned int | year | ) |
Convert a year to an expiration time of January 1st of that year.
year | a year (after 1970, please ;-)). |
Definition at line 752 of file time.c.
References GNUNET_TIME_Absolute::abs_value_us, GNUNET_break, GNUNET_TIME_absolute_get(), my_timegm(), and ret.
Referenced by main().
unsigned int GNUNET_TIME_time_to_year | ( | struct GNUNET_TIME_Absolute | at | ) |
Convert an expiration time to the respective year (rounds)
at | absolute time |
Definition at line 706 of file time.c.
References GNUNET_TIME_Absolute::abs_value_us, and t.
struct GNUNET_TIME_Absolute GNUNET_TIME_absolute_get_monotonic | ( | const struct GNUNET_CONFIGURATION_Handle * | cfg | ) |
Obtain the current time and make sure it is monotonically increasing.
Guards against systems without an RTC or clocks running backwards and other nasty surprises. Does not guarantee that the returned time is near the current time returned by GNUNET_TIME_absolute_get(). Two subsequent calls (within a short time period) may return the same value. Persists the last returned time on disk to ensure that time never goes backwards. As a result, the resulting value can be used to check if a message is the "most recent" value and replays of older messages (from the same origin) would be discarded.
cfg | configuration, used to determine where to store the time; user can also insist RTC is working nicely and disable the feature |
Definition at line 837 of file time.c.
References _, GNUNET_TIME_Absolute::abs_value_us, GNUNET_TIME_AbsoluteNBO::abs_value_us__, ATOMIC, cfg, fh, filename, GNUNET_break, GNUNET_CONFIGURATION_get_value_filename(), GNUNET_DISK_file_close(), GNUNET_DISK_file_handle_size(), GNUNET_DISK_file_map(), GNUNET_DISK_file_open(), GNUNET_DISK_file_unmap(), GNUNET_DISK_file_write(), GNUNET_DISK_MAP_TYPE_READWRITE, GNUNET_DISK_OPEN_CREATE, GNUNET_DISK_OPEN_READWRITE, GNUNET_DISK_PERM_GROUP_READ, GNUNET_DISK_PERM_GROUP_WRITE, GNUNET_DISK_PERM_USER_READ, GNUNET_DISK_PERM_USER_WRITE, GNUNET_ERROR_TYPE_WARNING, GNUNET_free, GNUNET_log, GNUNET_OK, GNUNET_TIME_absolute_get(), GNUNET_TIME_absolute_hton(), GNUNET_TIME_absolute_max(), GNUNET_TIME_absolute_ntoh(), map, and size.
Referenced by __attribute__(), consider_sending_fc(), inject_rekey(), mq_send_kx(), run(), send_challenge(), send_create(), start_dv_learn(), transmit_kx(), update_ephemeral(), and validation_transmit_on_queue().