(_ context.Context, bucketName, objectName string, opts PutObjectOptions, )
| 61 | } |
| 62 | |
| 63 | func (c *Client) putObjectRDMA(_ context.Context, bucketName, objectName string, |
| 64 | opts PutObjectOptions, |
| 65 | ) (UploadInfo, error) { |
| 66 | h, err := c.rdma() |
| 67 | if err != nil { |
| 68 | return UploadInfo{}, err |
| 69 | } |
| 70 | |
| 71 | bucketC := C.CString(bucketName) |
| 72 | defer C.free(unsafe.Pointer(bucketC)) |
| 73 | objectC := C.CString(objectName) |
| 74 | defer C.free(unsafe.Pointer(objectC)) |
| 75 | |
| 76 | var etagBuf, checksumBuf [64]C.char |
| 77 | n := C.miniocpp_put_object(h.cptr, bucketC, objectC, |
| 78 | opts.RDMABuffer, C.size_t(opts.RDMABufferSize), |
| 79 | nil, nil, &etagBuf[0], &checksumBuf[0]) |
| 80 | if n < 0 { |
| 81 | return UploadInfo{}, fmt.Errorf("RDMA put: %s", lastRDMAError()) |
| 82 | } |
| 83 | |
| 84 | return UploadInfo{ |
| 85 | Bucket: bucketName, |
| 86 | Key: objectName, |
| 87 | Size: int64(n), |
| 88 | ETag: C.GoString(&etagBuf[0]), |
| 89 | ChecksumCRC64NVME: C.GoString(&checksumBuf[0]), |
| 90 | }, nil |
| 91 | } |
| 92 | |
| 93 | func (c *Client) getObjectRDMA(_ context.Context, bucketName, objectName string, |
| 94 | opts GetObjectOptions, |
no test coverage detected