VTrain/engine/MergeEngine/Step2MergeEngine.cpp

1 line
2.2 KiB
C++
Raw Normal View History

2024-11-27 12:47:45 +00:00
#include "Step1MergeEngine.h" using namespace ai_matrix; Step1MergeEngine::Step1MergeEngine() {} Step1MergeEngine::~Step1MergeEngine() {} APP_ERROR Step1MergeEngine::Init() { strPort0_ = engineName_ + "_" + std::to_string(engineId_) + "_0"; strPort1_ = engineName_ + "_" + std::to_string(engineId_) + "_1"; this->baseConfig_ = Config::getins()->getBaseConfig(); this->identifyConfig_ = Config::getins()->getIdentifyConfig(); this->multiTypeQueue_ = new ai_matrix::MultiTypeQueue(2); LogInfo << "MergeEngine Init ok"; return APP_ERR_OK; } APP_ERROR Step1MergeEngine::DeInit() { LogInfo << "MergeEngine DeInit ok"; return APP_ERR_OK; } APP_ERROR Step1MergeEngine::Process() { int iRet = APP_ERR_OK; while (!isStop_) { std::shared_ptr<void> pVoidData0 = nullptr; inputQueMap_[strPort0_]->pop(pVoidData0); if (nullptr == pVoidData0) { usleep(1000); //1ms continue; } this->multiTypeQueue_->PushData(0, pVoidData0); std::shared_ptr<void> pVoidData1 = nullptr; inputQueMap_[strPort0_]->pop(pVoidData1); if (nullptr == pVoidData1) { usleep(1000); //1ms continue; } this->multiTypeQueue_->PushData(1, pVoidData1); if (!this->multiTypeQueue_->PopAllData(pVoidData0, pVoidData1)) { usleep(1000); //1ms continue; } std::shared_ptr<VStep2OutputData> pVStep2OutputData = std::static_pointer_cast<VStep2OutputData>(pVoidData0); std::shared_ptr<VStep2OutputData> pVStep2OutputData_container = std::static_pointer_cast<VStep2OutputData>(pVoidData1); for (auto it = pVStep2OutputData_container->vecStep2ResultData.begin(); it != pVStep2OutputData_container->vecStep2ResultData.end(); ++it) { pVStep2OutputData->vecStep2ResultData.emplace_back(*it); } outputQueMap_[strPort0_]->push(std::static_pointer_cast<void>(pVStep2OutputData), true); outputQueMap_[strPort1_]->push(std::static_pointer_cast<void>(pVStep2OutputData), true); } return APP_ERR_OK; }