#ifndef _INFER_ZSF_HPP
#define _INFER_ZSF_HPP_
#include <string>
#include <vector>
#include <memory>
#include <future>
class Infer
{
virtual std::shared_future<std::string> commit(const std::string& input) = 0;
};
std::shared_ptr<Infer> create_infer(const std::string& model_path, const float nms_threshold, const float conf_threshold);
#endif
#include "infer_zsf.hpp"
#include <future>
#include <thread>
#include <mutex>
#include <queue>
#include <string>
using namespace std;
struct Job{
shared_ptr<promise<string>> pro; // 任务id绑定
string input;
};
class InferImpl:public Infer
{
public:
virtual ~InferImpl() {stop();}
void stop()
{
if(running_)
{
running_ = false;
cv_.notify_one();
}
if(worker_thread_.joinabl