ROSE 0.11.145.147
|
Templated to create any Hasher and register it with HasherFactory.
HasherMaker makes the Hasher named by typename T, and automatically registers itself with HasherFactory. If a user creates a new Hasher, In their implemntation file (.C) they should include a static variable declared and defined like this: static Hasher::HasherMaker<HasherSha256Builtin> makerSHA256("SHA256");
The instantiation of this variable at module load time will call the HasherMaker constructor, which automatically registers it with the HasherFactor (and constructs the HasherFactory if necessary.)
Definition at line 285 of file Combinatorics.h.
#include <roseSupport/Combinatorics.h>
Public Member Functions | |
HasherMaker (const std::string &hashType) | |
Creates a HasherMaker and registers it with HasherFactory. | |
virtual std::shared_ptr< Hasher > | create () const |
Creates a Hasher (the type of Hasher is determined by the template T) and returns it as a shared_ptr. | |
|
inline |
Creates a HasherMaker and registers it with HasherFactory.
Make HasherMakers static variableso so this is run at module initialization time.
[in] | hashType | The name/key of this hasher in the HasherFactory. |
Definition at line 296 of file Combinatorics.h.
|
inlinevirtual |
Creates a Hasher (the type of Hasher is determined by the template T) and returns it as a shared_ptr.
Implements Rose::Combinatorics::Hasher::IHasherMaker.
Definition at line 305 of file Combinatorics.h.