blob: dd15dc01e14019d5b0efaf01dd3701384cf23aef [file] [log] [blame]
// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "osp/impl/presentation/presentation_utils.h"
#include "osp/public/network_service_manager.h"
namespace openscreen::osp {
MessageDemuxer& GetServerDemuxer() {
return NetworkServiceManager::Get()
->GetProtocolConnectionServer()
->GetMessageDemuxer();
}
MessageDemuxer& GetClientDemuxer() {
return NetworkServiceManager::Get()
->GetProtocolConnectionClient()
->GetMessageDemuxer();
}
std::unique_ptr<ProtocolConnection> CreateServerProtocolConnection(
uint64_t instance_id) {
return NetworkServiceManager::Get()
->GetProtocolConnectionServer()
->CreateProtocolConnection(instance_id);
}
std::unique_ptr<ProtocolConnection> CreateClientProtocolConnection(
uint64_t instance_id) {
return NetworkServiceManager::Get()
->GetProtocolConnectionClient()
->CreateProtocolConnection(instance_id);
}
msgs::PresentationConnectionCloseEvent_reason ConvertCloseEventReason(
Connection::CloseReason reason) {
switch (reason) {
case Connection::CloseReason::kDiscarded:
return msgs::PresentationConnectionCloseEvent_reason::
kConnectionObjectDiscarded;
case Connection::CloseReason::kError:
return msgs::PresentationConnectionCloseEvent_reason::
kUnrecoverableErrorWhileSendingOrReceivingMessage;
case Connection::CloseReason::kClosed: // fallthrough
default:
return msgs::PresentationConnectionCloseEvent_reason::kCloseMethodCalled;
}
}
msgs::PresentationTerminationSource ConvertTerminationSource(
TerminationSource source) {
switch (source) {
case TerminationSource::kController:
return msgs::PresentationTerminationSource::kController;
case TerminationSource::kReceiver:
return msgs::PresentationTerminationSource::kReceiver;
default:
return msgs::PresentationTerminationSource::kUnknown;
}
}
msgs::PresentationTerminationReason ConvertTerminationReason(
TerminationReason reason) {
switch (reason) {
case TerminationReason::kApplicationTerminated:
return msgs::PresentationTerminationReason::kApplicationRequest;
case TerminationReason::kUserTerminated:
return msgs::PresentationTerminationReason::kUserRequest;
case TerminationReason::kReceiverPresentationReplaced:
return msgs::PresentationTerminationReason::kReceiverReplacedPresentation;
case TerminationReason::kReceiverIdleTooLong:
return msgs::PresentationTerminationReason::kReceiverIdleTooLong;
case TerminationReason::kReceiverPresentationUnloaded:
return msgs::PresentationTerminationReason::kReceiverAttemptedToNavigate;
case TerminationReason::kReceiverShuttingDown:
return msgs::PresentationTerminationReason::kReceiverPoweringDown;
case TerminationReason::kReceiverError:
return msgs::PresentationTerminationReason::kReceiverError;
default:
return msgs::PresentationTerminationReason::kUnknown;
}
}
} // namespace openscreen::osp