| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(sp_resource_t), | intent(in) | :: | object |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(sp_reference_counter_t), | intent(inout) | :: | lhs | |||
| class(sp_reference_counter_t), | intent(in) | :: | rhs |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(sp_reference_counter_t), | intent(inout) | :: | self |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(sp_reference_counter_t), | intent(in) | :: | self |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(sp_reference_counter_t), | intent(inout) | :: | self |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | private, | pointer | :: | count_ | => | null() | |
| class(sp_resource_t), | private, | pointer | :: | object_ | => | null() |
| private module function construct(object) |
| final :: finalize |
| 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 |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(sp_reference_counter_t), | intent(inout) | :: | self |