Modules/Storage/public/Storage.hpp
2023-07-18 23:36:51 +03:00

53 lines
No EOL
1.1 KiB
C++

#pragma once
#include "Strings.hpp"
namespace tp {
extern ModuleManifest gModuleStorage;
class StorageLocation {
public:
StorageLocation() = default;
virtual ~StorageLocation() = default;
};
class ConnectionType {
public:
ConnectionType() = default;
virtual ~ConnectionType() = default;
};
class ConnectionStatus {
public:
ConnectionStatus() = default;
virtual ~ConnectionStatus() = default;
};
class Storage {
typedef ualni SizeBytes;
typedef ualni BytePointer;
typedef int1 Byte;
private:
StorageLocation mLocation;
ConnectionType mConnectionType;
ConnectionStatus mStatus;
public:
Storage() = default;
virtual ~Storage() = default;
public:
virtual bool connect(const StorageLocation& location, const ConnectionType& connectionInfo) = 0;
virtual bool disconnect() = 0;
virtual const ConnectionStatus& getConnectionStatus() = 0;
public:
virtual bool readBytes(BytePointer pointer, Byte* bytes, SizeBytes size) = 0;
virtual bool writeBytes(BytePointer pointer, const Byte* bytes, SizeBytes size) = 0;
public:
virtual SizeBytes size() = 0;
};
};