12#ifndef O2_FRAMEWORK_AODNATIVE_HTTPBYTESOURCE_H_
13#define O2_FRAMEWORK_AODNATIVE_HTTPBYTESOURCE_H_
33 uint64_t
size()
const override {
return mSize; }
35 void readvInto(std::span<ReadRequest> requests)
override;
36 uint64_t
bytesRead()
const override {
return mBytesRead.load(std::memory_order_relaxed); }
38 uint64_t
readCalls()
const override {
return mReadCalls.load(std::memory_order_relaxed); }
40 std::string
url()
const override {
return mName; }
41 bool isRemote()
const override {
return true; }
46 void checkRange(uint64_t off,
size_t len)
const;
51 std::unique_ptr<Shared> mShared;
53 std::atomic<uint64_t> mBytesRead = 0;
54 std::atomic<uint64_t> mReadCalls = 0;
~HttpByteSource() override
uint64_t bytesRead() const override
void readInto(uint64_t off, size_t len, void *dst) override
Throws IoError, or CorruptData when the range is past the end of the file.
uint64_t size() const override
std::string url() const override
Without the query, which may hold a token.
bool isRemote() const override
Whether each read is a network round trip, worth hiding behind decoding.
void readvInto(std::span< ReadRequest > requests) override
uint64_t readCalls() const override
HTTP requests sent.
GLenum GLenum GLsizei len