| 82 | } |
| 83 | |
| 84 | int HttpStream::read(uint8_t *buf, int buflen) { |
| 85 | gsl_Expects(buflen >= 0); |
| 86 | if (buflen == 0) { |
| 87 | return 0; |
| 88 | } |
| 89 | if (!IsNullOrEmpty(buf)) { |
| 90 | if (!started_) { |
| 91 | std::lock_guard<std::mutex> lock(mutex_); |
| 92 | if (!started_) { |
| 93 | read_callback_.ptr = &http_read_callback_; |
| 94 | read_callback_.pos = 0; |
| 95 | http_client_->setReadCallback(&read_callback_); |
| 96 | http_client_future_ = std::async(std::launch::async, submit_read_client, http_client_, &http_read_callback_); |
| 97 | started_ = true; |
| 98 | } |
| 99 | } |
| 100 | return gsl::narrow<int>(http_read_callback_.readFully((char*) buf, buflen)); |
| 101 | |
| 102 | } else { |
| 103 | return -1; |
| 104 | } |
| 105 | } |
| 106 | |
| 107 | } /* namespace io */ |
| 108 | } /* namespace minifi */ |
no test coverage detected