59 lines
1.2 KiB
C++
59 lines
1.2 KiB
C++
#ifndef _SIADOKANDRIVE_H
|
|
#define _SIADOKANDRIVE_H
|
|
|
|
#ifdef _WIN32
|
|
#define WIN32_NO_STATUS
|
|
|
|
// Import or export functions and/or classes
|
|
#ifdef SIADRIVE_DOKAN_EXPORT_SYMBOLS
|
|
#define SIADRIVE_DOKAN_EXPORTABLE __declspec(dllexport)
|
|
#else
|
|
#define SIADRIVE_DOKAN_EXPORTABLE __declspec(dllimport)
|
|
#endif //SIADRIVE_DOKAN_EXPORT_SYMBOLS
|
|
#else
|
|
#define SIADRIVE_DOKAN_EXPORTABLE
|
|
#endif
|
|
|
|
#include <siaapi.h>
|
|
#include <mutex>
|
|
#include <eventsystem.h>
|
|
#include <uploadmanager.h>
|
|
NS_BEGIN(Sia)
|
|
NS_BEGIN(Api)
|
|
NS_BEGIN(Dokan)
|
|
|
|
class SIADRIVE_DOKAN_EXPORTABLE SiaDokanDriveException :
|
|
std::exception
|
|
{
|
|
public:
|
|
SiaDokanDriveException(char* message) :
|
|
std::exception(message)
|
|
{
|
|
|
|
}
|
|
};
|
|
|
|
class SIADRIVE_DOKAN_EXPORTABLE CSiaDokanDrive
|
|
{
|
|
public:
|
|
// throws SiaDokenDriveException
|
|
CSiaDokanDrive(CSiaApi& siaApi, CSiaDriveConfig* siaDriveConfig);
|
|
|
|
public:
|
|
~CSiaDokanDrive();
|
|
|
|
private:
|
|
CSiaApi& _siaApi;
|
|
CSiaDriveConfig* _siaDriveConfig;
|
|
std::mutex _startStopMutex;
|
|
|
|
public:
|
|
void ClearCache();
|
|
UploadFileListPtr GetUploadFileList() const;
|
|
bool IsMounted() const;
|
|
void Mount(const wchar_t& driveLetter, const SString& cacheLocation, const std::uint64_t& maxCacheSizeBytes);
|
|
void Unmount(const bool& clearCache = false);
|
|
};
|
|
|
|
NS_END(3)
|
|
#endif //_SIADOKANDRIVE_H
|