6 using namespace edm::storage;
7 using namespace edm::storage::IOFlags;
73 open(name.c_str(), flags, perms);
104 return copy ? this->
duplicate(dup) : dup;
141 open(name.c_str(), flags, perms);
164 sysopen(name, flags, perms, newfd, newflags);
182 info.ra_offset = what[
i].
offset();
183 info.ra_count = what[
i].
size();
184 fcntl(fd, F_RDADVISE, &info);
185 #elif _POSIX_ADVISORY_INFO > 0
186 posix_fadvise(fd, what[
i].
offset(), what[
i].
size(), POSIX_FADV_WILLNEED);
188 #error advisory read ahead not available on this platform
void throwStorageError(const char *category, const char *context, const char *call, int error)
IOSize syswrite(const void *from, IOSize n)
virtual void setAutoClose(bool closeit)
IOSize syswritev(const IOBuffer *from, IOSize length)
virtual IOOffset position() const
virtual void open(const char *name, int flags=IOFlags::OpenRead, int perms=0666)
bool prefetch(const IOPosBuffer *what, IOSize n) override
static void sysopen(const char *name, int flags, int perms, IOFD &newfd, unsigned &newflags)
static IOFD sysduplicate(IOFD fd)
IOSize write(const void *from, IOSize n) override
File * duplicate(bool copy) const
IOOffset size() const override
virtual void create(const char *name, bool exclusive=false, int perms=0666)
constexpr int EDM_IOFD_INVALID
virtual void attach(IOFD fd)
static bool sysclose(IOFD fd, int *error=nullptr)
IOSize writev(const IOBuffer *from, IOSize length) override