ROSE 0.11.145.275
|
A singleton that creates and returns Hashers by name.
HasherFactory 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 308 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< Hasher > | createHasher (const std::string &hashType) const |
Creates a registered Hasher by type from the map. | |
Static Public Member Functions | |
static HasherFactory & | instance () |
Returns a reference to the HasherFactory singleton. | |
static HasherFactory & | Instance () |
|
static |
Returns a reference to the HasherFactory singleton.
Creates a HasherFactory if necessary
void Rose::Combinatorics::Hasher::HasherFactory::registerMaker | ( | const std::string & | hashType, |
IHasherMaker * | createHasherPtr | ||
) |
Adds a new @HasherMaker to the HasherFactory.
Usually called by the HasherMaker constructor.
std::shared_ptr< Hasher > Rose::Combinatorics::Hasher::HasherFactory::createHasher | ( | const std::string & | hashType | ) | const |