hasty_dictionary_node Module

module~~hasty_dictionary_node~~UsesGraph module~hasty_dictionary_node hasty_dictionary_node module~penf penf module~penf->module~hasty_dictionary_node module~hasty_key_base hasty_key_base module~penf->module~hasty_key_base module~hasty_content_adt hasty_content_adt module~hasty_content_adt->module~hasty_dictionary_node module~hasty_key_base->module~hasty_dictionary_node module~penf_global_parameters_variables penf_global_parameters_variables module~penf_global_parameters_variables->module~penf module~penf_b_size penf_b_size module~penf_global_parameters_variables->module~penf_b_size module~penf_stringify penf_stringify module~penf_global_parameters_variables->module~penf_stringify module~penf_b_size->module~penf module~penf_b_size->module~penf_stringify module~penf_stringify->module~penf iso_fortran_env iso_fortran_env iso_fortran_env->module~penf_stringify
Help

HASTY dictionary node class.

Used By

module~~hasty_dictionary_node~~UsedByGraph module~hasty_dictionary_node hasty_dictionary_node module~hasty_dictionary hasty_dictionary module~hasty_dictionary_node->module~hasty_dictionary module~hasty hasty module~hasty_dictionary_node->module~hasty module~hasty_dictionary->module~hasty module~hasty_hash_table hasty_hash_table module~hasty_dictionary->module~hasty_hash_table program~hasty_test_caf_basic hasty_test_caf_basic module~hasty->program~hasty_test_caf_basic program~hasty_test_hash_table_homo hasty_test_hash_table_homo module~hasty->program~hasty_test_hash_table_homo program~hasty_test_hash_table_homocontent_failure hasty_test_hash_table_homocontent_failure module~hasty->program~hasty_test_hash_table_homocontent_failure program~hasty_test_caf_get_clone hasty_test_caf_get_clone module~hasty->program~hasty_test_caf_get_clone program~hasty_test_hash_table_homokey_failure hasty_test_hash_table_homokey_failure module~hasty->program~hasty_test_hash_table_homokey_failure program~hasty_test_dictionary hasty_test_dictionary module~hasty->program~hasty_test_dictionary program~hasty_test_hash_table hasty_test_hash_table module~hasty->program~hasty_test_hash_table module~hasty_hash_table->module~hasty
Help


Derived Types

type, public :: dictionary_node

Dictionary node class to storage any contents by means of generic key/content pairs.

Components

TypeVisibility AttributesNameInitial
type(key_base), public, allocatable:: key

The key.

class(*), private, pointer:: content_=> null()

The generic content.

type(dictionary_node), public, pointer:: next=> null()

The next node in the dictionary.

type(dictionary_node), public, pointer:: previous=> null()

The previous node in the dictionary.

Finalizations Procedures

final :: finalize

Finalize the node.

Type-Bound Procedures

procedure, public, pass(self) :: destroy

Destroy the node (key & content).

procedure, public, pass(self) :: get_pointer

Return a pointer to node's content.

procedure, public, pass(self) :: has_key

Return .true. if the node has a key (or id) set-up.

procedure, public, pass(self) :: is_filled

Return storage status.

procedure, public, pass(self) :: set_pointer

Set the node pointer-associating content.

procedure, public, pass(self) :: set_clone

Set the node cloning content.

procedure, private, pass(self) :: destroy_key

Destroy the node key.

procedure, private, pass(self) :: destroy_content

Destroy the node content.


Functions

private function get_pointer(self) result(content)

Return a pointer to node's content.

Arguments

Type IntentOptional AttributesName
class(dictionary_node), intent(in) :: self

The node.

Return Value class(*), pointer

Content pointer of the node.

private elemental function has_key(self)

Return .true. if the node has a key (or id) set-up.

Arguments

Type IntentOptional AttributesName
class(dictionary_node), intent(in) :: self

The node.

Return Value logical

private elemental function is_filled(self)

Return storage status.

Arguments

Type IntentOptional AttributesName
class(dictionary_node), intent(in) :: self

The node.

Return Value logical


Subroutines

public pure recursive subroutine destroy_dictionary_node(node)

Destroy the node and its subsequent ones.

Arguments

Type IntentOptional AttributesName
type(dictionary_node), intent(inout), pointer:: node

The node.

private elemental subroutine destroy(self)

Destroy the node (key & content).

Arguments

Type IntentOptional AttributesName
class(dictionary_node), intent(inout) :: self

The node.

private subroutine set_pointer(self, key, content, buckets_number)

Set the node pointer-associating content.

Arguments

Type IntentOptional AttributesName
class(dictionary_node), intent(inout) :: self

The node.

class(*), intent(in) :: key

The key.

class(*), intent(in), pointer:: content

The content.

integer(kind=I4P), intent(in), optional :: buckets_number

Buckets number.

private subroutine set_clone(self, key, content, buckets_number)

Set the node cloning content.

Arguments

Type IntentOptional AttributesName
class(dictionary_node), intent(inout) :: self

The node.

class(*), intent(in) :: key

The key.

class(*), intent(in) :: content

The content.

integer(kind=I4P), intent(in), optional :: buckets_number

Buckets number.

private elemental subroutine destroy_key(self)

Destroy the node key.

Arguments

Type IntentOptional AttributesName
class(dictionary_node), intent(inout) :: self

The node.

private elemental subroutine destroy_content(self)

Destroy the node content.

Arguments

Type IntentOptional AttributesName
class(dictionary_node), intent(inout) :: self

The node.

private elemental subroutine finalize(self)

Finalize the dictionary node.

Arguments

Type IntentOptional AttributesName
type(dictionary_node), intent(inout) :: self

The node.