12#ifndef O2_FRAMEWORK_AODNATIVE_XROOTDBYTESOURCE_H_
13#define O2_FRAMEWORK_AODNATIVE_XROOTDBYTESOURCE_H_
36 uint64_t
size()
const override {
return mSize; }
38 void readvInto(std::span<ReadRequest> requests)
override;
39 uint64_t
bytesRead()
const override {
return mBytesRead.load(std::memory_order_relaxed); }
41 uint64_t
readCalls()
const override {
return mReadCalls.load(std::memory_order_relaxed); }
43 std::string
url()
const override {
return mName; }
44 bool isRemote()
const override {
return true; }
47 void checkRange(uint64_t off,
size_t len)
const;
50 std::unique_ptr<XrdCl::File> mFile;
52 std::atomic<uint64_t> mBytesRead = 0;
53 std::atomic<uint64_t> mReadCalls = 0;
~XRootDByteSource() override
std::string url() const override
Without the query, which may hold an access token.
void readvInto(std::span< ReadRequest > requests) override
uint64_t readCalls() const override
Requests sent to the server: a vectored read counts once.
bool isRemote() const override
Whether each read is a network round trip, worth hiding behind decoding.
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
uint64_t bytesRead() const override
GLenum GLenum GLsizei len