FTDataClass Module

FTData defines a subclass of FTObject to contain immutable generic data, including derived types.

The initializer copies the data and takes ownership of that copy. FTData gives a way to use derived types without having to subclass FTObject.



Variables

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

Interfaces

public interface release

  • public subroutine releaseFTData(self)

    Arguments

    Type IntentOptional Attributes Name
    class(FTData), POINTER :: self

Derived Types

type, public, extends(FTObject) ::  FTData

Type-Bound Procedures

procedure, public :: init => initFTObject
procedure, public :: destruct => destructFTObject
procedure, public :: description => FTObjectDescription
procedure, public :: printDescription => printFTObjectDescription
procedure, public, non_overridable :: copy => copyFTObject
procedure, public, non_overridable :: retain => retainFTObject
procedure, public, non_overridable :: isUnreferenced
procedure, public, non_overridable :: refCount
procedure, public :: initWithDataOfType
procedure, public :: storedData
procedure, public :: className => dataClassName

Functions

public function storedData(self) result(d)

Arguments

Type IntentOptional Attributes Name
class(FTData) :: self

Return Value character(len=1), (SIZE(self%dataStorage))

public function dataType(self) result(t)

Arguments

Type IntentOptional Attributes Name
class(FTData) :: self

Return Value character(len=DATA_CLASS_TYPE_LENGTH)

public function dataClassName(self) result(s)

Class name returns a string with the name of the type of the object

Read more…

Arguments

Type IntentOptional Attributes Name
class(FTData) :: self

Return Value character(len=CLASS_NAME_CHARACTER_LENGTH)

public function dataIsOfType(self, dataType) result(t)

Arguments

Type IntentOptional Attributes Name
class(FTData) :: self
character(len=DATA_CLASS_TYPE_LENGTH) :: dataType

Return Value logical


Subroutines

public subroutine initWithDataOfType(self, genericData, dataType)

Arguments

Type IntentOptional Attributes Name
class(FTData) :: self
character(len=1) :: genericData(:)
character(len=*) :: dataType

public subroutine releaseFTData(self)

Arguments

Type IntentOptional Attributes Name
class(FTData), POINTER :: self