mirror of
https://github.com/kidfromjupiter/nearby.git
synced 2026-09-16 07:36:10 -04:00
Add usage and binding id to TransferMetadata.
PiperOrigin-RevId: 911439518
This commit is contained in:
committed by
Copybara-Service
parent
eddff719b9
commit
d026aed3e2
+17
-1
@@ -109,6 +109,16 @@ cc_library(
|
||||
],
|
||||
)
|
||||
|
||||
cc_library(
|
||||
name = "share_session_usage",
|
||||
hdrs = ["share_session_usage.h"],
|
||||
visibility = [
|
||||
"//location/nearby/cpp/sharing:__subpackages__",
|
||||
"//location/nearby/sharing/lib:__subpackages__",
|
||||
"//sharing:__subpackages__",
|
||||
],
|
||||
)
|
||||
|
||||
cc_library(
|
||||
name = "transfer_metadata",
|
||||
srcs = [
|
||||
@@ -128,6 +138,7 @@ cc_library(
|
||||
"//sharing:__subpackages__",
|
||||
],
|
||||
deps = [
|
||||
":share_session_usage",
|
||||
"@com_google_absl//absl/strings",
|
||||
"@com_google_absl//absl/strings:str_format",
|
||||
],
|
||||
@@ -229,6 +240,7 @@ cc_library(
|
||||
":incoming_frame_reader",
|
||||
":nearby_sharing_util",
|
||||
":paired_key_verification_runner",
|
||||
":share_session_usage",
|
||||
":thread_timer",
|
||||
":transfer_metadata",
|
||||
":types",
|
||||
@@ -369,6 +381,7 @@ cc_library(
|
||||
":outgoing_targets_manager",
|
||||
":paired_key_verification_runner",
|
||||
":share_session",
|
||||
":share_session_usage",
|
||||
":thread_timer",
|
||||
":transfer_metadata",
|
||||
":types",
|
||||
@@ -378,7 +391,6 @@ cc_library(
|
||||
"//internal/analytics:event_logger",
|
||||
"//internal/base",
|
||||
"//internal/base:file_path",
|
||||
"//internal/base:files",
|
||||
"//internal/flags:nearby_flags",
|
||||
"//internal/network:url",
|
||||
"//internal/platform:base",
|
||||
@@ -841,6 +853,7 @@ cc_test(
|
||||
name = "transfer_metadata_test",
|
||||
srcs = ["transfer_metadata_test.cc"],
|
||||
deps = [
|
||||
":share_session_usage",
|
||||
":transfer_metadata",
|
||||
"@com_github_protobuf_matchers//protobuf-matchers",
|
||||
"@com_google_googletest//:gtest_main",
|
||||
@@ -855,6 +868,7 @@ cc_test(
|
||||
":nearby_connection_impl",
|
||||
":paired_key_verification_runner",
|
||||
":share_session",
|
||||
":share_session_usage",
|
||||
":test_support",
|
||||
":transfer_metadata",
|
||||
":transfer_metadata_matchers",
|
||||
@@ -906,6 +920,7 @@ cc_test(
|
||||
":connection_types",
|
||||
":nearby_connection_impl",
|
||||
":share_session",
|
||||
":share_session_usage",
|
||||
":test_support",
|
||||
":transfer_metadata",
|
||||
":transfer_metadata_matchers",
|
||||
@@ -939,6 +954,7 @@ cc_test(
|
||||
":nearby_connection_impl",
|
||||
":paired_key_verification_runner",
|
||||
":share_session",
|
||||
":share_session_usage",
|
||||
":test_support",
|
||||
":transfer_metadata",
|
||||
":transfer_metadata_matchers",
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
#include "sharing/payload_tracker.h"
|
||||
#include "sharing/proto/wire_format.pb.h"
|
||||
#include "sharing/share_session.h"
|
||||
#include "sharing/share_session_usage.h"
|
||||
#include "sharing/share_target.h"
|
||||
#include "sharing/text_attachment.h"
|
||||
#include "sharing/thread_timer.h"
|
||||
@@ -69,7 +70,9 @@ IncomingShareSession::IncomingShareSession(
|
||||
transfer_update_callback)
|
||||
: ShareSession(clock, service_thread, connections_manager,
|
||||
analytics_recorder, std::move(endpoint_id), share_target),
|
||||
transfer_update_callback_(std::move(transfer_update_callback)) {}
|
||||
transfer_update_callback_(std::move(transfer_update_callback)) {
|
||||
set_session_usage(ShareSessionUsage::kSharing);
|
||||
}
|
||||
|
||||
IncomingShareSession::IncomingShareSession(IncomingShareSession&&) = default;
|
||||
|
||||
@@ -210,6 +213,7 @@ bool IncomingShareSession::ReadyForTransfer(
|
||||
|
||||
if (!self_share()) {
|
||||
TransferMetadataBuilder transfer_metadata_builder;
|
||||
transfer_metadata_builder.set_usage(session_usage());
|
||||
transfer_metadata_builder.set_status(
|
||||
TransferMetadata::Status::kAwaitingLocalConfirmation);
|
||||
transfer_metadata_builder.set_token(token());
|
||||
@@ -249,6 +253,7 @@ bool IncomingShareSession::AcceptTransfer(
|
||||
|
||||
UpdateTransferMetadata(
|
||||
TransferMetadataBuilder()
|
||||
.set_usage(session_usage())
|
||||
.set_status(TransferMetadata::Status::kAwaitingRemoteAcceptance)
|
||||
.set_token(token())
|
||||
.build());
|
||||
@@ -434,7 +439,10 @@ void IncomingShareSession::SendFailureResponse(
|
||||
WriteResponseFrame(response_status);
|
||||
DCHECK(TransferMetadata::IsFinalStatus(status))
|
||||
<< "SendFailureResponse should only be called with a final status";
|
||||
UpdateTransferMetadata(TransferMetadataBuilder().set_status(status).build());
|
||||
UpdateTransferMetadata(TransferMetadataBuilder()
|
||||
.set_usage(session_usage())
|
||||
.set_status(status)
|
||||
.build());
|
||||
}
|
||||
|
||||
std::optional<TransferMetadata>
|
||||
@@ -449,19 +457,21 @@ IncomingShareSession::ProcessPayloadTransferUpdates(
|
||||
// Cancel acceptance timer when payload transfer update is received.
|
||||
// This mean sender has begun sending payload.
|
||||
mutual_acceptance_timeout_ = nullptr;
|
||||
std::optional<TransferMetadata> metadata;
|
||||
std::optional<TransferMetadataBuilder> metadata_builder;
|
||||
// If there is a batch of updates in the queue, only return the latest
|
||||
// TransferMetadata.
|
||||
for (; !updates.empty(); updates.pop()) {
|
||||
metadata =
|
||||
metadata_builder =
|
||||
get_payload_tracker()->ProcessPayloadUpdate(std::move(updates.front()));
|
||||
if (!metadata.has_value()) {
|
||||
if (!metadata_builder.has_value()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (metadata->status() == TransferMetadata::Status::kComplete) {
|
||||
TransferMetadata metadata =
|
||||
metadata_builder->set_usage(session_usage()).build();
|
||||
if (metadata.status() == TransferMetadata::Status::kComplete) {
|
||||
if (!FinalizePayloads()) {
|
||||
return TransferMetadataBuilder()
|
||||
.set_usage(session_usage())
|
||||
.set_status(TransferMetadata::Status::kIncompletePayloads)
|
||||
.build();
|
||||
}
|
||||
@@ -474,13 +484,15 @@ IncomingShareSession::ProcessPayloadTransferUpdates(
|
||||
if (update_file_paths_in_progress) {
|
||||
UpdateFilePayloadPaths();
|
||||
} else {
|
||||
if (metadata->status() == TransferMetadata::Status::kCancelled) {
|
||||
if (metadata.status() == TransferMetadata::Status::kCancelled) {
|
||||
VLOG(1) << __func__ << ": Update file paths for cancelled transfer";
|
||||
UpdateFilePayloadPaths();
|
||||
}
|
||||
}
|
||||
}
|
||||
return metadata;
|
||||
return metadata_builder.has_value()
|
||||
? std::make_optional(metadata_builder->build())
|
||||
: std::nullopt;
|
||||
}
|
||||
|
||||
void IncomingShareSession::OnConnected(NearbyConnection* connection) {
|
||||
|
||||
@@ -43,9 +43,9 @@
|
||||
#include "sharing/internal/public/logging.h"
|
||||
#include "sharing/nearby_connection_impl.h"
|
||||
#include "sharing/nearby_connections_types.h"
|
||||
#include "sharing/paired_key_verification_runner.h"
|
||||
#include "sharing/proto/analytics/nearby_sharing_log.pb.h"
|
||||
#include "sharing/proto/wire_format.pb.h"
|
||||
#include "sharing/share_session_usage.h"
|
||||
#include "sharing/share_target.h"
|
||||
#include "sharing/text_attachment.h"
|
||||
#include "sharing/transfer_metadata.h"
|
||||
@@ -59,7 +59,6 @@ namespace {
|
||||
using ::absl::Seconds;
|
||||
using ::location::nearby::proto::sharing::EventCategory;
|
||||
using ::location::nearby::proto::sharing::EventType;
|
||||
using ::location::nearby::proto::sharing::OSType;
|
||||
using ::location::nearby::proto::sharing::ResponseToIntroduction;
|
||||
using ::nearby::analytics::HasAction;
|
||||
using ::nearby::analytics::HasCategory;
|
||||
@@ -1085,7 +1084,9 @@ TEST_F(IncomingShareSessionTest, ReadyForTransferNotSelfShare) {
|
||||
session_.OnConnected(&connection_);
|
||||
EXPECT_CALL(
|
||||
transfer_metadata_callback_,
|
||||
Call(_, HasStatus(TransferMetadata::Status::kAwaitingLocalConfirmation)));
|
||||
Call(_, AllOf(HasStatus(
|
||||
TransferMetadata::Status::kAwaitingLocalConfirmation),
|
||||
HasUsage(ShareSessionUsage::kSharing))));
|
||||
|
||||
EXPECT_THAT(
|
||||
session_.ReadyForTransfer(
|
||||
@@ -1104,7 +1105,9 @@ TEST_F(IncomingShareSessionTest, ReadyForTransferSelfShare) {
|
||||
session.OnConnected(&connection_);
|
||||
EXPECT_CALL(
|
||||
transfer_metadata_callback_,
|
||||
Call(_, HasStatus(TransferMetadata::Status::kAwaitingLocalConfirmation)))
|
||||
Call(_, AllOf(HasStatus(
|
||||
TransferMetadata::Status::kAwaitingLocalConfirmation),
|
||||
HasUsage(ShareSessionUsage::kSharing))))
|
||||
.Times(0);
|
||||
|
||||
EXPECT_THAT(
|
||||
@@ -1117,7 +1120,9 @@ TEST_F(IncomingShareSessionTest, ReadyForTransferTimeout) {
|
||||
session_.OnConnected(&connection_);
|
||||
EXPECT_CALL(
|
||||
transfer_metadata_callback_,
|
||||
Call(_, HasStatus(TransferMetadata::Status::kAwaitingLocalConfirmation)));
|
||||
Call(_, AllOf(HasStatus(
|
||||
TransferMetadata::Status::kAwaitingLocalConfirmation),
|
||||
HasUsage(ShareSessionUsage::kSharing))));
|
||||
bool accept_timeout_called = false;
|
||||
|
||||
EXPECT_THAT(session_.ReadyForTransfer(
|
||||
@@ -1195,7 +1200,9 @@ TEST_F(IncomingShareSessionTest, AcceptTransferSuccess) {
|
||||
IsFalse());
|
||||
EXPECT_CALL(
|
||||
transfer_metadata_callback_,
|
||||
Call(_, HasStatus(TransferMetadata::Status::kAwaitingRemoteAcceptance)));
|
||||
Call(_,
|
||||
AllOf(HasStatus(TransferMetadata::Status::kAwaitingRemoteAcceptance),
|
||||
HasUsage(ShareSessionUsage::kSharing))));
|
||||
EXPECT_CALL(
|
||||
mock_event_logger_,
|
||||
Log(Matcher<const SharingLog&>(AllOf(
|
||||
@@ -1274,8 +1281,10 @@ TEST_F(IncomingShareSessionTest, TryUpgradeBandwidthNeeded) {
|
||||
}
|
||||
|
||||
TEST_F(IncomingShareSessionTest, SendFailureResponseNotConnected) {
|
||||
EXPECT_CALL(transfer_metadata_callback_,
|
||||
Call(_, HasStatus(TransferMetadata::Status::kNotEnoughSpace)));
|
||||
EXPECT_CALL(
|
||||
transfer_metadata_callback_,
|
||||
Call(_, AllOf(HasStatus(TransferMetadata::Status::kNotEnoughSpace),
|
||||
HasUsage(ShareSessionUsage::kSharing))));
|
||||
|
||||
session_.SendFailureResponse(TransferMetadata::Status::kNotEnoughSpace);
|
||||
}
|
||||
@@ -1284,8 +1293,10 @@ TEST_F(IncomingShareSessionTest, SendFailureResponseConnected) {
|
||||
connections_manager_.AcceptConnection(
|
||||
/*endpoint_info=*/{}, kEndpointId, &connection_);
|
||||
session_.OnConnected(&connection_);
|
||||
EXPECT_CALL(transfer_metadata_callback_,
|
||||
Call(_, HasStatus(TransferMetadata::Status::kNotEnoughSpace)));
|
||||
EXPECT_CALL(
|
||||
transfer_metadata_callback_,
|
||||
Call(_, AllOf(HasStatus(TransferMetadata::Status::kNotEnoughSpace),
|
||||
HasUsage(ShareSessionUsage::kSharing))));
|
||||
std::queue<std::vector<uint8_t>> frames_data;
|
||||
connections_manager_.set_send_payload_callback(
|
||||
[&](std::unique_ptr<Payload> payload,
|
||||
|
||||
@@ -97,6 +97,7 @@
|
||||
#include "sharing/proto/wire_format.pb.h"
|
||||
#include "sharing/scheduling/nearby_share_scheduler_utils.h"
|
||||
#include "sharing/share_session.h"
|
||||
#include "sharing/share_session_usage.h"
|
||||
#include "sharing/share_target.h"
|
||||
#include "sharing/share_target_discovered_callback.h"
|
||||
#include "sharing/thread_timer.h"
|
||||
@@ -858,6 +859,7 @@ void NearbySharingServiceImpl::Reject(
|
||||
|
||||
session->UpdateTransferMetadata(
|
||||
TransferMetadataBuilder()
|
||||
.set_usage(session->session_usage())
|
||||
.set_status(TransferMetadata::Status::kRejected)
|
||||
.build());
|
||||
|
||||
@@ -914,6 +916,7 @@ void NearbySharingServiceImpl::DoCancel(
|
||||
// UpdateTransferMetadata.
|
||||
session->UpdateTransferMetadata(
|
||||
TransferMetadataBuilder()
|
||||
.set_usage(session->session_usage())
|
||||
.set_status(TransferMetadata::Status::kCancelled)
|
||||
.build());
|
||||
|
||||
@@ -2582,6 +2585,7 @@ void NearbySharingServiceImpl::BeginOutgoingTransfer(
|
||||
} else {
|
||||
session.UpdateTransferMetadata(
|
||||
TransferMetadataBuilder()
|
||||
.set_usage(session.session_usage())
|
||||
.set_status(TransferMetadata::Status::kAwaitingLocalConfirmation)
|
||||
.set_token(session.token())
|
||||
.build());
|
||||
@@ -2592,6 +2596,7 @@ void NearbySharingServiceImpl::BeginOutgoingPairing(
|
||||
OutgoingShareSession& session) {
|
||||
VLOG(1) << __func__ << ": Preparing to initiate pairing with "
|
||||
<< session.share_target().id;
|
||||
session.set_session_usage(ShareSessionUsage::kPairing);
|
||||
// Verify that remote really authenticated with self share certificate.
|
||||
if (!session.self_share()) {
|
||||
LOG(WARNING) << __func__ << ": Not self share, skipping pairing.";
|
||||
@@ -2663,6 +2668,8 @@ void NearbySharingServiceImpl::OnPeerSyncBindingComplete(
|
||||
sync_manager_.AddSyncBinding(binding);
|
||||
session->UpdateTransferMetadata(
|
||||
TransferMetadataBuilder()
|
||||
.set_usage(session->session_usage())
|
||||
.set_binding_id(binding_id)
|
||||
.set_status(TransferMetadata::Status::kComplete)
|
||||
.build());
|
||||
}
|
||||
@@ -2899,6 +2906,7 @@ void NearbySharingServiceImpl::OnIncomingFilesMetadataUpdated(
|
||||
int64_t share_target_id, TransferMetadata metadata, bool success) {
|
||||
if (!success) {
|
||||
metadata = TransferMetadataBuilder()
|
||||
.set_usage(metadata.usage())
|
||||
.set_status(TransferMetadata::Status::kIncompletePayloads)
|
||||
.build();
|
||||
}
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
#include "sharing/payload_tracker.h"
|
||||
#include "sharing/proto/wire_format.pb.h"
|
||||
#include "sharing/share_session.h"
|
||||
#include "sharing/share_session_usage.h"
|
||||
#include "sharing/share_target.h"
|
||||
#include "sharing/text_attachment.h"
|
||||
#include "sharing/thread_timer.h"
|
||||
@@ -185,6 +186,7 @@ bool OutgoingShareSession::InitiateSendAttachments(
|
||||
"create payloads.";
|
||||
UpdateTransferMetadata(
|
||||
TransferMetadataBuilder()
|
||||
.set_usage(session_usage())
|
||||
.set_status(TransferMetadata::Status::kMediaUnavailable)
|
||||
.build());
|
||||
}
|
||||
@@ -334,6 +336,7 @@ bool OutgoingShareSession::AcceptTransfer(
|
||||
// Wait for remote accept in response frame.
|
||||
UpdateTransferMetadata(
|
||||
TransferMetadataBuilder()
|
||||
.set_usage(session_usage())
|
||||
.set_token(token())
|
||||
.set_status(TransferMetadata::Status::kAwaitingRemoteAcceptance)
|
||||
.build());
|
||||
@@ -408,6 +411,7 @@ void OutgoingShareSession::SendAttachmentsCompleted(
|
||||
|
||||
bool OutgoingShareSession::SendIntroduction(
|
||||
std::function<void()> timeout_callback) {
|
||||
set_session_usage(ShareSessionUsage::kSharing);
|
||||
Frame frame;
|
||||
frame.set_version(Frame::V1);
|
||||
V1Frame* v1_frame = frame.mutable_v1();
|
||||
@@ -450,6 +454,7 @@ OutgoingShareSession::HandleConnectionResponse(
|
||||
case ConnectionResponseFrame::ACCEPT: {
|
||||
UpdateTransferMetadata(
|
||||
TransferMetadataBuilder()
|
||||
.set_usage(session_usage())
|
||||
.set_status(TransferMetadata::Status::kInProgress)
|
||||
.build());
|
||||
return std::nullopt;
|
||||
@@ -551,6 +556,7 @@ void OutgoingShareSession::Connect(
|
||||
// Send process initialized successfully, from now on status updated
|
||||
// will be sent out via TransferUpdates.
|
||||
UpdateTransferMetadata(TransferMetadataBuilder()
|
||||
.set_usage(session_usage())
|
||||
.set_status(TransferMetadata::Status::kConnecting)
|
||||
.build());
|
||||
connection_start_time_ = clock().Now();
|
||||
@@ -627,12 +633,15 @@ OutgoingShareSession::ProcessPayloadTransferUpdates() {
|
||||
return std::nullopt;
|
||||
}
|
||||
|
||||
std::optional<TransferMetadata> metadata;
|
||||
std::optional<TransferMetadataBuilder> metadata_builder;
|
||||
for (; !updates.empty(); updates.pop()) {
|
||||
metadata =
|
||||
metadata_builder =
|
||||
get_payload_tracker()->ProcessPayloadUpdate(std::move(updates.front()));
|
||||
}
|
||||
return metadata;
|
||||
return metadata_builder.has_value()
|
||||
? std::make_optional(
|
||||
metadata_builder->set_usage(session_usage()).build())
|
||||
: std::nullopt;
|
||||
}
|
||||
|
||||
void OutgoingShareSession::StartPeerBinding(
|
||||
@@ -650,6 +659,7 @@ void OutgoingShareSession::StartPeerBinding(
|
||||
LOG(INFO) << "Waiting for bindings response frame from " << share_target().id;
|
||||
UpdateTransferMetadata(
|
||||
TransferMetadataBuilder()
|
||||
.set_usage(session_usage())
|
||||
.set_token(token())
|
||||
.set_status(TransferMetadata::Status::kAwaitingRemoteAcceptance)
|
||||
.build());
|
||||
|
||||
@@ -49,6 +49,7 @@
|
||||
#include "sharing/proto/analytics/nearby_sharing_log.pb.h"
|
||||
#include "sharing/proto/analytics/nearby_sharing_log.proto.static_reflection.h"
|
||||
#include "sharing/proto/wire_format.pb.h"
|
||||
#include "sharing/share_session_usage.h"
|
||||
#include "sharing/share_target.h"
|
||||
#include "sharing/text_attachment.h"
|
||||
#include "sharing/transfer_metadata.h"
|
||||
@@ -923,6 +924,7 @@ TEST_F(OutgoingShareSessionTest,
|
||||
|
||||
TEST_F(OutgoingShareSessionTest, StartPeerBindingSuccess) {
|
||||
session_.set_session_id(1234);
|
||||
session_.set_session_usage(ShareSessionUsage::kPairing);
|
||||
NearbyConnectionImpl connection(device_info_);
|
||||
ConnectionSuccess(&connection);
|
||||
Frame expected_binding_request_frame =
|
||||
@@ -948,7 +950,9 @@ TEST_F(OutgoingShareSessionTest, StartPeerBindingSuccess) {
|
||||
});
|
||||
EXPECT_CALL(
|
||||
transfer_metadata_callback_,
|
||||
Call(_, HasStatus(TransferMetadata::Status::kAwaitingRemoteAcceptance)));
|
||||
Call(_,
|
||||
AllOf(HasStatus(TransferMetadata::Status::kAwaitingRemoteAcceptance),
|
||||
HasUsage(ShareSessionUsage::kPairing))));
|
||||
|
||||
BindingResponse::Status binding_response_status = BindingResponse::FAILURE;
|
||||
session_.StartPeerBinding("test_binding_id", BindingRequest::FILESYNC,
|
||||
@@ -988,6 +992,7 @@ TEST_F(OutgoingShareSessionTest, StartPeerBindingSuccess) {
|
||||
|
||||
TEST_F(OutgoingShareSessionTest, StartPeerBindingTimeout) {
|
||||
session_.set_session_id(1234);
|
||||
session_.set_session_usage(ShareSessionUsage::kPairing);
|
||||
NearbyConnectionImpl connection(device_info_);
|
||||
ConnectionSuccess(&connection);
|
||||
Frame expected_binding_request_frame =
|
||||
@@ -1013,7 +1018,9 @@ TEST_F(OutgoingShareSessionTest, StartPeerBindingTimeout) {
|
||||
});
|
||||
EXPECT_CALL(
|
||||
transfer_metadata_callback_,
|
||||
Call(_, HasStatus(TransferMetadata::Status::kAwaitingRemoteAcceptance)));
|
||||
Call(_,
|
||||
AllOf(HasStatus(TransferMetadata::Status::kAwaitingRemoteAcceptance),
|
||||
HasUsage(ShareSessionUsage::kPairing))));
|
||||
|
||||
BindingResponse::Status binding_response_status = BindingResponse::FAILURE;
|
||||
session_.StartPeerBinding("test_binding_id", BindingRequest::FILESYNC,
|
||||
@@ -1036,6 +1043,7 @@ TEST_F(OutgoingShareSessionTest, StartPeerBindingTimeout) {
|
||||
|
||||
TEST_F(OutgoingShareSessionTest, StartPeerBindingFailure) {
|
||||
session_.set_session_id(1234);
|
||||
session_.set_session_usage(ShareSessionUsage::kPairing);
|
||||
NearbyConnectionImpl connection(device_info_);
|
||||
ConnectionSuccess(&connection);
|
||||
Frame expected_binding_request_frame =
|
||||
@@ -1061,7 +1069,9 @@ TEST_F(OutgoingShareSessionTest, StartPeerBindingFailure) {
|
||||
});
|
||||
EXPECT_CALL(
|
||||
transfer_metadata_callback_,
|
||||
Call(_, HasStatus(TransferMetadata::Status::kAwaitingRemoteAcceptance)));
|
||||
Call(_,
|
||||
AllOf(HasStatus(TransferMetadata::Status::kAwaitingRemoteAcceptance),
|
||||
HasUsage(ShareSessionUsage::kPairing))));
|
||||
|
||||
BindingResponse::Status binding_response_status = BindingResponse::FAILURE;
|
||||
session_.StartPeerBinding("test_binding_id", BindingRequest::FILESYNC,
|
||||
|
||||
+10
-14
@@ -107,7 +107,7 @@ void PayloadTracker::OnStatusUpdate(
|
||||
payload_update_queue_->Queue(std::move(update));
|
||||
}
|
||||
|
||||
std::optional<TransferMetadata> PayloadTracker::ProcessPayloadUpdate(
|
||||
std::optional<TransferMetadataBuilder> PayloadTracker::ProcessPayloadUpdate(
|
||||
std::unique_ptr<PayloadTransferUpdate> update) {
|
||||
auto it = payload_state_.find(update->payload_id);
|
||||
if (it == payload_state_.end()) {
|
||||
@@ -139,34 +139,31 @@ std::optional<TransferMetadata> PayloadTracker::ProcessPayloadUpdate(
|
||||
return OnTransferUpdate(state);
|
||||
}
|
||||
|
||||
std::optional<TransferMetadata> PayloadTracker::OnTransferUpdate(
|
||||
std::optional<TransferMetadataBuilder> PayloadTracker::OnTransferUpdate(
|
||||
const State& state) {
|
||||
if (IsComplete()) {
|
||||
VLOG(1) << __func__ << ": All payloads are complete.";
|
||||
return TransferMetadataBuilder()
|
||||
return std::move(TransferMetadataBuilder()
|
||||
.set_status(TransferMetadata::Status::kComplete)
|
||||
.set_progress(100)
|
||||
.set_total_attachments_count(payload_state_.size())
|
||||
.set_transferred_attachments_count(transferred_attachments_count_)
|
||||
.build();
|
||||
.set_transferred_attachments_count(transferred_attachments_count_));
|
||||
}
|
||||
|
||||
if (IsCancelled(state)) {
|
||||
VLOG(1) << __func__ << ": Payloads cancelled.";
|
||||
return TransferMetadataBuilder()
|
||||
return std::move(TransferMetadataBuilder()
|
||||
.set_status(TransferMetadata::Status::kCancelled)
|
||||
.set_total_attachments_count(payload_state_.size())
|
||||
.set_transferred_attachments_count(transferred_attachments_count_)
|
||||
.build();
|
||||
.set_transferred_attachments_count(transferred_attachments_count_));
|
||||
}
|
||||
|
||||
if (HasFailed(state)) {
|
||||
VLOG(1) << __func__ << ": Payloads failed.";
|
||||
return TransferMetadataBuilder()
|
||||
return std::move(TransferMetadataBuilder()
|
||||
.set_status(TransferMetadata::Status::kFailed)
|
||||
.set_total_attachments_count(payload_state_.size())
|
||||
.set_transferred_attachments_count(transferred_attachments_count_)
|
||||
.build();
|
||||
.set_transferred_attachments_count(transferred_attachments_count_));
|
||||
}
|
||||
|
||||
double percent = CalculateProgressPercent(state);
|
||||
@@ -220,7 +217,7 @@ std::optional<TransferMetadata> PayloadTracker::OnTransferUpdate(
|
||||
|
||||
last_update_progress_ = current_progress;
|
||||
|
||||
return TransferMetadataBuilder()
|
||||
return std::move(TransferMetadataBuilder()
|
||||
.set_status(TransferMetadata::Status::kInProgress)
|
||||
.set_progress(percent)
|
||||
.set_transferred_bytes(current_transferred_size)
|
||||
@@ -230,8 +227,7 @@ std::optional<TransferMetadata> PayloadTracker::OnTransferUpdate(
|
||||
.set_transferred_attachments_count(transferred_attachments_count_)
|
||||
.set_in_progress_attachment_id(state.attachment_id)
|
||||
.set_in_progress_attachment_total_bytes(state.total_size)
|
||||
.set_in_progress_attachment_transferred_bytes(state.amount_transferred)
|
||||
.build();
|
||||
.set_in_progress_attachment_transferred_bytes(state.amount_transferred));
|
||||
}
|
||||
|
||||
bool PayloadTracker::IsComplete() const {
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
#include "sharing/attachment_container.h"
|
||||
#include "sharing/nearby_connections_manager.h"
|
||||
#include "sharing/nearby_connections_types.h"
|
||||
#include "sharing/transfer_metadata.h"
|
||||
#include "sharing/transfer_metadata_builder.h"
|
||||
#include "sharing/worker_queue.h"
|
||||
|
||||
namespace nearby {
|
||||
@@ -46,7 +46,7 @@ class PayloadTracker : public NearbyConnectionsManager::PayloadStatusListener {
|
||||
std::unique_ptr<PayloadUpdateQueue> payload_queue);
|
||||
~PayloadTracker() override;
|
||||
|
||||
std::optional<TransferMetadata> ProcessPayloadUpdate(
|
||||
std::optional<TransferMetadataBuilder> ProcessPayloadUpdate(
|
||||
std::unique_ptr<PayloadTransferUpdate> update);
|
||||
|
||||
// NearbyConnectionsManager::PayloadStatusListener:
|
||||
@@ -64,7 +64,7 @@ class PayloadTracker : public NearbyConnectionsManager::PayloadStatusListener {
|
||||
PayloadStatus status = PayloadStatus::kInProgress;
|
||||
};
|
||||
|
||||
std::optional<TransferMetadata> OnTransferUpdate(const State& state);
|
||||
std::optional<TransferMetadataBuilder> OnTransferUpdate(const State& state);
|
||||
|
||||
bool IsComplete() const;
|
||||
bool IsCancelled(const State& state) const;
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
#include "sharing/nearby_connections_types.h"
|
||||
#include "sharing/proto/wire_format.pb.h"
|
||||
#include "sharing/transfer_metadata.h"
|
||||
#include "sharing/transfer_metadata_builder.h"
|
||||
|
||||
namespace nearby::sharing {
|
||||
namespace {
|
||||
@@ -69,7 +70,12 @@ class PayloadTrackerTest : public ::testing::Test {
|
||||
auto transfer_update = std::make_unique<PayloadTransferUpdate>(
|
||||
/*payload_id=*/kFileId, PayloadStatus::kInProgress,
|
||||
/*total_bytes=*/kFileSize, /*bytes_transferred=*/bytes_transferred);
|
||||
return payload_tracker_->ProcessPayloadUpdate(std::move(transfer_update));
|
||||
std::optional<TransferMetadataBuilder> metadata_builder =
|
||||
payload_tracker_->ProcessPayloadUpdate(std::move(transfer_update));
|
||||
if (!metadata_builder.has_value()) {
|
||||
return std::nullopt;
|
||||
}
|
||||
return metadata_builder->build();
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
@@ -176,7 +176,10 @@ void ShareSession::Abort(TransferMetadata::Status status) {
|
||||
|
||||
// First invoke the appropriate transfer callback with the final
|
||||
// |status|.
|
||||
UpdateTransferMetadata(TransferMetadataBuilder().set_status(status).build());
|
||||
UpdateTransferMetadata(TransferMetadataBuilder()
|
||||
.set_usage(session_usage())
|
||||
.set_status(status)
|
||||
.build());
|
||||
Disconnect();
|
||||
}
|
||||
|
||||
@@ -246,7 +249,10 @@ void ShareSession::OnDisconnect() {
|
||||
OnConnectionDisconnected();
|
||||
if (disconnect_status_ != TransferMetadata::Status::kUnknown) {
|
||||
UpdateTransferMetadata(
|
||||
TransferMetadataBuilder().set_status(disconnect_status_).build());
|
||||
TransferMetadataBuilder()
|
||||
.set_usage(session_usage())
|
||||
.set_status(disconnect_status_)
|
||||
.build());
|
||||
}
|
||||
connection_ = nullptr;
|
||||
}
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
#include "sharing/paired_key_verification_runner.h"
|
||||
#include "sharing/payload_tracker.h"
|
||||
#include "sharing/proto/wire_format.pb.h"
|
||||
#include "sharing/share_session_usage.h"
|
||||
#include "sharing/share_target.h"
|
||||
#include "sharing/transfer_metadata.h"
|
||||
|
||||
@@ -96,6 +97,11 @@ class ShareSession {
|
||||
|
||||
const ShareTarget& share_target() const { return share_target_; }
|
||||
|
||||
ShareSessionUsage session_usage() const { return session_usage_; }
|
||||
void set_session_usage(ShareSessionUsage session_usage) {
|
||||
session_usage_ = session_usage;
|
||||
}
|
||||
|
||||
// Sets the status to send in the TransferMetadataUpdate on connection
|
||||
// disconnect. If |status| is kUnknown, then no TransferMetadataUpdate will be
|
||||
// sent. If |status| is set, it must be a final status.
|
||||
@@ -221,6 +227,7 @@ class ShareSession {
|
||||
absl::flat_hash_map<int64_t, int64_t> attachment_payload_map_;
|
||||
PayloadTracker::PayloadUpdateQueue* payload_updates_queue_ = nullptr;
|
||||
bool is_cancelled_ = false;
|
||||
ShareSessionUsage session_usage_ = ShareSessionUsage::kUnknown;
|
||||
};
|
||||
|
||||
} // namespace nearby::sharing
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
// Copyright 2026 Google LLC
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// https://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#ifndef THIRD_PARTY_NEARBY_SHARING_SHARE_SESSION_USAGE_H_
|
||||
#define THIRD_PARTY_NEARBY_SHARING_SHARE_SESSION_USAGE_H_
|
||||
|
||||
#include <string>
|
||||
|
||||
namespace nearby::sharing {
|
||||
|
||||
enum class ShareSessionUsage {
|
||||
kUnknown,
|
||||
kSharing, // Connection is used for quick share.
|
||||
kPairing, // Connection is used for setting up a binding.
|
||||
kFileSync, // Connection is used for file sync.
|
||||
};
|
||||
|
||||
inline std::string ShareSessionUsageToString(
|
||||
ShareSessionUsage transfer_usage) {
|
||||
switch (transfer_usage) {
|
||||
case ShareSessionUsage::kSharing:
|
||||
return "Sharing";
|
||||
case ShareSessionUsage::kPairing:
|
||||
return "Pairing";
|
||||
case ShareSessionUsage::kFileSync:
|
||||
return "FileSync";
|
||||
case ShareSessionUsage::kUnknown:
|
||||
return "Unknown";
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace nearby::sharing
|
||||
|
||||
#endif // THIRD_PARTY_NEARBY_SHARING_SHARE_SESSION_USAGE_H_
|
||||
@@ -24,9 +24,10 @@
|
||||
#include "absl/strings/str_cat.h"
|
||||
#include "absl/strings/str_format.h"
|
||||
#include "absl/strings/str_join.h"
|
||||
#include "absl/strings/string_view.h"
|
||||
#include "sharing/share_session_usage.h"
|
||||
|
||||
namespace nearby {
|
||||
namespace sharing {
|
||||
namespace nearby::sharing {
|
||||
|
||||
// static
|
||||
bool TransferMetadata::IsFinalStatus(Status status) {
|
||||
@@ -90,15 +91,17 @@ std::string TransferMetadata::StatusToString(Status status) {
|
||||
// LINT.ThenChange(//depot/google3/location/nearby/cpp/sharing/clients/dart/platform/lib/types/transfer_status.dart)
|
||||
|
||||
TransferMetadata::TransferMetadata(
|
||||
Status status, float progress, std::optional<std::string> token,
|
||||
bool is_original, bool is_final_status, bool is_self_share,
|
||||
uint64_t transferred_bytes, uint64_t transfer_speed,
|
||||
ShareSessionUsage usage, Status status, float progress,
|
||||
std::optional<std::string> token, bool is_original, bool is_final_status,
|
||||
bool is_self_share, uint64_t transferred_bytes, uint64_t transfer_speed,
|
||||
uint64_t estimated_time_remaining, int total_attachments_count,
|
||||
int transferred_attachments_count,
|
||||
std::optional<int64_t> in_progress_attachment_id,
|
||||
std::optional<uint64_t> in_progress_attachment_transferred_bytes,
|
||||
std::optional<uint64_t> in_progress_attachment_total_bytes)
|
||||
: status_(status),
|
||||
std::optional<uint64_t> in_progress_attachment_total_bytes,
|
||||
absl::string_view binding_id)
|
||||
: usage_(usage),
|
||||
status_(status),
|
||||
progress_(progress),
|
||||
token_(std::move(token)),
|
||||
is_original_(is_original),
|
||||
@@ -112,7 +115,8 @@ TransferMetadata::TransferMetadata(
|
||||
in_progress_attachment_id_(in_progress_attachment_id),
|
||||
in_progress_attachment_transferred_bytes_(
|
||||
in_progress_attachment_transferred_bytes),
|
||||
in_progress_attachment_total_bytes_(in_progress_attachment_total_bytes) {}
|
||||
in_progress_attachment_total_bytes_(in_progress_attachment_total_bytes),
|
||||
binding_id_(binding_id) {}
|
||||
|
||||
TransferMetadata::~TransferMetadata() = default;
|
||||
|
||||
@@ -123,22 +127,26 @@ TransferMetadata& TransferMetadata::operator=(const TransferMetadata&) =
|
||||
|
||||
std::string TransferMetadata::ToString() const {
|
||||
std::vector<std::string> fmt;
|
||||
|
||||
fmt.push_back(
|
||||
absl::StrFormat("usage: %s", ShareSessionUsageToString(usage_)));
|
||||
fmt.push_back(absl::StrFormat("status: %s", StatusToString(status_)));
|
||||
fmt.push_back(absl::StrFormat("progress: %.2f", progress_));
|
||||
if (token_) {
|
||||
fmt.push_back(absl::StrFormat("token: %s", *token_));
|
||||
}
|
||||
fmt.push_back(absl::StrFormat("is_original: %d", is_original_));
|
||||
fmt.push_back(absl::StrFormat("is_final_status: %d", is_final_status_));
|
||||
fmt.push_back(absl::StrFormat("is_self_share: %d", is_self_share_));
|
||||
fmt.push_back(absl::StrFormat("transferred_bytes: %d", transferred_bytes_));
|
||||
fmt.push_back(absl::StrFormat("transfer_speed: %d", transfer_speed_));
|
||||
fmt.push_back(absl::StrFormat("estimated_time_remaining: %d",
|
||||
estimated_time_remaining_));
|
||||
if (usage_ != ShareSessionUsage::kPairing) {
|
||||
fmt.push_back(absl::StrFormat("progress: %.2f", progress_));
|
||||
if (token_) {
|
||||
fmt.push_back(absl::StrFormat("token: %s", *token_));
|
||||
}
|
||||
fmt.push_back(absl::StrFormat("is_original: %d", is_original_));
|
||||
fmt.push_back(absl::StrFormat("transferred_bytes: %d", transferred_bytes_));
|
||||
fmt.push_back(absl::StrFormat("transfer_speed: %d", transfer_speed_));
|
||||
fmt.push_back(absl::StrFormat("estimated_time_remaining: %d",
|
||||
estimated_time_remaining_));
|
||||
} else {
|
||||
fmt.push_back(absl::StrFormat("binding_id: %s", binding_id_));
|
||||
}
|
||||
|
||||
return absl::StrCat("TransferMetadata<", absl::StrJoin(fmt, ", "), ">");
|
||||
}
|
||||
|
||||
} // namespace sharing
|
||||
} // namespace nearby
|
||||
} // namespace nearby::sharing
|
||||
|
||||
@@ -19,6 +19,10 @@
|
||||
|
||||
#include <optional>
|
||||
#include <string>
|
||||
#include <utility>
|
||||
|
||||
#include "absl/strings/string_view.h"
|
||||
#include "sharing/share_session_usage.h"
|
||||
|
||||
namespace nearby {
|
||||
namespace sharing {
|
||||
@@ -50,23 +54,31 @@ class TransferMetadata {
|
||||
// LINT.ThenChange(//depot/google3/location/nearby/cpp/sharing/clients/dart/platform/lib/types/transfer_status.dart)
|
||||
|
||||
static bool IsFinalStatus(Status status);
|
||||
static std::string StatusToString(TransferMetadata::Status status);
|
||||
static std::string StatusToString(Status status);
|
||||
|
||||
TransferMetadata(
|
||||
Status status, float progress, std::optional<std::string> token,
|
||||
bool is_original, bool is_final_status, bool is_self_share,
|
||||
uint64_t transferred_bytes, uint64_t transfer_speed,
|
||||
ShareSessionUsage usage, Status status, float progress,
|
||||
std::optional<std::string> token, bool is_original, bool is_final_status,
|
||||
bool is_self_share, uint64_t transferred_bytes, uint64_t transfer_speed,
|
||||
uint64_t estimated_time_remaining, int total_attachments_count,
|
||||
int transferred_attachments_count,
|
||||
std::optional<int64_t> in_progress_attachment_id,
|
||||
std::optional<uint64_t> in_progress_attachment_transferred_bytes,
|
||||
std::optional<uint64_t> in_progress_attachment_total_bytes);
|
||||
std::optional<uint64_t> in_progress_attachment_total_bytes,
|
||||
absl::string_view binding_id
|
||||
);
|
||||
~TransferMetadata();
|
||||
TransferMetadata(const TransferMetadata&);
|
||||
TransferMetadata& operator=(const TransferMetadata&);
|
||||
|
||||
ShareSessionUsage usage() const { return usage_; }
|
||||
Status status() const { return status_; }
|
||||
|
||||
std::string binding_id() const { return binding_id_; }
|
||||
void set_binding_id(std::string binding_id) {
|
||||
binding_id_ = std::move(binding_id);
|
||||
}
|
||||
|
||||
// Returns transfer progress as percentage.
|
||||
float progress() const { return progress_; }
|
||||
|
||||
@@ -118,6 +130,7 @@ class TransferMetadata {
|
||||
}
|
||||
|
||||
private:
|
||||
ShareSessionUsage usage_;
|
||||
Status status_;
|
||||
float progress_;
|
||||
std::optional<std::string> token_;
|
||||
@@ -132,6 +145,9 @@ class TransferMetadata {
|
||||
std::optional<int64_t> in_progress_attachment_id_;
|
||||
std::optional<uint64_t> in_progress_attachment_transferred_bytes_;
|
||||
std::optional<uint64_t> in_progress_attachment_total_bytes_;
|
||||
// If usage_ is kPairing and status_ is kComplete, this will be set to the
|
||||
// binding id. Otherwise, this will be empty.
|
||||
std::string binding_id_;
|
||||
};
|
||||
|
||||
} // namespace sharing
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
#include <string>
|
||||
#include <utility>
|
||||
|
||||
#include "absl/strings/string_view.h"
|
||||
#include "sharing/share_session_usage.h"
|
||||
#include "sharing/transfer_metadata.h"
|
||||
|
||||
namespace nearby {
|
||||
@@ -27,6 +29,7 @@ namespace sharing {
|
||||
TransferMetadataBuilder TransferMetadataBuilder::Clone(
|
||||
const TransferMetadata& metadata) {
|
||||
TransferMetadataBuilder builder;
|
||||
builder.usage_ = metadata.usage();
|
||||
builder.is_original_ = metadata.is_original();
|
||||
builder.progress_ = metadata.progress();
|
||||
builder.status_ = metadata.status();
|
||||
@@ -54,6 +57,18 @@ TransferMetadataBuilder& TransferMetadataBuilder::operator=(
|
||||
|
||||
TransferMetadataBuilder::~TransferMetadataBuilder() = default;
|
||||
|
||||
TransferMetadataBuilder& TransferMetadataBuilder::set_usage(
|
||||
ShareSessionUsage usage) {
|
||||
usage_ = usage;
|
||||
return *this;
|
||||
}
|
||||
|
||||
TransferMetadataBuilder& TransferMetadataBuilder::set_binding_id(
|
||||
absl::string_view binding_id) {
|
||||
binding_id_ = binding_id;
|
||||
return *this;
|
||||
}
|
||||
|
||||
TransferMetadataBuilder& TransferMetadataBuilder::set_is_original(
|
||||
bool is_original) {
|
||||
is_original_ = is_original;
|
||||
@@ -138,12 +153,12 @@ TransferMetadataBuilder::set_in_progress_attachment_total_bytes(
|
||||
|
||||
TransferMetadata TransferMetadataBuilder::build() const {
|
||||
return TransferMetadata(
|
||||
status_, progress_, token_, is_original_,
|
||||
usage_, status_, progress_, token_, is_original_,
|
||||
TransferMetadata::IsFinalStatus(status_), is_self_share_,
|
||||
transferred_bytes_, transfer_speed_, estimated_time_remaining_,
|
||||
total_attachments_count_, transferred_attachments_count_,
|
||||
in_progress_attachment_id_, in_progress_attachment_transferred_bytes_,
|
||||
in_progress_attachment_total_bytes_);
|
||||
in_progress_attachment_total_bytes_, binding_id_);
|
||||
}
|
||||
|
||||
} // namespace sharing
|
||||
|
||||
@@ -20,6 +20,8 @@
|
||||
#include <optional>
|
||||
#include <string>
|
||||
|
||||
#include "absl/strings/string_view.h"
|
||||
#include "sharing/share_session_usage.h"
|
||||
#include "sharing/transfer_metadata.h"
|
||||
|
||||
namespace nearby {
|
||||
@@ -34,6 +36,10 @@ class TransferMetadataBuilder {
|
||||
TransferMetadataBuilder& operator=(TransferMetadataBuilder&&);
|
||||
~TransferMetadataBuilder();
|
||||
|
||||
TransferMetadataBuilder& set_usage(ShareSessionUsage usage);
|
||||
|
||||
TransferMetadataBuilder& set_binding_id(absl::string_view binding_id);
|
||||
|
||||
TransferMetadataBuilder& set_is_original(bool is_original);
|
||||
|
||||
TransferMetadataBuilder& set_progress(double progress);
|
||||
@@ -69,6 +75,7 @@ class TransferMetadataBuilder {
|
||||
TransferMetadata build() const;
|
||||
|
||||
private:
|
||||
ShareSessionUsage usage_ = ShareSessionUsage::kUnknown;
|
||||
bool is_original_ = false;
|
||||
double progress_ = 0;
|
||||
TransferMetadata::Status status_ = TransferMetadata::Status::kInProgress;
|
||||
@@ -83,6 +90,7 @@ class TransferMetadataBuilder {
|
||||
std::optional<uint64_t> in_progress_attachment_transferred_bytes_ =
|
||||
std::nullopt;
|
||||
std::optional<uint64_t> in_progress_attachment_total_bytes_ = std::nullopt;
|
||||
std::string binding_id_;
|
||||
};
|
||||
|
||||
} // namespace sharing
|
||||
|
||||
@@ -23,6 +23,11 @@ MATCHER_P(HasStatus, status, "has status") {
|
||||
return arg.status() == status;
|
||||
}
|
||||
|
||||
MATCHER_P(HasUsage, usage, "has usage") {
|
||||
return arg.usage() == usage;
|
||||
}
|
||||
|
||||
|
||||
MATCHER(IsFinalStatus, "is final") {
|
||||
return arg.is_final_status();
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#include <vector>
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
#include "sharing/share_session_usage.h"
|
||||
|
||||
namespace nearby {
|
||||
namespace sharing {
|
||||
@@ -34,6 +35,7 @@ std::vector<TransferMetadataToStringTestData> GetTestData() {
|
||||
kTransferMetadataToStringTestData =
|
||||
new std::vector<TransferMetadataToStringTestData>({
|
||||
{TransferMetadata(
|
||||
ShareSessionUsage::kSharing,
|
||||
TransferMetadata::Status::kConnecting,
|
||||
/*progress=*/12.321f, /*token=*/std::nullopt,
|
||||
/*is_original=*/true, /*is_final_status=*/false,
|
||||
@@ -45,12 +47,14 @@ std::vector<TransferMetadataToStringTestData> GetTestData() {
|
||||
/*transferred_attachments_count=*/0,
|
||||
/*in_progress_attachment_id=*/std::nullopt,
|
||||
/*in_progress_attachment_transferred_bytes=*/std::nullopt,
|
||||
/*in_progress_attachment_total_bytes=*/std::nullopt),
|
||||
"TransferMetadata<status: kConnecting, progress: 12.32, "
|
||||
"is_original: 1, is_final_status: 0, is_self_share: 0, "
|
||||
"transferred_bytes: 123456789, transfer_speed: 300000, "
|
||||
"estimated_time_remaining: 123456>"},
|
||||
/*in_progress_attachment_total_bytes=*/std::nullopt,
|
||||
/*binding_id=*/""),
|
||||
"TransferMetadata<usage: Sharing, status: kConnecting, "
|
||||
"is_final_status: 0, is_self_share: 0, progress: 12.32, "
|
||||
"is_original: 1, transferred_bytes: 123456789, "
|
||||
"transfer_speed: 300000, estimated_time_remaining: 123456>"},
|
||||
{TransferMetadata(
|
||||
ShareSessionUsage::kSharing,
|
||||
TransferMetadata::Status::kCancelled,
|
||||
/*progress=*/77.795f,
|
||||
std::optional<std::string>{"test_token"},
|
||||
@@ -62,11 +66,51 @@ std::vector<TransferMetadataToStringTestData> GetTestData() {
|
||||
/*transferred_attachments_count=*/0,
|
||||
/*in_progress_attachment_id=*/std::nullopt,
|
||||
/*in_progress_attachment_transferred_bytes=*/std::nullopt,
|
||||
/*in_progress_attachment_total_bytes=*/std::nullopt),
|
||||
"TransferMetadata<status: kCancelled, progress: 77.79, token: "
|
||||
"test_token, is_original: 0, is_final_status: 1, is_self_share: "
|
||||
"1, transferred_bytes: 123456789, transfer_speed: 0, "
|
||||
/*in_progress_attachment_total_bytes=*/std::nullopt,
|
||||
/*binding_id=*/""),
|
||||
"TransferMetadata<usage: Sharing, status: kCancelled, "
|
||||
"is_final_status: 1, is_self_share: 1, progress: 77.79, "
|
||||
"token: test_token, is_original: 0, "
|
||||
"transferred_bytes: 123456789, transfer_speed: 0, "
|
||||
"estimated_time_remaining: 123456789>"},
|
||||
{TransferMetadata(
|
||||
ShareSessionUsage::kFileSync,
|
||||
TransferMetadata::Status::kCancelled,
|
||||
/*progress=*/77.795f,
|
||||
std::optional<std::string>{"test_token"},
|
||||
/*is_original=*/false,
|
||||
/*is_final_status=*/true, /*is_self_share=*/true,
|
||||
/*transferred_bytes=*/123456789, /*transfer_speed=*/0,
|
||||
/*estimated_time_remaining=*/123456789,
|
||||
/*total_attachments_count=*/1,
|
||||
/*transferred_attachments_count=*/0,
|
||||
/*in_progress_attachment_id=*/std::nullopt,
|
||||
/*in_progress_attachment_transferred_bytes=*/std::nullopt,
|
||||
/*in_progress_attachment_total_bytes=*/std::nullopt,
|
||||
/*binding_id=*/""),
|
||||
"TransferMetadata<usage: FileSync, status: kCancelled, "
|
||||
"is_final_status: 1, is_self_share: 1, progress: 77.79, "
|
||||
"token: test_token, is_original: 0, "
|
||||
"transferred_bytes: 123456789, transfer_speed: 0, "
|
||||
"estimated_time_remaining: 123456789>"},
|
||||
{TransferMetadata(
|
||||
ShareSessionUsage::kPairing,
|
||||
TransferMetadata::Status::kComplete,
|
||||
/*progress=*/0.0f,
|
||||
std::optional<std::string>{"test_token"},
|
||||
/*is_original=*/false,
|
||||
/*is_final_status=*/true, /*is_self_share=*/true,
|
||||
/*transferred_bytes=*/0, /*transfer_speed=*/0,
|
||||
/*estimated_time_remaining=*/0,
|
||||
/*total_attachments_count=*/0,
|
||||
/*transferred_attachments_count=*/0,
|
||||
/*in_progress_attachment_id=*/std::nullopt,
|
||||
/*in_progress_attachment_transferred_bytes=*/std::nullopt,
|
||||
/*in_progress_attachment_total_bytes=*/std::nullopt,
|
||||
/*binding_id=*/"test_binding_id"),
|
||||
"TransferMetadata<usage: Pairing, status: kComplete, "
|
||||
"is_final_status: 1, is_self_share: 1, "
|
||||
"binding_id: test_binding_id>"},
|
||||
});
|
||||
|
||||
return *kTransferMetadataToStringTestData;
|
||||
@@ -80,7 +124,7 @@ TEST_P(TransferMetadataToStringTest, ToStringResultMatches) {
|
||||
GetParam().transfer_metadata.ToString());
|
||||
}
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(TransferMetadataToStringTest,
|
||||
INSTANTIATE_TEST_SUITE_P(TransferMetadataToStringTest,
|
||||
TransferMetadataToStringTest,
|
||||
testing::ValuesIn(GetTestData()));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user