Octopus
sphash_oct_m Module Reference

This module implements a simple hash table for string valued keys and integer values using the C++ STL unordered_map container. More...

Detailed Description

This module implements a simple hash table for string valued keys and integer values using the C++ STL unordered_map container.

Data Types

type  sphash_iterator_t
 
type  sphash_t
 
interface  sphash_value_t
 

Functions/Subroutines

type(sphash_value_t) function, pointer sphash_value_constructor (value, clone)
 
subroutine sphash_value_finalize (this)
 
class(*) function, pointer sphash_value_get (this)
 
subroutine, public sphash_init (h)
 Initialize a hash table h with size entries. Since we use separate chaining, the number of entries in the hash table is in principle, unlimited. We take the smallest prime number as table size that is greater or equal than the requested size, to reduce collisions. More...
 
logical function sphash_is_associated (this)
 Check if the sphash attribute, map, is associated. More...
 
subroutine, public sphash_end (h)
 Free a hash table. More...
 
subroutine, public sphash_insert (h, key, val, clone)
 Insert a (key, val) pair into the hash table h. If clone=.true., the object will be copied. More...
 
class(*) function, pointer, public sphash_lookup (h, key, found)
 Look up a value in the hash table h. If found is present, it indicates if key could be found in the table. If found = .false., the return value of iihash_lookup is meaningless (and essentially undefined). More...
 
subroutine sphash_iterator_start (this, h)
 
logical function sphash_iterator_has_next (this)
 
class(*) function, pointer sphash_iterator_get_next (this)
 

Function/Subroutine Documentation

◆ sphash_value_constructor()

type(sphash_value_t) function, pointer sphash_oct_m::sphash_value_constructor ( class(*), target  value,
logical, optional  clone 
)
private

Definition at line 176 of file sphash.F90.

◆ sphash_value_finalize()

subroutine sphash_oct_m::sphash_value_finalize ( type(sphash_value_t this)
private

Definition at line 194 of file sphash.F90.

◆ sphash_value_get()

class(*) function, pointer sphash_oct_m::sphash_value_get ( class(sphash_value_t), intent(in)  this)
private

Definition at line 209 of file sphash.F90.

◆ sphash_init()

subroutine, public sphash_oct_m::sphash_init ( type(sphash_t), intent(out)  h)

Initialize a hash table h with size entries. Since we use separate chaining, the number of entries in the hash table is in principle, unlimited. We take the smallest prime number as table size that is greater or equal than the requested size, to reduce collisions.

Definition at line 221 of file sphash.F90.

◆ sphash_is_associated()

logical function sphash_oct_m::sphash_is_associated ( class(sphash_t), intent(in)  this)

Check if the sphash attribute, map, is associated.

Definition at line 239 of file sphash.F90.

◆ sphash_end()

subroutine, public sphash_oct_m::sphash_end ( type(sphash_t), intent(inout)  h)

Free a hash table.

Definition at line 247 of file sphash.F90.

◆ sphash_insert()

subroutine, public sphash_oct_m::sphash_insert ( type(sphash_t), intent(inout)  h,
character(len=*), intent(in)  key,
class(*), intent(in), target  val,
logical, intent(in), optional  clone 
)

Insert a (key, val) pair into the hash table h. If clone=.true., the object will be copied.

Definition at line 290 of file sphash.F90.

◆ sphash_lookup()

class(*) function, pointer, public sphash_oct_m::sphash_lookup ( type(sphash_t), intent(in)  h,
character(len=*), intent(in)  key,
logical, intent(out), optional  found 
)

Look up a value in the hash table h. If found is present, it indicates if key could be found in the table. If found = .false., the return value of iihash_lookup is meaningless (and essentially undefined).

Definition at line 322 of file sphash.F90.

◆ sphash_iterator_start()

subroutine sphash_oct_m::sphash_iterator_start ( class(sphash_iterator_t), intent(inout)  this,
class(sphash_t), intent(in)  h 
)

Definition at line 361 of file sphash.F90.

◆ sphash_iterator_has_next()

logical function sphash_oct_m::sphash_iterator_has_next ( class(sphash_iterator_t), intent(in)  this)

Definition at line 382 of file sphash.F90.

◆ sphash_iterator_get_next()

class(*) function, pointer sphash_oct_m::sphash_iterator_get_next ( class(sphash_iterator_t), intent(inout)  this)

Definition at line 407 of file sphash.F90.