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 <kwiberg@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25139}
This commit is contained in:
Mirko Bonadei 2018-10-11 09:24:21 +02:00 committed by Commit Bot
parent 55d1af1475
commit 93428bf8e9
2 changed files with 28 additions and 28 deletions

View File

@ -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<SdpType> 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

View File

@ -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<SdpType> 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 {