// This file is a part of Framsticks SDK. http://www.framsticks.com/ // Copyright (C) 1999-2020 Maciej Komosinski and Szymon Ulatowski. // See LICENSE.txt for details. #ifndef _NEUROFACTORY_H_ #define _NEUROFACTORY_H_ #include #include #include class NeuroImpl; class NeuroFactory { std::map impl; public: NeuroImpl* setImplementation(NeuroClass *nc, NeuroImpl *ni, bool deleteold = 1); NeuroImpl* setImplementation(const SString& classname, NeuroImpl *ni, bool deleteold = 1); NeuroImpl* getImplementation(NeuroClass *nc); class NeuroImpl* createNeuroImpl(Neuro *n, Model::ShapeType shape_type) { NeuroClass *nc = n->getClass(); if (!nc) return 0; return createNeuroImpl(nc, shape_type); } class NeuroImpl* createNeuroImpl(NeuroClass *nc, Model::ShapeType shape_type); void setStandardImplementation(); void freeImplementation(); void removeUnimplemented(); }; #endif