size_t readS3TransferManager()

in awsio/csrc/io/s3/s3_io.cpp [209:236]


    size_t readS3TransferManager(uint64_t offset, size_t n, char *buffer) {
        auto create_stream_fn = [&]() {  // create stream lambda fn
            return Aws::New<S3UnderlyingStream>(
                "S3ReadStream",
                Aws::New<Aws::Utils::Stream::PreallocatedStreamBuf>(
                    "S3ReadStream", reinterpret_cast<unsigned char *>(buffer),
                    n));
        }; // This buffer is what we used to initialize streambuf and is in memory

        std::shared_ptr<Aws::Transfer::TransferHandle> downloadHandle =
            this->transfer_manager_.get()->DownloadFile(
                this->bucket_name_.c_str(), this->object_name_.c_str(), offset,
                n, create_stream_fn);
        downloadHandle->WaitUntilFinished();

        Aws::OFStream storeFile(object_name_.c_str(),
                                Aws::OFStream::out | Aws::OFStream::trunc);

        if (downloadHandle->GetStatus() !=
            Aws::Transfer::TransferStatus::COMPLETED) {
            auto error = downloadHandle->GetLastError();
            std::cout << "ERROR: " << error.GetExceptionName() << ": "
                      << error.GetMessage() << std::endl;
	    return 0;
        } else {
            return downloadHandle->GetBytesTransferred();
        }
    }