diff options
author | Stefan Radomski <github@mintwerk.de> | 2017-07-05 08:05:55 (GMT) |
---|---|---|
committer | Stefan Radomski <github@mintwerk.de> | 2017-07-05 08:05:55 (GMT) |
commit | bfefa5fd44b9ed1491612f26b099db8ad624247b (patch) | |
tree | ca4313ced9adb3288056c3e7ddf121e614cf3c2b /src/uscxml/plugins/Factory.cpp | |
parent | 04121c58222c95b1d808a1556b5110832a1c1119 (diff) | |
download | uscxml-bfefa5fd44b9ed1491612f26b099db8ad624247b.zip uscxml-bfefa5fd44b9ed1491612f26b099db8ad624247b.tar.gz uscxml-bfefa5fd44b9ed1491612f26b099db8ad624247b.tar.bz2 |
More performant Monitors
Breaks InterpreterMonitor API, Interpreter argument is substituted by sessionId. Use Intererpreter::fromSessionId to retrieve actual session when required.
Diffstat (limited to 'src/uscxml/plugins/Factory.cpp')
-rw-r--r-- | src/uscxml/plugins/Factory.cpp | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/src/uscxml/plugins/Factory.cpp b/src/uscxml/plugins/Factory.cpp index 410ac36..9e885e5 100644 --- a/src/uscxml/plugins/Factory.cpp +++ b/src/uscxml/plugins/Factory.cpp @@ -133,10 +133,10 @@ Factory::~Factory() { void Factory::registerPlugins() { #ifndef FEATS_ON_CMD - registerMicrostepper(new LargeMicroStep()); - registerMicrostepper(new FastMicroStep()); + registerMicrostepper(new LargeMicroStep()); + registerMicrostepper(new FastMicroStep()); #endif - + /*** PLUGINS ***/ #ifdef BUILD_AS_PLUGINS @@ -507,36 +507,36 @@ std::shared_ptr<ExecutableContentImpl> Factory::createExecutableContent(const st #ifndef FEATS_ON_CMD bool Factory::hasMicroStepper(const std::string& name) { - if (_microSteppers.find(name) != _microSteppers.end()) { - return true; - } else if(_parentFactory) { - return _parentFactory->hasMicroStepper(name); - } - return false; + if (_microSteppers.find(name) != _microSteppers.end()) { + return true; + } else if(_parentFactory) { + return _parentFactory->hasMicroStepper(name); + } + return false; } - + void Factory::registerMicrostepper(MicroStepImpl* microStepper) { - _microSteppers[microStepper->getName()] = microStepper; + _microSteppers[microStepper->getName()] = microStepper; } std::shared_ptr<MicroStepImpl> Factory::createMicroStepper(const std::string& name, MicroStepCallbacks* callbacks) { - if (_microSteppers.find(name) != _microSteppers.end()) { - std::shared_ptr<MicroStepImpl> microStepper = _microSteppers[name]->create(callbacks); - return microStepper; - } - - if (_parentFactory) { - return _parentFactory->createMicroStepper(name, callbacks); - } else { - ERROR_EXECUTION_THROW("No Microstepper '" + name + "' known"); - } - - return std::shared_ptr<MicroStepImpl>(); + if (_microSteppers.find(name) != _microSteppers.end()) { + std::shared_ptr<MicroStepImpl> microStepper = _microSteppers[name]->create(callbacks); + return microStepper; + } + + if (_parentFactory) { + return _parentFactory->createMicroStepper(name, callbacks); + } else { + ERROR_EXECUTION_THROW("No Microstepper '" + name + "' known"); + } + + return std::shared_ptr<MicroStepImpl>(); } #endif - + void DataModelImpl::addExtension(DataModelExtension* ext) { ERROR_EXECUTION_THROW("DataModel does not support extensions"); } |