RegionImpl* RegionImplFactory::createRegionImpl(const std::string nodeType, const std::string nodeParams, Region* region) { RegionImpl *impl = nullptr; Spec *ns = getSpec(nodeType); ValueMap vm = YAMLUtils::toValueMap( nodeParams.c_str(), ns->parameters, nodeType, region->getName()); if (cppRegions.find(nodeType) != cppRegions.end()) { impl = cppRegions[nodeType]->createRegionImpl(vm, region); } else if ((nodeType.find(std::string("py.")) == 0)) { if (!pyLib_) pyLib_ = boost::shared_ptr<DynamicPythonLibrary>(new DynamicPythonLibrary()); impl = createPyNode(pyLib_.get(), nodeType, &vm, region); } else { NTA_THROW << "Unsupported node type '" << nodeType << "'"; } return impl; }
RegionImpl* RegionImplFactory::createRegionImpl(const std::string nodeType, const std::string nodeParams, Region* region) { RegionImpl *mn = NULL; Spec *ns = getSpec(nodeType); ValueMap vm = YAMLUtils::toValueMap( nodeParams.c_str(), ns->parameters, nodeType, region->getName()); if (nodeType == "TestNode") { mn = new TestNode(vm, region); } else if (nodeType == "VectorFileEffector") { mn = new VectorFileEffector(vm, region); } else if (nodeType == "VectorFileSensor") { mn = new VectorFileSensor(vm, region); } else if ((nodeType.find(std::string("py.")) == 0)) { if (!pyLib_) pyLib_ = boost::shared_ptr<DynamicPythonLibrary>(new DynamicPythonLibrary()); mn = createPyNode(pyLib_.get(), nodeType, &vm, region); } else { NTA_THROW << "Unsupported node type '" << nodeType << "'"; } return mn; }