sp_reference_counter_m Module


Uses

  • module~~sp_reference_counter_m~~UsesGraph module~sp_reference_counter_m sp_reference_counter_m module~sp_resource_m sp_resource_m module~sp_reference_counter_m->module~sp_resource_m

Used by

  • module~~sp_reference_counter_m~~UsedByGraph module~sp_reference_counter_m sp_reference_counter_m module~sp_smart_pointer_m sp_smart_pointer_m module~sp_smart_pointer_m->module~sp_reference_counter_m module~sp_reference_counter_s sp_reference_counter_s module~sp_reference_counter_s->module~sp_reference_counter_m module~smart_pointer_m smart_pointer_m module~smart_pointer_m->module~sp_smart_pointer_m module~sp_smart_pointer_s sp_smart_pointer_s module~sp_smart_pointer_s->module~sp_smart_pointer_m

Contents


Interfaces

public interface sp_reference_counter_t

  • private module function construct(object) result(sp_reference_counter)

    Arguments

    TypeIntentOptionalAttributesName
    class(sp_resource_t), intent(in) :: object

    Return Value type(sp_reference_counter_t)

interface

interface

interface

  • private pure module module function reference_count(self) result(counter)

    Arguments

    TypeIntentOptionalAttributesName
    class(sp_reference_counter_t), intent(in) :: self

    Return Value integer

interface


Derived Types

type, public :: sp_reference_counter_t

Components

TypeVisibilityAttributesNameInitial
integer, private, pointer:: count_=> null()
class(sp_resource_t), private, pointer:: object_=> null()

Constructor

private module function construct(object)

Finalizations Procedures

final :: finalize

Type-Bound Procedures

procedure, public :: assign_sp_reference_counter
generic, public :: assignment(=) => assign_sp_reference_counter
procedure, public, non_overridable :: grab
procedure, public :: reference_count
procedure, public, non_overridable :: release

Subroutines

private subroutine finalize(self)

Arguments

TypeIntentOptionalAttributesName
type(sp_reference_counter_t), intent(inout) :: self