invoked by s3_export(), need to be exception safe
| 104 | |
| 105 | // invoked by s3_export(), need to be exception safe |
| 106 | bool writer_transfer_data(GPWriter* writer, char* data_buf, int data_len) { |
| 107 | try { |
| 108 | if (!writer || !data_buf || (data_len <= 0)) { |
| 109 | return false; |
| 110 | } |
| 111 | |
| 112 | uint64_t write_len = writer->write(data_buf, data_len); |
| 113 | |
| 114 | S3_CHECK_OR_DIE(write_len == (uint64_t)data_len, S3RuntimeError, |
| 115 | "Failed to upload the data completely."); |
| 116 | } catch (S3Exception& e) { |
| 117 | s3extErrorMessage = |
| 118 | "writer_transfer_data caught a " + e.getType() + " exception: " + e.getFullMessage(); |
| 119 | S3ERROR("writer_transfer_data caught %s: %s", e.getType().c_str(), |
| 120 | s3extErrorMessage.c_str()); |
| 121 | return false; |
| 122 | } catch (...) { |
| 123 | S3ERROR("Caught an unexpected exception."); |
| 124 | s3extErrorMessage = "Caught an unexpected exception."; |
| 125 | return false; |
| 126 | } |
| 127 | |
| 128 | return true; |
| 129 | } |
| 130 | |
| 131 | // invoked by s3_export(), need to be exception safe |
| 132 | bool writer_cleanup(GPWriter** writer) { |
no test coverage detected