VTrain_BothSides/engine/MergeEngine/MergeEngine.h

48 lines
1.0 KiB
C++

/**
* 车号第一步过滤Engine
* */
#ifndef MergeEngine_H
#define MergeEngine_H
#include "AppCommon.h"
#include "EngineBase.h"
#include "EngineFactory.h"
#include "multitype_queue.h"
class MultiTypeQueue;
class MergeEngine : public ai_matrix::EngineBase
{
public:
MergeEngine();
~MergeEngine();
APP_ERROR Init() override;
APP_ERROR DeInit() override;
APP_ERROR Process() override;
private:
std::string strPort0_;
std::string strPort1_;
ai_matrix::BaseConfig baseConfig_;
ai_matrix::IdentifyConfig identifyConfig_;
// ai_matrix::MultiTypeQueue *multiTypeQueue_;
std::map<int, VTrainInfo> mapTrain_;
std::map<int, bool> mapHavSecondary_;
std::queue<int> queueHavSecondary_;
bool isComplete(std::shared_ptr<VTrainInfo> pVTrain);
bool isSameCarriage(std::shared_ptr<VTrainInfo> pVTrain, const VTrainInfo & train_secondary);
void supplementTrain(std::shared_ptr<VTrainInfo> pVTrain, const VTrainInfo & train_secondary);
};
ENGINE_REGIST(MergeEngine)
#endif