| // Copyright 2020 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROME_BROWSER_NEARBY_SHARING_TRANSFER_METADATA_BUILDER_H_ |
| #define CHROME_BROWSER_NEARBY_SHARING_TRANSFER_METADATA_BUILDER_H_ |
| |
| #include <optional> |
| #include <string> |
| |
| #include "chrome/browser/nearby_sharing/transfer_metadata.h" |
| |
| class TransferMetadataBuilder { |
| public: |
| static TransferMetadataBuilder Clone(const TransferMetadata& metadata); |
| |
| TransferMetadataBuilder(); |
| TransferMetadataBuilder(TransferMetadataBuilder&&); |
| TransferMetadataBuilder& operator=(TransferMetadataBuilder&&); |
| ~TransferMetadataBuilder(); |
| |
| TransferMetadataBuilder& set_is_original(bool is_original); |
| |
| TransferMetadataBuilder& set_progress(double progress); |
| |
| TransferMetadataBuilder& set_status(TransferMetadata::Status status); |
| |
| TransferMetadataBuilder& set_token(std::optional<std::string> token); |
| |
| TransferMetadata build() const; |
| |
| private: |
| bool is_original_ = false; |
| double progress_ = 0; |
| TransferMetadata::Status status_ = TransferMetadata::Status::kInProgress; |
| std::optional<std::string> token_; |
| }; |
| |
| #endif // CHROME_BROWSER_NEARBY_SHARING_TRANSFER_METADATA_BUILDER_H_ |