initial commit
This commit is contained in:
39
include/siadrive_api/autothread.h
Normal file
39
include/siadrive_api/autothread.h
Normal file
@@ -0,0 +1,39 @@
|
||||
#ifndef _AUTOTHREAD_H
|
||||
#define _AUTOTHREAD_H
|
||||
|
||||
#include <siacommon.h>
|
||||
|
||||
NS_BEGIN(Sia)
|
||||
NS_BEGIN(Api)
|
||||
|
||||
class CSiaDriveConfig;
|
||||
class CSiaCurl;
|
||||
class SIADRIVE_EXPORTABLE CAutoThread
|
||||
{
|
||||
public:
|
||||
CAutoThread(CSiaDriveConfig* siaDriveConfig);
|
||||
CAutoThread(CSiaDriveConfig* siaDriveConfig, std::function<void(CSiaDriveConfig*)> autoThreadCallback);
|
||||
|
||||
public:
|
||||
virtual ~CAutoThread();
|
||||
|
||||
private:
|
||||
bool _stopRequested;
|
||||
CSiaDriveConfig* _siaDriveConfig;
|
||||
std::function<void(CSiaDriveConfig*)> _AutoThreadCallback;
|
||||
std::unique_ptr<std::thread> _thread;
|
||||
std::mutex _startStopMutex;
|
||||
std::mutex _stopMutex;
|
||||
std::condition_variable _stopEvent;
|
||||
|
||||
protected:
|
||||
virtual void AutoThreadCallback(CSiaDriveConfig* siaDriveConfig);
|
||||
|
||||
public:
|
||||
bool IsRunning() const;
|
||||
void StartAutoThread();
|
||||
void StopAutoThread();
|
||||
};
|
||||
|
||||
NS_END(2)
|
||||
#endif //_AUTOTHREAD_H
|
||||
Reference in New Issue
Block a user