base_reprocessing_unit.h 1.88 KB
/*
 * @Author: your name
 * @Date: 2021-11-17 18:58:13
 * @LastEditTime: 2021-12-15 14:37:23
 * @LastEditors: Please set LastEditors
 * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 * @FilePath: /tsl_aiplatform/src/tsl_aiplatform/reprocessing_module/base_reprocessing_unit.h
 */
#pragma once

#ifdef POST_USE_RABBITMQ
#include "../ai_platform/header.h"
#endif  // #ifdef POST_USE_RABBITMQ

#include "stl_aiplatform_header.h"
#include "snapshot_reprocessing.h"
#include "task_param_manager.h"
#include "./post_reprocessing.hpp"

#ifndef _MSC_VER
	#ifndef TRUE
	#define    TRUE         1
	#endif
	#ifndef FALSE
	#define    FALSE        0
	#endif
	#define Sleep(a) usleep((a)*1000)
	//typedef    int    BOOL;
#define BOOL bool
	typedef    unsigned int    DWORD;
	typedef    void*	LPVOID;
#endif


enum class data_device_t
{
	GPU = 0,
	CPU = 1,
};

typedef struct multi_image_t
{
	const sy_img &ori_img, &roi_img;
	std::string ori_fpath, roi_fpath;
	data_device_t ori_data_device, roi_data_device;

	explicit multi_image_t(const sy_img &_ori_img, const sy_img &_roi_img)
	: ori_img(_ori_img)
	, roi_img(_roi_img)
	{}
} multi_image_t;


class base_reprocessing_unit
{
protected:
	task_param_manager *_task_param_manager;

	typedef std::function<bool(const char *msg)> callback_t;

public:


	snapshot_reprocessing *_snapshot_reprocessing;
	base_reprocessing_unit() {};
	virtual ~base_reprocessing_unit() {};

#ifdef POST_USE_RABBITMQ
	virtual void set_callback(callback_t cb) = 0;
#endif

	virtual void reprocessing_process(const OBJ_KEY &obj_key) = 0;
 	virtual void reprocessing_process_face(const OBJ_KEY &obj_key) = 0; //人脸快照后处理函数

	virtual void reprocessing_process_wo_locus(const OBJ_KEY &obj_key, const multi_image_t &m_image, bool enable_async
#ifdef POST_USE_RABBITMQ
	, const std::string &json_str
#endif
	) = 0;
};