Line data Source code
1 : #include "RunnerVisitorFactory.h" 2 : #include "Manager.h" 3 : #include "RunnerEnhancerOpenCVVisitor.h" 4 : #include "RunnerEnhancerVulkanVisitor.h" 5 : #include "RunnerTrainingOpenCVVisitor.h" 6 : #include "RunnerTrainingVulkanVisitor.h" 7 : 8 : using namespace sipai; 9 : 10 2 : const RunnerVisitor &RunnerVisitorFactory::getTrainingVisitor() { 11 2 : if (!trainingVisitor_) { 12 1 : const auto &app_param = Manager::getConstInstance().app_params; 13 1 : if (app_param.enable_vulkan) { 14 0 : trainingVisitor_ = std::make_unique<RunnerTrainingVulkanVisitor>(); 15 : } else { 16 1 : trainingVisitor_ = std::make_unique<RunnerTrainingOpenCVVisitor>(); 17 : } 18 : } 19 2 : return *trainingVisitor_; 20 : } 21 : 22 0 : const RunnerVisitor &RunnerVisitorFactory::getEnhancerVisitor() { 23 0 : if (!enhancerVisitor_) { 24 0 : const auto &app_param = Manager::getConstInstance().app_params; 25 0 : if (app_param.enable_vulkan) { 26 0 : enhancerVisitor_ = std::make_unique<RunnerEnhancerVulkanVisitor>(); 27 : } else { 28 0 : enhancerVisitor_ = std::make_unique<RunnerEnhancerOpenCVVisitor>(); 29 : } 30 : } 31 0 : return *enhancerVisitor_; 32 : }