chromium/ios/web/download/download_result.h

// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef IOS_WEB_DOWNLOAD_DOWNLOAD_RESULT_H_
#define IOS_WEB_DOWNLOAD_DOWNLOAD_RESULT_H_

namespace web {

class DownloadResult {
 public:
  DownloadResult();

  // Constructs a new DownloadResult object. `error_code` value of net::OK
  // indicates success while other values indicate a failure. `can_retry`
  // indicates if a download can be retried or not and depends on if a
  // WKDownload can return resumed data.
  explicit DownloadResult(int error_code, bool can_retry = true);

  ~DownloadResult();

  // Returns whether the download can be retried. Only meaningful
  // if `is_successful()` is false.
  bool can_retry() const;

  // Returns whether the download was a success.
  bool is_successful() const;

  // Returns error code in object
  int error_code() const;

 private:
  int error_code_ = 0;
  bool can_retry_ = true;
};

}  // namespace web

#endif  // IOS_WEB_DOWNLOAD_DOWNLOAD_RESULT_H_