From 93428bf8e94fd415553c79adefda13069569fb89 Mon Sep 17 00:00:00 2001 From: Mirko Bonadei Date: Thu, 11 Oct 2018 09:24:21 +0200 Subject: [PATCH] Move SdpType from/to string definition close to declaration. The definition of a function should always be compiled by the build target that contains the declaration (see [1]). This will avoid some unexpected linker errors when refactoring the codebase and changing dependencies. [1] - https://webrtc.googlesource.com/src/+/HEAD/style-guide.md#h-cc-pairs Bug: webrtc:9862 Change-Id: I58e207c93c85f8884edfb4ab451e62dfe3d4760e Reviewed-on: https://webrtc-review.googlesource.com/c/105321 Reviewed-by: Karl Wiberg Reviewed-by: Steve Anton Commit-Queue: Mirko Bonadei Cr-Commit-Position: refs/heads/master@{#25139} --- api/jsep.cc | 28 ++++++++++++++++++++++++++++ pc/jsepsessiondescription.cc | 28 ---------------------------- 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/api/jsep.cc b/api/jsep.cc index 52a60f95e3..01f5720563 100644 --- a/api/jsep.cc +++ b/api/jsep.cc @@ -38,4 +38,32 @@ void SetSessionDescriptionObserver::OnFailure(const std::string& error) { OnFailure(RTCError(RTCErrorType::INTERNAL_ERROR, std::string(error))); } +const char SessionDescriptionInterface::kOffer[] = "offer"; +const char SessionDescriptionInterface::kPrAnswer[] = "pranswer"; +const char SessionDescriptionInterface::kAnswer[] = "answer"; + +const char* SdpTypeToString(SdpType type) { + switch (type) { + case SdpType::kOffer: + return SessionDescriptionInterface::kOffer; + case SdpType::kPrAnswer: + return SessionDescriptionInterface::kPrAnswer; + case SdpType::kAnswer: + return SessionDescriptionInterface::kAnswer; + } + return ""; +} + +absl::optional SdpTypeFromString(const std::string& type_str) { + if (type_str == SessionDescriptionInterface::kOffer) { + return SdpType::kOffer; + } else if (type_str == SessionDescriptionInterface::kPrAnswer) { + return SdpType::kPrAnswer; + } else if (type_str == SessionDescriptionInterface::kAnswer) { + return SdpType::kAnswer; + } else { + return absl::nullopt; + } +} + } // namespace webrtc diff --git a/pc/jsepsessiondescription.cc b/pc/jsepsessiondescription.cc index b590eca2a9..13d0743808 100644 --- a/pc/jsepsessiondescription.cc +++ b/pc/jsepsessiondescription.cc @@ -92,37 +92,9 @@ void UpdateConnectionAddress( } // namespace -const char SessionDescriptionInterface::kOffer[] = "offer"; -const char SessionDescriptionInterface::kPrAnswer[] = "pranswer"; -const char SessionDescriptionInterface::kAnswer[] = "answer"; - const int JsepSessionDescription::kDefaultVideoCodecId = 100; const char JsepSessionDescription::kDefaultVideoCodecName[] = "VP8"; -const char* SdpTypeToString(SdpType type) { - switch (type) { - case SdpType::kOffer: - return SessionDescriptionInterface::kOffer; - case SdpType::kPrAnswer: - return SessionDescriptionInterface::kPrAnswer; - case SdpType::kAnswer: - return SessionDescriptionInterface::kAnswer; - } - return ""; -} - -absl::optional SdpTypeFromString(const std::string& type_str) { - if (type_str == SessionDescriptionInterface::kOffer) { - return SdpType::kOffer; - } else if (type_str == SessionDescriptionInterface::kPrAnswer) { - return SdpType::kPrAnswer; - } else if (type_str == SessionDescriptionInterface::kAnswer) { - return SdpType::kAnswer; - } else { - return absl::nullopt; - } -} - // TODO(steveanton): Remove this default implementation once Chromium has been // updated. SdpType SessionDescriptionInterface::GetType() const {