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/include/siadrive_dokan_api/siadokandrive.h
2017-04-15 01:05:41 -05:00

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