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}
diff --git a/api/jsep.cc b/api/jsep.cc
index 52a60f9..01f5720 100644
--- a/api/jsep.cc
+++ b/api/jsep.cc
@@ -38,4 +38,32 @@
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
diff --git a/pc/jsepsessiondescription.cc b/pc/jsepsessiondescription.cc
index b590eca..13d0743 100644
--- a/pc/jsepsessiondescription.cc
+++ b/pc/jsepsessiondescription.cc
@@ -92,37 +92,9 @@
} // 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 {