The MultiIndexTable stores an FTObject pointer associated
with any number of integer keys(:) as a hash table.
Usage
Definition (Subclass of FTObject)
TYPE(FTMultiIndexTable) :: multiIndexTable
Initialization
CALL MultiIndexTable % initWithSize(N)
The size, N = the maximum value of all of the keys.
Destruction
CALL releaseFTMultiIndexTable ( MultiIndexTable ) [ Pointers ]
Adding an object
CLASS(FTObject), POINTER :: obj
INTEGER, DIMENSION(dim) :: keys
CALL MultiIndexTable % addObjectForKeys(obj,keys)
Retrieving an object
CLASS(FTObject), POINTER :: obj
INTEGER, DIMENSION(dim) :: keys
obj => MultiIndexTable % objectForKeys(keys)
Be sure to retain the object if you want it to live
beyond the life of the table.
Testing the presence of keys
LOGICAL :: exists
exists = MultiIndexTable % containsKeys(keys)
module~~ftmultiindextableclass~~UsesGraph
module~ftmultiindextableclass
FTMultiIndexTableClass
module~ftlinkedlistclass
FTLinkedListClass
module~ftmultiindextableclass->module~ftlinkedlistclass
module~ftmultiindextabledata
FTMultiIndexTableData
module~ftmultiindextableclass->module~ftmultiindextabledata
module~ftobjectclass
FTObjectClass
module~ftmultiindextableclass->module~ftobjectclass
module~ftlinkedlistrecordclass
FTLinkedListRecordClass
module~ftlinkedlistclass->module~ftlinkedlistrecordclass
module~ftmutableobjectarrayclass
FTMutableObjectArrayClass
module~ftlinkedlistclass->module~ftmutableobjectarrayclass
module~ftmultiindextabledata->module~ftobjectclass
module~ftlinkedlistrecordclass->module~ftobjectclass
module~ftmutableobjectarrayclass->module~ftobjectclass
Nodes of different colours represent the following:
Graph Key
Module
Module
Submodule
Submodule
Subroutine
Subroutine
Function
Function
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
Derived Types
Components
Type
Visibility Attributes
Name
Initial
class(FTLinkedList ),
public,
DIMENSION(:), ALLOCATABLE
::
table
Finalizations Procedures
final :: destructMultiIndexTable
Type-Bound Procedures
procedure, public ::
init => initFTObject
procedure, public ::
description => FTObjectDescription
procedure, public ::
className
procedure, public, non_overridable ::
copy => copyFTObject
procedure, public, non_overridable ::
retain => retainFTObject
procedure, public, non_overridable ::
isUnreferenced
procedure, public, non_overridable ::
refCount
procedure, public ::
initWithSize => initMultiIndexTableWithSize
procedure, public ::
containsKeys => MultiIndexTableContainsKeys
procedure, public ::
addObjectForKeys => addObjectToMultiIndexTableForKeys
procedure, public ::
objectForKeys => objectInMultiIndexTableForKeys
procedure, public ::
printDescription => printMultiIndexTableDescription
procedure, public ::
MultiIndexTableSize
Functions
Arguments
Type
Intent Optional Attributes
Name
class(FTMultiIndexTable )
::
self
integer
::
keys (:)
Return Value
class(FTObject ), POINTER
Arguments
Type
Intent Optional Attributes
Name
class(FTMultiIndexTable )
::
self
integer
::
keys (:)
Return Value
logical
Arguments
Return Value
integer
Arguments
Type
Intent Optional Attributes
Name
class(FTObject ),
POINTER
::
obj
Arguments
Type
Intent Optional Attributes
Name
integer,
DIMENSION(:)
::
key1
integer,
DIMENSION(:)
::
key2
Return Value
logical
Subroutines
Arguments
Type
Intent Optional Attributes
Name
integer,
DIMENSION(:)
::
keys
Arguments
Type
Intent Optional Attributes
Name
class(FTMultiIndexTable )
::
self
integer
::
iUnit