| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #pragma once
- #include <list>
- #include <map>
- #include <mutex>
- #include <string>
- #include <tuple>
- #include <functional>
- #include "DevInfoInc.h"
- #include <condition_variable>
- #include <functional>
- typedef struct tagTask{
- int id ;
- std::string agent ;
- std::string number;
- int type ;
- std::string content ;
- long uniqueId(void) const { return reinterpret_cast<long>(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<void(Task)> DealFun; // 定义回调函数类型
- void setDetalTaskFun(DealFun fun) { this->fun = fun; };
- private:
- void __threadFun();
- void __threadFunV2();
- bool __dealTask();
- private:
- std::string m_RecordFile; // 进行语音外呼时的语音文件路径
- AUTO_CALL_TYPE m_CallType; // 自动外呼类型
- std::map<int, Task> m_Tasks;
- std::mutex mut;
- std::map<int, Task> m_WaitTasks;
- std::mutex mutWait;
- std::mutex g_mut;
- volatile bool m_IsStop;
- std::condition_variable con;
- DealFun fun; // 任务回调函数
- };
|