14 #include "eckit/exception/Exceptions.h"
46 position_(internal_->dh_->position()) {}
52 internal_(other.internal_),
53 position_(other.position_) {}
62 internal_(
std::move(other.internal_)),
63 position_(other.position_) {}
72 return !(*
this == other);
81 s <<
"ThreadSharedDataHandle(" << *
internal_->dh_ <<
")";
86 std::lock_guard<std::mutex> lock(
internal_->m_);
97 std::lock_guard<std::mutex> lock(
internal_->m_);
103 long delta =
internal_->dh_->read(buffer, length);
112 std::lock_guard<std::mutex> lock(
internal_->m_);
~ThreadSharedDataHandle() override
eckit::Offset position() override
std::string title() const override
long read(void *, long) override
eckit::Length openForRead() override
ThreadSharedDataHandle & operator=(const ThreadSharedDataHandle &)
void openForAppend(const eckit::Length &) override
std::shared_ptr< Internal > internal_
eckit::Offset seek(const eckit::Offset &) override
eckit::Length estimate() override
bool operator==(const ThreadSharedDataHandle &other)
void openForWrite(const eckit::Length &) override
long write(const void *, long) override
void print(std::ostream &s) const override
ThreadSharedDataHandle(eckit::DataHandle &dh)
bool operator!=(const ThreadSharedDataHandle &other)
Internal(eckit::DataHandle *dh, bool owned)