29 lines
841 B
C++
29 lines
841 B
C++
#pragma once
|
|
|
|
#include <span>
|
|
#include <vector>
|
|
|
|
#include <hex/providers/provider.hpp>
|
|
#include <hex/helpers/literals.hpp>
|
|
|
|
#include <wolv/io/buffered_reader.hpp>
|
|
|
|
namespace hex::prv {
|
|
|
|
using namespace hex::literals;
|
|
|
|
inline void providerReaderFunction(Provider *provider, void *buffer, u64 address, size_t size) {
|
|
provider->read(address, buffer, size);
|
|
}
|
|
|
|
class ProviderReader : public wolv::io::BufferedReader<prv::Provider, providerReaderFunction> {
|
|
public:
|
|
using BufferedReader::BufferedReader;
|
|
|
|
ProviderReader(Provider *provider, size_t bufferSize = 0x100000) : BufferedReader(provider, provider->getActualSize(), bufferSize) {
|
|
this->setEndAddress(provider->getBaseAddress() + provider->getActualSize() - 1);
|
|
this->seek(provider->getBaseAddress());
|
|
}
|
|
};
|
|
|
|
} |