30 namespace fileutil_detail {
33 template <
class F,
class...
Args>
38 }
while (r == -1 && errno == EINTR);
42 inline void incr(ssize_t ) {}
43 inline void incr(ssize_t n, off_t& offset) {
52 template <
class F,
class... Offset>
54 char*
b =
static_cast<char*
>(buf);
55 ssize_t totalBytes = 0;
58 r =
f(fd, b, count, offset...);
70 }
while (r != 0 && count);
77 template <
class F,
class... Offset>
79 ssize_t totalBytes = 0;
82 r =
f(fd, iov, std::min<int>(count,
kIovMax), offset...);
96 while (r != 0 && count != 0) {
97 if (r >= ssize_t(iov->iov_len)) {
98 r -= ssize_t(iov->iov_len);
102 iov->iov_base =
static_cast<char*
>(iov->iov_base) + r;
ssize_t wrapNoInt(F f, Args...args)
internal::ArgsMatcher< InnerMatcher > Args(const InnerMatcher &matcher)
—— Concurrent Priority Queue Implementation ——
ssize_t wrapvFull(F f, int fd, iovec *iov, int count, Offset...offset)
ssize_t wrapFull(F f, int fd, void *buf, size_t count, Offset...offset)