ROSE 0.11.145.147
Public Member Functions | Static Public Member Functions | List of all members
Rose::Combinatorics::Hasher::HasherFactory Class Reference

Description

HasherFactory is a singleton that creates and returns Hashers by name.

Hasher factory contains a map of names to HasherMaker . When createHasher is passed a name, it will attempt to create the correct Hasher and pass it back.
Users can add Hashers to HasherFactory using @HasherMaker. HasherFactory is created when Instance is first called. Generally this is done at module initialization time.

Definition at line 323 of file Combinatorics.h.

#include <roseSupport/Combinatorics.h>

Public Member Functions

void registerMaker (const std::string &hashType, IHasherMaker *createHasherPtr)
 Adds a new @HasherMaker to the HasherFactory.
 
std::shared_ptr< HashercreateHasher (const std::string &hashType) const
 Creates a registered Hasher by type from the map.
 

Static Public Member Functions

static HasherFactoryInstance ()
 Returns a reference to the HasherFactory singleton.
 

Member Function Documentation

◆ Instance()

static HasherFactory & Rose::Combinatorics::Hasher::HasherFactory::Instance ( )
static

Returns a reference to the HasherFactory singleton.

Creates a HasherFactory if necessary

◆ registerMaker()

void Rose::Combinatorics::Hasher::HasherFactory::registerMaker ( const std::string &  hashType,
IHasherMaker createHasherPtr 
)

Adds a new @HasherMaker to the HasherFactory.

Ussually called by the HasherMaker constructor

◆ createHasher()

std::shared_ptr< Hasher > Rose::Combinatorics::Hasher::HasherFactory::createHasher ( const std::string &  hashType) const

Creates a registered Hasher by type from the map.

Parameters
[in]hashTypeThe type of the Hasher to create. e.g. FNV
Returns
A Hasher of the correct type in an std::shared_ptr
Exceptions
Rose::Combinatorics::Exceptionif inType names an unsupported type

The documentation for this class was generated from the following file: