Deprecate functions returning cricket::DataContentDescription.
Due to internal code, deprecating the class itself is difficult.
It will be deleted at the same time as the functions.
Bug: webrtc:10597
Change-Id: Iac775377c459318e074818abc05f1505c9190bd3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138823
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28083}
diff --git a/pc/media_session.h b/pc/media_session.h
index 73cedc4..8ba6293 100644
--- a/pc/media_session.h
+++ b/pc/media_session.h
@@ -363,7 +363,7 @@
const SctpDataContentDescription* GetFirstSctpDataContentDescription(
const SessionDescription* sdesc);
// Returns shim. Deprecated - ask for the right protocol instead.
-const DataContentDescription* GetFirstDataContentDescription(
+RTC_DEPRECATED const DataContentDescription* GetFirstDataContentDescription(
const SessionDescription* sdesc);
// Non-const versions of the above functions.
// Useful when modifying an existing description.
@@ -384,7 +384,7 @@
SessionDescription* sdesc);
SctpDataContentDescription* GetFirstSctpDataContentDescription(
SessionDescription* sdesc);
-DataContentDescription* GetFirstDataContentDescription(
+RTC_DEPRECATED DataContentDescription* GetFirstDataContentDescription(
SessionDescription* sdesc);
// Helper functions to return crypto suites used for SDES.
diff --git a/pc/session_description.cc b/pc/session_description.cc
index cf3d147..df31163 100644
--- a/pc/session_description.cc
+++ b/pc/session_description.cc
@@ -190,13 +190,13 @@
if (description->as_rtp_data()) {
if (description->as_rtp_data() != description) {
content->set_media_description(
- description->as_data()->Unshim(&should_delete));
+ description->deprecated_as_data()->Unshim(&should_delete));
}
}
if (description->as_sctp()) {
if (description->as_sctp() != description) {
content->set_media_description(
- description->as_data()->Unshim(&should_delete));
+ description->deprecated_as_data()->Unshim(&should_delete));
}
}
if (should_delete) {
@@ -292,26 +292,34 @@
}
// DataContentDescription shim creation
-DataContentDescription* RtpDataContentDescription::as_data() {
+DataContentDescription* RtpDataContentDescription::deprecated_as_data() {
if (!shim_) {
shim_.reset(new DataContentDescription(this));
}
return shim_.get();
}
+DataContentDescription* RtpDataContentDescription::as_data() {
+ return deprecated_as_data();
+}
+
const DataContentDescription* RtpDataContentDescription::as_data() const {
return const_cast<RtpDataContentDescription*>(this)->as_data();
}
-DataContentDescription* SctpDataContentDescription::as_data() {
+DataContentDescription* SctpDataContentDescription::deprecated_as_data() {
if (!shim_) {
shim_.reset(new DataContentDescription(this));
}
return shim_.get();
}
+DataContentDescription* SctpDataContentDescription::as_data() {
+ return deprecated_as_data();
+}
+
const DataContentDescription* SctpDataContentDescription::as_data() const {
- return const_cast<SctpDataContentDescription*>(this)->as_data();
+ return const_cast<SctpDataContentDescription*>(this)->deprecated_as_data();
}
DataContentDescription::DataContentDescription() {
diff --git a/pc/session_description.h b/pc/session_description.h
index fe08e3a..eb9401f 100644
--- a/pc/session_description.h
+++ b/pc/session_description.h
@@ -79,8 +79,11 @@
// Backwards compatible shim: Return a shim object that allows
// callers to ignore the distinction between RtpDataContentDescription
// and SctpDataContentDescription objects.
- virtual DataContentDescription* as_data() { return nullptr; }
- virtual const DataContentDescription* as_data() const { return nullptr; }
+ RTC_DEPRECATED virtual DataContentDescription* as_data() { return nullptr; }
+ RTC_DEPRECATED virtual const DataContentDescription* as_data() const {
+ return nullptr;
+ }
+ virtual DataContentDescription* deprecated_as_data() { return nullptr; }
virtual RtpDataContentDescription* as_rtp_data() { return nullptr; }
virtual const RtpDataContentDescription* as_rtp_data() const {
@@ -344,8 +347,11 @@
public:
DataContentDescription();
MediaType type() const override { return MEDIA_TYPE_DATA; }
- DataContentDescription* as_data() override { return this; }
- const DataContentDescription* as_data() const override { return this; }
+ RTC_DEPRECATED DataContentDescription* as_data() override { return this; }
+ RTC_DEPRECATED const DataContentDescription* as_data() const override {
+ return this;
+ }
+ DataContentDescription* deprecated_as_data() override { return this; }
// Override all methods defined in MediaContentDescription.
bool has_codecs() const override;
@@ -453,8 +459,9 @@
RtpDataContentDescription* as_rtp_data() override { return this; }
const RtpDataContentDescription* as_rtp_data() const override { return this; }
// Shim support
- DataContentDescription* as_data() override;
- const DataContentDescription* as_data() const override;
+ RTC_DEPRECATED DataContentDescription* as_data() override;
+ RTC_DEPRECATED const DataContentDescription* as_data() const override;
+ DataContentDescription* deprecated_as_data() override;
private:
std::unique_ptr<DataContentDescription> shim_;
@@ -476,8 +483,9 @@
SctpDataContentDescription* as_sctp() override { return this; }
const SctpDataContentDescription* as_sctp() const override { return this; }
// Shim support
- DataContentDescription* as_data() override;
- const DataContentDescription* as_data() const override;
+ RTC_DEPRECATED DataContentDescription* as_data() override;
+ RTC_DEPRECATED const DataContentDescription* as_data() const override;
+ DataContentDescription* deprecated_as_data() override;
bool has_codecs() const override { return false; }
void set_protocol(const std::string& protocol) override {
diff --git a/pc/session_description_unittest.cc b/pc/session_description_unittest.cc
index 9797ed5..d9426c8 100644
--- a/pc/session_description_unittest.cc
+++ b/pc/session_description_unittest.cc
@@ -129,6 +129,9 @@
data_desc->extmap_allow_mixed_enum());
}
+// The tests for DataContentDescription will be deleted soon.
+// TODO(bugs.webrtc.org/10597): Declare this class obsolete and remove it
+
TEST(SessionDescriptionTest, DataContentDescriptionCanAddStream) {
auto description = absl::make_unique<DataContentDescription>();
// Adding a stream without setting protocol first should work.
@@ -138,7 +141,7 @@
TEST(SessionDescriptionTest, DataContentDescriptionCopyWorks) {
auto description = absl::make_unique<RtpDataContentDescription>();
- auto shim_description = description->as_data();
+ auto shim_description = description->deprecated_as_data();
auto shim_copy = shim_description->Copy();
delete shim_copy;
}
@@ -151,7 +154,7 @@
TEST(SessionDescriptionTest, DataContentDescriptionSctpConferenceMode) {
auto description = absl::make_unique<SctpDataContentDescription>();
- auto shim_description = description->as_data();
+ auto shim_description = description->deprecated_as_data();
EXPECT_FALSE(shim_description->conference_mode());
shim_description->set_conference_mode(true);
EXPECT_TRUE(shim_description->conference_mode());