#include "protocol.pb.h" #include "update_thread.h" #include "socket_client.h" CUpdateThread::CUpdateThread() { _run=false; } void CUpdateThread::start(SocketClient* c) { _run=false; _client=c; _thread=std::thread(&CUpdateThread::run,this); } void CUpdateThread::run() { _run=true; long long tick = std::chrono::duration_cast(std::chrono::system_clock::now().time_since_epoch()).count(); while(_run) { std::this_thread::sleep_for(std::chrono::microseconds(500)); if(!_run) break; long long diff=std::chrono::duration_cast(std::chrono::system_clock::now().time_since_epoch()).count(); if(diff-tick>3) { _client->WriteKeepAlive(); tick=std::chrono::duration_cast(std::chrono::system_clock::now().time_since_epoch()).count(); } } } void CUpdateThread::stop() { if(_run) { _run=false; _thread.join(); } } CUpdateThread::~CUpdateThread() { _run = false; _thread.join(); }