#ifndef FACEEXTRACTELEMENT_H #define FACEEXTRACTELEMENT_H #include "SaveVideoRpc.h" #include #include #include #include #include "TrackingTrigger.h" #include #include #include #include #include #include #include "DBStruct.h" #define VECTOR_MAX 50 class QSharedMemory; struct FaceToExtract { string uuid; string time; cv::Mat image; FaceDetect::Faces facesPos; std::vector scoredRects; std::vector faceImages; }; class FaceExtractElement : public TimerElement { public: FaceExtractElement(std::string shareMemoryName,const SdkRule& rule); //FaceExtractElement(std::string shareMemoryName,const SdkRule& rule,SaveVideoRpcClient_t& rpcClient); ~FaceExtractElement(); void setFdfs(FastFdsWithLock *p_fdfsClient) { fdfsClient = p_fdfsClient; } void submitFaceExtract(FaceToExtract faceToExtract); // AlarmServerInterface::TableNames getTableNames() const; std::vector<::FaceDetect::Data> getFeatures() const; private: virtual void timerFunc() override; IceRpcClient faceExtractRpcClient; IceRpcClient faceSearchRpcClient; FastFdsWithLock *fdfsClient; std::vector faceExtractQueue; std::mutex imageQueueMutex; QSharedMemory *sharedMemory; // AlarmServerInterface::TableNames tableNames; std::vector<::FaceDetect::Data> features; Base64 base64; SdkRule m_sdkRule; SaveVideoRpcClient_t m_rpcClient; }; #endif // FACEEXTRACTELEMENT_H