1//===----------------------------------------------------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#include "llvm/HTTP/StreamedHTTPResponseHandler.h"
10
11namespace llvm {
12
13Error StreamedHTTPResponseHandler::handleBodyChunk(StringRef BodyChunk) {
14 if (!FileStream) {
15 unsigned Code = Client.responseCode();
16 if (Code && Code != 200)
17 return Error::success();
18 Expected<std::unique_ptr<CachedFileStream>> FileStreamOrError =
19 CreateStream();
20 if (!FileStreamOrError)
21 return FileStreamOrError.takeError();
22 FileStream = std::move(*FileStreamOrError);
23 }
24 *FileStream->OS << BodyChunk;
25 return Error::success();
26}
27
28Error StreamedHTTPResponseHandler::commit() {
29 if (FileStream)
30 return FileStream->commit();
31 return Error::success();
32}
33
34} // namespace llvm
35