A Factory for creating MMLMonitorDiplay. More...
#include <MMLMonitorDisplayFactory.h>
Public Member Functions | |
MMLMonitorDisplay * | createMonitorDisplay (std::string id, Monitor *monitor, MMLComponent *manager) |
Creates an MMLMonitorDisplay based on its string id or return null if there is no id in the map. More... | |
std::string | getDisplayByType (Monitor::type type, const unsigned int i) |
get a display name by its type and index More... | |
unsigned int | getNumberOfDisplaysByType (Monitor::type type) |
give the number of displays registered for a specified type More... | |
bool | isRegistered (std::string id) |
Returns true if id is in the map. More... | |
template<typename C > | |
bool | registerClass (std::string id) |
Register a class into the map for classes wich can display every types of monitors. More... | |
template<typename C > | |
bool | registerClass (std::string id, Monitor::type type) |
Register a class into the map A registered class can be created using createMonitorDisplay(). More... | |
Static Public Member Functions | |
static MMLMonitorDisplayFactory * | getInstance () |
return the unique instance of the factory More... | |
Private Types | |
using | CreateMonitorDisplayFunctionPointer = MMLMonitorDisplay *(*)(Monitor *monitor, MMLComponent *manager) |
Private Member Functions | |
MMLMonitorDisplayFactory ()=default | |
Static Private Member Functions | |
template<typename C > | |
static MMLMonitorDisplay * | createTheMonitorDisplay (Monitor *monitor, MMLComponent *manager) |
function whose pointers are inserted into the map. More... | |
Private Attributes | |
std::vector< std::string > | displaysByType [Monitor::typeCount] |
list of displays by type More... | |
std::map< std::string, CreateMonitorDisplayFunctionPointer > | mapObjectCreator |
A map between MonitorDisplay name as string to functions (CreateMonitorDisplayFunctionPointer) More... | |
Static Private Attributes | |
static MMLMonitorDisplayFactory * | instance = nullptr |
unique instance of the factory More... | |
A Factory for creating MMLMonitorDiplay.
|
private |
|
privatedefault |
MMLMonitorDisplay * MMLMonitorDisplayFactory::createMonitorDisplay | ( | std::string | id, |
Monitor * | monitor, | ||
MMLComponent * | manager | ||
) |
Creates an MMLMonitorDisplay based on its string id or return null if there is no id in the map.
References mapObjectCreator.
Referenced by MMLDisplay::connectMonitor().
|
inlinestaticprivate |
function whose pointers are inserted into the map.
C is the type of MMLMonitorDisplay
std::string MMLMonitorDisplayFactory::getDisplayByType | ( | Monitor::type | type, |
const unsigned int | i | ||
) |
get a display name by its type and index
References displaysByType.
Referenced by MMLDisplay::updateMonitorsTable().
|
static |
return the unique instance of the factory
References instance, and MMLMonitorDisplayFactory().
Referenced by MMLDisplay::connectMonitor(), and MMLDisplay::updateMonitorsTable().
unsigned int MMLMonitorDisplayFactory::getNumberOfDisplaysByType | ( | Monitor::type | type | ) |
give the number of displays registered for a specified type
References displaysByType.
Referenced by MMLDisplay::updateMonitorsTable().
bool MMLMonitorDisplayFactory::isRegistered | ( | std::string | id | ) |
Returns true if id is in the map.
References mapObjectCreator.
|
inline |
Register a class into the map for classes wich can display every types of monitors.
C is a subclass of MMLMonitorDisplay.
id | unique id to associate with the Class C |
References Monitor::typeCount.
|
inline |
Register a class into the map A registered class can be created using createMonitorDisplay().
C is a subclass of MMLMonitorDisplay.
id | unique id to associate with the Class C |
type | the type of monitor the class can display |
|
private |
list of displays by type
Referenced by getDisplayByType(), and getNumberOfDisplaysByType().
|
staticprivate |
unique instance of the factory
Referenced by getInstance().
|
private |
A map between MonitorDisplay name as string to functions (CreateMonitorDisplayFunctionPointer)
Referenced by createMonitorDisplay(), and isRegistered().