dm_uuid Module

Provides a UUIDv4 generator. DMPACK uses 32 characters long UUIDv4 identifiers in hexadecimal format, without hyphens.


Used by

  • module~~dm_uuid~~UsedByGraph module~dm_uuid dm_uuid module~dm_atom dm_atom module~dm_atom->module~dm_uuid module~dm_log dm_log module~dm_atom->module~dm_log module~dm_db dm_db module~dm_db->module~dm_uuid module~dm_im dm_im module~dm_im->module~dm_uuid module~dm_log->module~dm_uuid module~dm_observ dm_observ module~dm_log->module~dm_observ module~dm_observ->module~dm_uuid module~dm_sync dm_sync module~dm_sync->module~dm_uuid module~dm_sync->module~dm_observ module~dm_test dm_test module~dm_test->module~dm_uuid module~dmpack dmpack module~dmpack->module~dm_uuid module~dmpack->module~dm_atom module~dmpack->module~dm_db module~dmpack->module~dm_im module~dmpack->module~dm_log module~dmpack->module~dm_observ module~dmpack->module~dm_sync module~dmpack->module~dm_test module~dm_job dm_job module~dmpack->module~dm_job module~dm_logger dm_logger module~dmpack->module~dm_logger module~dm_mqueue dm_mqueue module~dmpack->module~dm_mqueue module~dm_report dm_report module~dmpack->module~dm_report module~dm_mqueue_util dm_mqueue_util module~dmpack->module~dm_mqueue_util proc~dm_arg_validate dm_arg_validate proc~dm_arg_validate->module~dm_uuid proc~dm_arg_validate->module~dm_log module~dm_job->module~dm_observ module~dm_logger->module~dm_log module~dm_logger->module~dm_observ module~dm_mqueue->module~dm_log module~dm_mqueue->module~dm_observ module~dm_report->module~dm_log proc~dm_csv_header_observ dm_csv_header_observ proc~dm_csv_header_observ->module~dm_observ proc~dm_db_insert_log dm_db_insert_log proc~dm_db_insert_log->module~dm_log proc~dm_db_insert_observ dm_db_insert_observ proc~dm_db_insert_observ->module~dm_observ proc~dm_db_insert_observs dm_db_insert_observs proc~dm_db_insert_observs->module~dm_observ proc~dm_db_insert_sync dm_db_insert_sync proc~dm_db_insert_sync->module~dm_sync proc~dm_db_insert_sync_log dm_db_insert_sync_log proc~dm_db_insert_sync_log->module~dm_sync proc~dm_db_insert_sync_node dm_db_insert_sync_node proc~dm_db_insert_sync_node->module~dm_sync proc~dm_db_insert_sync_observ dm_db_insert_sync_observ proc~dm_db_insert_sync_observ->module~dm_sync proc~dm_db_insert_sync_sensor dm_db_insert_sync_sensor proc~dm_db_insert_sync_sensor->module~dm_sync proc~dm_db_insert_sync_target dm_db_insert_sync_target proc~dm_db_insert_sync_target->module~dm_sync proc~dm_db_select_log dm_db_select_log proc~dm_db_select_log->module~dm_log proc~dm_db_select_logs_by_observ dm_db_select_logs_by_observ proc~dm_db_select_logs_by_observ->module~dm_log proc~dm_db_select_observ dm_db_select_observ proc~dm_db_select_observ->module~dm_observ proc~dm_db_select_observ_ids dm_db_select_observ_ids proc~dm_db_select_observ_ids->module~dm_observ proc~dm_db_select_observ_views dm_db_select_observ_views proc~dm_db_select_observ_views->module~dm_observ proc~dm_db_select_observs_by_id dm_db_select_observs_by_id proc~dm_db_select_observs_by_id->module~dm_observ proc~dm_db_select_observs_by_time dm_db_select_observs_by_time proc~dm_db_select_observs_by_time->module~dm_observ proc~dm_db_select_sync_log dm_db_select_sync_log proc~dm_db_select_sync_log->module~dm_sync proc~dm_db_select_sync_logs dm_db_select_sync_logs proc~dm_db_select_sync_logs->module~dm_sync proc~dm_db_select_sync_node dm_db_select_sync_node proc~dm_db_select_sync_node->module~dm_sync proc~dm_db_select_sync_nodes dm_db_select_sync_nodes proc~dm_db_select_sync_nodes->module~dm_sync proc~dm_db_select_sync_observ dm_db_select_sync_observ proc~dm_db_select_sync_observ->module~dm_sync proc~dm_db_select_sync_observs dm_db_select_sync_observs proc~dm_db_select_sync_observs->module~dm_sync proc~dm_db_select_sync_sensor dm_db_select_sync_sensor proc~dm_db_select_sync_sensor->module~dm_sync proc~dm_db_select_sync_sensors dm_db_select_sync_sensors proc~dm_db_select_sync_sensors->module~dm_sync proc~dm_db_select_sync_target dm_db_select_sync_target proc~dm_db_select_sync_target->module~dm_sync proc~dm_db_select_sync_targets dm_db_select_sync_targets proc~dm_db_select_sync_targets->module~dm_sync proc~dm_html_log dm_html_log proc~dm_html_log->module~dm_log proc~dm_html_logs dm_html_logs proc~dm_html_logs->module~dm_log proc~dm_html_observ dm_html_observ proc~dm_html_observ->module~dm_observ proc~dm_html_observs dm_html_observs proc~dm_html_observs->module~dm_observ proc~dm_lua_api_register dm_lua_api_register proc~dm_lua_api_register->module~dm_log proc~dm_test_dummy_log dm_test_dummy_log proc~dm_test_dummy_log->module~dm_log proc~dm_test_dummy_observ dm_test_dummy_observ proc~dm_test_dummy_observ->module~dm_observ proc~dm_z_compress_type dm_z_compress_type proc~dm_z_compress_type->module~dm_log proc~dm_z_compress_type->module~dm_observ module~dm_mqueue_util->module~dm_mqueue

Variables

Type Visibility Attributes Name Initial
integer, public, parameter :: UUID_LEN = 32

Hex UUIDv4 length.

integer, public, parameter :: UUID_FULL_LEN = 36

Full UUIDv4 length (with hyphens).

character(len=*), public, parameter :: UUID_DEFAULT = repeat('0', UUID_LEN)

Default ID (hex).


Functions

public impure elemental function dm_uuid4() result(uuid)

Generates random UUIDv4 (RFC 4122) in hexadecimal format, i.e., without hyphens (32 characters long). The PRNG has to be seeded before the first invocation by calling dm_init() once.

Arguments

None

Return Value character(len=UUID_LEN)

public impure elemental function dm_uuid4_hyphens() result(uuid)

Returns UUIDv4 with hyphens (36 characters long). The PRNG has to be seeded before the first invocation by calling dm_init() once.

Arguments

None

Return Value character(len=UUID_FULL_LEN)

public pure elemental function dm_uuid4_hyphenize(uuid) result(str)

Returns given UUID with hyphens, i.e., turns string 00000000000000000000000000000000 into 00000000-0000-0000-0000-000000000000. The function does not validate the passed indentifier.

Arguments

Type IntentOptional Attributes Name
character(len=UUID_LEN), intent(in) :: uuid

Return Value character(len=UUID_FULL_LEN)

public pure elemental function dm_uuid4_is_valid(uuid) result(valid)

Returns .true. if given UUID in hex format is a valid UUIDv4. Only lower-case letters are valid.

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: uuid

UUIDv4 to validate.

Return Value logical