~dandrader/unity8/multiInstanceApp

« back to all changes in this revision

Viewing changes to plugins/IndicatorsClient/indicatorsfactory.cpp

unit tests for IndicatorsClient

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
 
30
30
IndicatorsFactory::IndicatorsFactory()
31
31
{
32
 
    registerItem<IndicatorClientDateTime>("indicator-datetime");
33
 
    registerItem<IndicatorClientMessaging>("indicator-messaging");
34
 
    registerItem<IndicatorClientNetwork>("indicator-network");
35
 
    registerItem<IndicatorClientPower>("indicator-power");
36
 
    registerItem<IndicatorClientSound>("indicator-sound");
 
32
    registerIndicator<IndicatorClientDateTime>("indicator-datetime");
 
33
    registerIndicator<IndicatorClientMessaging>("indicator-messaging");
 
34
    registerIndicator<IndicatorClientNetwork>("indicator-network");
 
35
    registerIndicator<IndicatorClientPower>("indicator-power");
 
36
    registerIndicator<IndicatorClientSound>("indicator-sound");
37
37
}
38
38
 
39
39
IndicatorsFactory::~IndicatorsFactory()
41
41
    qDeleteAll(m_factoryItems);
42
42
}
43
43
 
44
 
template<class TYPE>
45
 
void IndicatorsFactory::registerItem(const QString& indicator)
 
44
IndicatorsFactory& IndicatorsFactory::instance()
46
45
{
47
 
    m_factoryItems[indicator] = new IndicatorFactoryItemTyped<TYPE>();
 
46
    static IndicatorsFactory factory;
 
47
    return factory;
48
48
}
49
49
 
50
50
IndicatorClientInterface::Ptr IndicatorsFactory::create(const QString& indicator, QObject* parent)
52
52
    if (!m_factoryItems.contains(indicator))
53
53
        return IndicatorClientInterface::Ptr();
54
54
    return m_factoryItems[indicator]->create(parent);
 
55
}
 
56
 
 
57
 
 
58
bool IndicatorsFactory::isRegistered(const QString& indicator)
 
59
{
 
60
    return m_factoryItems.contains(indicator);
55
61
}
 
 
b'\\ No newline at end of file'