Commit 97fab2be authored by Richard Knoll's avatar Richard Knoll Committed by Commit Bot

[Nearby] Combine common fields into ShareTargetInfo

This introduces a base class for Outgoing and IncomingShareTargetInfo
classes to hold common fields and make it easier to set them based on
incoming vs outgoing contexts.

Bug: 1085067
Change-Id: I120a291bd6d29e6d11cfbe0170bb23ba41570504
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2351990Reviewed-by: default avatarHimanshu Jaju <himanshujaju@chromium.org>
Commit-Queue: Richard Knoll <knollr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#797340}
parent a9a2cbec
......@@ -3379,6 +3379,8 @@ static_library("browser") {
"nearby_sharing/share_target.cc",
"nearby_sharing/share_target.h",
"nearby_sharing/share_target_discovered_callback.h",
"nearby_sharing/share_target_info.cc",
"nearby_sharing/share_target_info.h",
"nearby_sharing/transfer_metadata.cc",
"nearby_sharing/transfer_metadata.h",
"nearby_sharing/transfer_metadata_builder.cc",
......
......@@ -4,23 +4,12 @@
#include "chrome/browser/nearby_sharing/incoming_share_target_info.h"
#include "chrome/browser/nearby_sharing/nearby_connection.h"
IncomingShareTargetInfo::IncomingShareTargetInfo() = default;
IncomingShareTargetInfo::~IncomingShareTargetInfo() = default;
IncomingShareTargetInfo::IncomingShareTargetInfo(IncomingShareTargetInfo&&) =
default;
IncomingShareTargetInfo& IncomingShareTargetInfo::operator=(
IncomingShareTargetInfo&&) = default;
std::ostream& operator<<(std::ostream& out,
const IncomingShareTargetInfo& share_target) {
out << "IncomingShareTargetInfo<endpoint_id: "
<< (share_target.endpoint_id().has_value()
? share_target.endpoint_id().value()
: "")
<< ", has_certificate: " << (share_target.certificate().has_value())
<< ", has_connection: " << (share_target.connection() != nullptr) << ">";
return out;
}
IncomingShareTargetInfo::~IncomingShareTargetInfo() = default;
......@@ -5,65 +5,14 @@
#ifndef CHROME_BROWSER_NEARBY_SHARING_INCOMING_SHARE_TARGET_INFO_H_
#define CHROME_BROWSER_NEARBY_SHARING_INCOMING_SHARE_TARGET_INFO_H_
#include <memory>
#include <string>
#include "chrome/browser/nearby_sharing/share_target_info.h"
#include "base/optional.h"
#include "chrome/browser/nearby_sharing/certificates/nearby_share_decrypted_public_certificate.h"
#include "chrome/browser/nearby_sharing/incoming_frames_reader.h"
class NearbyConnection;
class IncomingShareTargetInfo {
class IncomingShareTargetInfo : public ShareTargetInfo {
public:
IncomingShareTargetInfo();
~IncomingShareTargetInfo();
IncomingShareTargetInfo(const IncomingShareTargetInfo&) = delete;
IncomingShareTargetInfo& operator=(const IncomingShareTargetInfo&) = delete;
IncomingShareTargetInfo(IncomingShareTargetInfo&&);
IncomingShareTargetInfo& operator=(IncomingShareTargetInfo&&);
void set_endpoint_id(std::string endpoint_id) {
endpoint_id_ = std::move(endpoint_id);
}
const base::Optional<std::string>& endpoint_id() const {
return endpoint_id_;
}
void set_certificate(NearbyShareDecryptedPublicCertificate certificate) {
certificate_ = std::move(certificate);
}
const base::Optional<NearbyShareDecryptedPublicCertificate>& certificate()
const {
return certificate_;
}
void set_connection(NearbyConnection* connection) {
connection_ = connection;
}
NearbyConnection* connection() const { return connection_; }
void set_token(std::string token) { token_ = std::move(token); }
const base::Optional<std::string>& token() const { return token_; }
IncomingFramesReader* frames_reader() { return frames_reader_.get(); }
void set_frames_reader(std::unique_ptr<IncomingFramesReader> frames_reader) {
frames_reader_ = std::move(frames_reader);
}
private:
base::Optional<std::string> endpoint_id_;
base::Optional<NearbyShareDecryptedPublicCertificate> certificate_;
NearbyConnection* connection_ = nullptr;
base::Optional<std::string> token_;
std::unique_ptr<IncomingFramesReader> frames_reader_;
~IncomingShareTargetInfo() override;
};
#endif // CHROME_BROWSER_NEARBY_SHARING_INCOMING_SHARE_TARGET_INFO_H_
......@@ -3,23 +3,13 @@
// found in the LICENSE file.
#include "chrome/browser/nearby_sharing/outgoing_share_target_info.h"
#include "chrome/browser/nearby_sharing/nearby_connection.h"
OutgoingShareTargetInfo::OutgoingShareTargetInfo() = default;
OutgoingShareTargetInfo::~OutgoingShareTargetInfo() = default;
OutgoingShareTargetInfo::OutgoingShareTargetInfo(OutgoingShareTargetInfo&&) =
default;
OutgoingShareTargetInfo& OutgoingShareTargetInfo::operator=(
OutgoingShareTargetInfo&&) = default;
std::ostream& operator<<(std::ostream& out,
const OutgoingShareTargetInfo& share_target) {
out << "OutgoingShareTargetInfo<endpoint_id: "
<< (share_target.endpoint_id().has_value()
? share_target.endpoint_id().value()
: "")
<< ", has_certificate: " << (share_target.certificate().has_value())
<< ", has_connection: " << (share_target.connection() != nullptr) << ">";
return out;
}
OutgoingShareTargetInfo::~OutgoingShareTargetInfo() = default;
......@@ -9,67 +9,47 @@
#include <vector>
#include "base/optional.h"
#include "chrome/browser/nearby_sharing/certificates/nearby_share_decrypted_public_certificate.h"
class NearbyConnection;
#include "chrome/browser/nearby_sharing/share_target_info.h"
#include "chrome/services/sharing/public/mojom/nearby_connections_types.mojom.h"
// A description of the outgoing connection to a remote device.
class OutgoingShareTargetInfo {
class OutgoingShareTargetInfo : public ShareTargetInfo {
public:
OutgoingShareTargetInfo();
~OutgoingShareTargetInfo();
OutgoingShareTargetInfo(const OutgoingShareTargetInfo&) = delete;
OutgoingShareTargetInfo& operator=(const OutgoingShareTargetInfo&) = delete;
using PayloadPtr = location::nearby::connections::mojom::PayloadPtr;
OutgoingShareTargetInfo();
OutgoingShareTargetInfo(OutgoingShareTargetInfo&&);
OutgoingShareTargetInfo& operator=(OutgoingShareTargetInfo&&);
~OutgoingShareTargetInfo() override;
void set_endpoint_id(std::string endpoint_id) {
endpoint_id_ = std::move(endpoint_id);
const base::Optional<std::string>& obfuscated_gaia_id() const {
return obfuscated_gaia_id_;
}
const base::Optional<std::string>& endpoint_id() const {
return endpoint_id_;
void set_obfuscated_gaia_id(std::string obfuscated_gaia_id) {
obfuscated_gaia_id_ = std::move(obfuscated_gaia_id);
}
void set_certificate(NearbyShareDecryptedPublicCertificate certificate) {
certificate_ = std::move(certificate);
const std::vector<PayloadPtr>& text_payloads() const {
return text_payloads_;
}
const base::Optional<NearbyShareDecryptedPublicCertificate>& certificate()
const {
return certificate_;
}
void set_connection(NearbyConnection* connection) {
connection_ = connection;
void set_text_payloads(std::vector<PayloadPtr> payloads) {
text_payloads_ = std::move(payloads);
}
NearbyConnection* connection() const { return connection_; }
void set_obfuscated_gaia_id(std::string obfuscated_gaia_id) {
obfuscated_gaia_id_ = std::move(obfuscated_gaia_id);
const std::vector<PayloadPtr>& file_payloads() const {
return file_payloads_;
}
const base::Optional<std::string>& obfuscated_gaia_id() const {
return obfuscated_gaia_id_;
void set_file_payloads(std::vector<PayloadPtr> payloads) {
file_payloads_ = std::move(payloads);
}
void set_token(std::string token) { token_ = std::move(token); }
const base::Optional<std::string>& token() const { return token_; }
void set_is_connected(bool is_connected) { is_connected_ = is_connected; }
bool is_connected() const { return is_connected_; }
private:
base::Optional<std::string> endpoint_id_;
base::Optional<NearbyShareDecryptedPublicCertificate> certificate_;
NearbyConnection* connection_ = nullptr;
base::Optional<std::string> obfuscated_gaia_id_;
base::Optional<std::string> token_;
bool is_connected_ = false;
std::vector<PayloadPtr> text_payloads_;
std::vector<PayloadPtr> file_payloads_;
};
#endif // CHROME_BROWSER_NEARBY_SHARING_OUTGOING_SHARE_TARGET_INFO_H_
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/nearby_sharing/share_target_info.h"
#include "chrome/browser/nearby_sharing/nearby_connection.h"
ShareTargetInfo::ShareTargetInfo() = default;
ShareTargetInfo::ShareTargetInfo(ShareTargetInfo&&) = default;
ShareTargetInfo& ShareTargetInfo::operator=(ShareTargetInfo&&) = default;
ShareTargetInfo::~ShareTargetInfo() = default;
// Copyright 2020 The Chromium Authors. All rights reserved.
// 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_SHARE_TARGET_INFO_H_
#define CHROME_BROWSER_NEARBY_SHARING_SHARE_TARGET_INFO_H_
#include <memory>
#include <string>
#include "base/optional.h"
#include "chrome/browser/nearby_sharing/certificates/nearby_share_decrypted_public_certificate.h"
#include "chrome/browser/nearby_sharing/incoming_frames_reader.h"
class NearbyConnection;
// Additional information about the connection to a remote device.
class ShareTargetInfo {
public:
ShareTargetInfo();
ShareTargetInfo(ShareTargetInfo&&);
ShareTargetInfo& operator=(ShareTargetInfo&&);
virtual ~ShareTargetInfo();
const base::Optional<std::string>& endpoint_id() const {
return endpoint_id_;
}
void set_endpoint_id(std::string endpoint_id) {
endpoint_id_ = std::move(endpoint_id);
}
const base::Optional<NearbyShareDecryptedPublicCertificate>& certificate()
const {
return certificate_;
}
void set_certificate(NearbyShareDecryptedPublicCertificate certificate) {
certificate_ = std::move(certificate);
}
NearbyConnection* connection() const { return connection_; }
void set_connection(NearbyConnection* connection) {
connection_ = connection;
}
const base::Optional<std::string>& token() const { return token_; }
void set_token(std::string token) { token_ = std::move(token); }
IncomingFramesReader* frames_reader() const { return frames_reader_.get(); }
void set_frames_reader(std::unique_ptr<IncomingFramesReader> frames_reader) {
frames_reader_ = std::move(frames_reader);
}
private:
base::Optional<std::string> endpoint_id_;
base::Optional<NearbyShareDecryptedPublicCertificate> certificate_;
NearbyConnection* connection_ = nullptr;
base::Optional<std::string> token_;
std::unique_ptr<IncomingFramesReader> frames_reader_;
};
#endif // CHROME_BROWSER_NEARBY_SHARING_SHARE_TARGET_INFO_H_
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment