#pragma once #include #include #include #include #include #include #include "DevInfoInc.h" #include #include typedef struct tagTask{ int id ; std::string agent ; std::string number; int type ; std::string content ; long uniqueId(void) const { return reinterpret_cast(this); } tagTask() { id = 0; agent.clear(); number.clear(); type = 0; content.clear(); } }Task; // 坐席 手机号 外呼类型 内容 class AutoCall { public: AutoCall(); ~AutoCall(); void startTask(); void stopTask(); void addTask(); void waitTask(std::string agentId); void updateTask(std::string id); typedef std::function DealFun; // 定义回调函数类型 void setDetalTaskFun(DealFun fun) { this->fun = fun; }; private: void __threadFun(); bool __dealTask(); private: std::string m_RecordFile; // 进行语音外呼时的语音文件路径 AUTO_CALL_TYPE m_CallType; // 自动外呼类型 std::map m_Tasks; std::mutex mut; std::map m_WaitTasks; std::mutex mutWait; volatile bool m_IsStop; std::condition_variable con; DealFun fun; // 任务回调函数 };