ConditionFactory.cc 511 B

12345678910111213141516171819202122232425262728
  1. #include "Event/ConditionFactory.h"
  2. namespace Egametang {
  3. ConditionFactory::ConditionFactory(): factories(100)
  4. {
  5. }
  6. ConditionFactory::~ConditionFactory()
  7. {
  8. for (std::size_t i = 0; i < factories.size(); ++i)
  9. {
  10. delete factories[i];
  11. }
  12. }
  13. void ConditionFactory::Register(int type, NodeFactoryIf* factory)
  14. {
  15. factories[type] = factory;
  16. }
  17. NodeIf* ConditionFactory::GetInstance(const LogicNode& conf)
  18. {
  19. int32 type = conf.type();
  20. return factories[type]->GetInstance(conf);
  21. }
  22. } // namespace Egametang