1
0
This repository has been archived on 2025-07-27. You can view files and clone it, but cannot push or open issues or pull requests.
Files
siadrive/SiaDrive.Api/AutoThread.h
2017-02-23 00:55:18 -06:00

34 lines
805 B
C++

#pragma once
#include <SiaCurl.h>
#include <mutex>
NS_BEGIN(Sia)
NS_BEGIN(Api)
class CSiaDriveConfig;
class AFX_EXT_CLASS CAutoThread
{
public:
CAutoThread(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig);
CAutoThread(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig, std::function<void(const CSiaCurl&, CSiaDriveConfig*)> autoThreadCallback);
public:
virtual ~CAutoThread();
private:
CSiaCurl _siaCurl;
CSiaDriveConfig* _siaDriveConfig;
HANDLE _stopEvent;
std::unique_ptr<std::thread> _thread;
std::mutex _startStopMutex;
std::function<void(const CSiaCurl&, CSiaDriveConfig*)> _AutoThreadCallback;
protected:
virtual void AutoThreadCallback(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig);
public:
void StartAutoThread();
void StopAutoThread();
};
NS_END(2)