@@ -103,11 +103,25 @@ NfsConnection::CancellableCallback::Stat(nfs_context *ctx,
103
103
104
104
inline void
105
105
NfsConnection::CancellableCallback::Read (nfs_context *ctx, struct nfsfh *fh,
106
- uint64_t offset, size_t size)
106
+ uint64_t offset,
107
+ #ifdef LIBNFS_API_2
108
+ std::span<std::byte> dest
109
+ #else
110
+ std::size_t size
111
+ #endif
112
+ )
107
113
{
108
114
assert (connection.GetEventLoop ().IsInside ());
109
115
110
- int result = nfs_pread_async (ctx, fh, offset, size, Callback, this );
116
+ int result = nfs_pread_async (ctx, fh,
117
+ #ifdef LIBNFS_API_2
118
+ dest.data (), dest.size (),
119
+ #endif
120
+ offset,
121
+ #ifndef LIBNFS_API_2
122
+ size,
123
+ #endif
124
+ Callback, this );
111
125
if (result < 0 )
112
126
throw FormatRuntimeError (" nfs_pread_async() failed: %s" ,
113
127
nfs_get_error (ctx));
@@ -329,15 +343,26 @@ NfsConnection::Stat(struct nfsfh *fh, NfsCallback &callback)
329
343
}
330
344
331
345
void
332
- NfsConnection::Read (struct nfsfh *fh, uint64_t offset, size_t size,
346
+ NfsConnection::Read (struct nfsfh *fh, uint64_t offset,
347
+ #ifdef LIBNFS_API_2
348
+ std::span<std::byte> dest,
349
+ #else
350
+ std::size_t size,
351
+ #endif
333
352
NfsCallback &callback)
334
353
{
335
354
assert (GetEventLoop ().IsInside ());
336
355
assert (!callbacks.Contains (callback));
337
356
338
357
auto &c = callbacks.Add (callback, *this , false );
339
358
try {
340
- c.Read (context, fh, offset, size);
359
+ c.Read (context, fh, offset,
360
+ #ifdef LIBNFS_API_2
361
+ dest
362
+ #else
363
+ size
364
+ #endif
365
+ );
341
366
} catch (...) {
342
367
callbacks.Remove (c);
343
368
throw ;
0 commit comments