Change to RtcEvent::Copy

Until this CL, RtcEvent::Copy() was a virtual function returning
a std::unique_ptr<RtcEvent>, which was used only in unit tests.
Whenever it was used, the exact sub-class was known, so returning
as a std::unique_ptr<RtcEvent> lost information, but the
additional flexibility of calling Copy on an unknown RtcEvent
was never used. This CL changes the function to a non-virtual one.

Bug: webrtc:8111
Change-Id: I30dbea5f4ec84c41282550aa77a855bfae9ffbd1
Reviewed-on: https://webrtc-review.googlesource.com/c/109140
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25487}
This commit is contained in:
Elad Alon 2018-11-02 14:56:12 +01:00 committed by Commit Bot
parent 2365936b87
commit e40186332e
37 changed files with 83 additions and 55 deletions

View File

@ -57,8 +57,6 @@ class RtcEvent {
virtual bool IsConfigEvent() const = 0;
virtual std::unique_ptr<RtcEvent> Copy() const = 0;
const int64_t timestamp_us_;
protected:

View File

@ -28,8 +28,8 @@ bool RtcEventAlrState::IsConfigEvent() const {
return false;
}
std::unique_ptr<RtcEvent> RtcEventAlrState::Copy() const {
return absl::WrapUnique<RtcEvent>(new RtcEventAlrState(*this));
std::unique_ptr<RtcEventAlrState> RtcEventAlrState::Copy() const {
return absl::WrapUnique<RtcEventAlrState>(new RtcEventAlrState(*this));
}
} // namespace webrtc

View File

@ -26,7 +26,7 @@ class RtcEventAlrState final : public RtcEvent {
bool IsConfigEvent() const override;
std::unique_ptr<RtcEvent> Copy() const override;
std::unique_ptr<RtcEventAlrState> Copy() const;
const bool in_alr_;

View File

@ -36,7 +36,8 @@ bool RtcEventAudioNetworkAdaptation::IsConfigEvent() const {
return false;
}
std::unique_ptr<RtcEvent> RtcEventAudioNetworkAdaptation::Copy() const {
std::unique_ptr<RtcEventAudioNetworkAdaptation>
RtcEventAudioNetworkAdaptation::Copy() const {
return absl::WrapUnique(new RtcEventAudioNetworkAdaptation(*this));
}

View File

@ -29,7 +29,7 @@ class RtcEventAudioNetworkAdaptation final : public RtcEvent {
bool IsConfigEvent() const override;
std::unique_ptr<RtcEvent> Copy() const override;
std::unique_ptr<RtcEventAudioNetworkAdaptation> Copy() const;
const std::unique_ptr<const AudioEncoderRuntimeConfig> config_;

View File

@ -27,8 +27,9 @@ bool RtcEventAudioPlayout::IsConfigEvent() const {
return false;
}
std::unique_ptr<RtcEvent> RtcEventAudioPlayout::Copy() const {
return absl::WrapUnique<RtcEvent>(new RtcEventAudioPlayout(*this));
std::unique_ptr<RtcEventAudioPlayout> RtcEventAudioPlayout::Copy() const {
return absl::WrapUnique<RtcEventAudioPlayout>(
new RtcEventAudioPlayout(*this));
}
} // namespace webrtc

View File

@ -27,7 +27,7 @@ class RtcEventAudioPlayout final : public RtcEvent {
bool IsConfigEvent() const override;
std::unique_ptr<RtcEvent> Copy() const override;
std::unique_ptr<RtcEventAudioPlayout> Copy() const;
const uint32_t ssrc_;

View File

@ -36,9 +36,10 @@ bool RtcEventAudioReceiveStreamConfig::IsConfigEvent() const {
return true;
}
std::unique_ptr<RtcEvent> RtcEventAudioReceiveStreamConfig::Copy() const {
std::unique_ptr<RtcEventAudioReceiveStreamConfig>
RtcEventAudioReceiveStreamConfig::Copy() const {
auto config_copy = absl::make_unique<rtclog::StreamConfig>(*config_);
return absl::WrapUnique<RtcEvent>(
return absl::WrapUnique<RtcEventAudioReceiveStreamConfig>(
new RtcEventAudioReceiveStreamConfig(*this));
}

View File

@ -31,7 +31,7 @@ class RtcEventAudioReceiveStreamConfig final : public RtcEvent {
bool IsConfigEvent() const override;
std::unique_ptr<RtcEvent> Copy() const override;
std::unique_ptr<RtcEventAudioReceiveStreamConfig> Copy() const;
const std::unique_ptr<const rtclog::StreamConfig> config_;

View File

@ -36,9 +36,11 @@ bool RtcEventAudioSendStreamConfig::IsConfigEvent() const {
return true;
}
std::unique_ptr<RtcEvent> RtcEventAudioSendStreamConfig::Copy() const {
std::unique_ptr<RtcEventAudioSendStreamConfig>
RtcEventAudioSendStreamConfig::Copy() const {
auto config_copy = absl::make_unique<rtclog::StreamConfig>(*config_);
return absl::WrapUnique<RtcEvent>(new RtcEventAudioSendStreamConfig(*this));
return absl::WrapUnique<RtcEventAudioSendStreamConfig>(
new RtcEventAudioSendStreamConfig(*this));
}
} // namespace webrtc

View File

@ -31,7 +31,7 @@ class RtcEventAudioSendStreamConfig final : public RtcEvent {
bool IsConfigEvent() const override;
std::unique_ptr<RtcEvent> Copy() const override;
std::unique_ptr<RtcEventAudioSendStreamConfig> Copy() const;
const std::unique_ptr<const rtclog::StreamConfig> config_;

View File

@ -36,8 +36,10 @@ bool RtcEventBweUpdateDelayBased::IsConfigEvent() const {
return false;
}
std::unique_ptr<RtcEvent> RtcEventBweUpdateDelayBased::Copy() const {
return absl::WrapUnique<RtcEvent>(new RtcEventBweUpdateDelayBased(*this));
std::unique_ptr<RtcEventBweUpdateDelayBased> RtcEventBweUpdateDelayBased::Copy()
const {
return absl::WrapUnique<RtcEventBweUpdateDelayBased>(
new RtcEventBweUpdateDelayBased(*this));
}
} // namespace webrtc

View File

@ -30,7 +30,7 @@ class RtcEventBweUpdateDelayBased final : public RtcEvent {
bool IsConfigEvent() const override;
std::unique_ptr<RtcEvent> Copy() const override;
std::unique_ptr<RtcEventBweUpdateDelayBased> Copy() const;
const int32_t bitrate_bps_;
const BandwidthUsage detector_state_;

View File

@ -38,8 +38,10 @@ bool RtcEventBweUpdateLossBased::IsConfigEvent() const {
return false;
}
std::unique_ptr<RtcEvent> RtcEventBweUpdateLossBased::Copy() const {
return absl::WrapUnique<RtcEvent>(new RtcEventBweUpdateLossBased(*this));
std::unique_ptr<RtcEventBweUpdateLossBased> RtcEventBweUpdateLossBased::Copy()
const {
return absl::WrapUnique<RtcEventBweUpdateLossBased>(
new RtcEventBweUpdateLossBased(*this));
}
} // namespace webrtc

View File

@ -29,7 +29,7 @@ class RtcEventBweUpdateLossBased final : public RtcEvent {
bool IsConfigEvent() const override;
std::unique_ptr<RtcEvent> Copy() const override;
std::unique_ptr<RtcEventBweUpdateLossBased> Copy() const;
const int32_t bitrate_bps_;
const uint8_t fraction_loss_;

View File

@ -35,8 +35,10 @@ bool RtcEventIceCandidatePair::IsConfigEvent() const {
return false;
}
std::unique_ptr<RtcEvent> RtcEventIceCandidatePair::Copy() const {
return absl::WrapUnique<RtcEvent>(new RtcEventIceCandidatePair(*this));
std::unique_ptr<RtcEventIceCandidatePair> RtcEventIceCandidatePair::Copy()
const {
return absl::WrapUnique<RtcEventIceCandidatePair>(
new RtcEventIceCandidatePair(*this));
}
} // namespace webrtc

View File

@ -36,7 +36,7 @@ class RtcEventIceCandidatePair final : public RtcEvent {
bool IsConfigEvent() const override;
std::unique_ptr<RtcEvent> Copy() const override;
std::unique_ptr<RtcEventIceCandidatePair> Copy() const;
const IceCandidatePairEventType type_;
const uint32_t candidate_pair_id_;

View File

@ -64,8 +64,10 @@ bool RtcEventIceCandidatePairConfig::IsConfigEvent() const {
return false;
}
std::unique_ptr<RtcEvent> RtcEventIceCandidatePairConfig::Copy() const {
return absl::WrapUnique<RtcEvent>(new RtcEventIceCandidatePairConfig(*this));
std::unique_ptr<RtcEventIceCandidatePairConfig>
RtcEventIceCandidatePairConfig::Copy() const {
return absl::WrapUnique<RtcEventIceCandidatePairConfig>(
new RtcEventIceCandidatePairConfig(*this));
}
} // namespace webrtc

View File

@ -92,7 +92,7 @@ class RtcEventIceCandidatePairConfig final : public RtcEvent {
bool IsConfigEvent() const override;
std::unique_ptr<RtcEvent> Copy() const override;
std::unique_ptr<RtcEventIceCandidatePairConfig> Copy() const;
const IceCandidatePairConfigType type_;
const uint32_t candidate_pair_id_;

View File

@ -39,8 +39,10 @@ bool RtcEventProbeClusterCreated::IsConfigEvent() const {
return false;
}
std::unique_ptr<RtcEvent> RtcEventProbeClusterCreated::Copy() const {
return absl::WrapUnique<RtcEvent>(new RtcEventProbeClusterCreated(*this));
std::unique_ptr<RtcEventProbeClusterCreated> RtcEventProbeClusterCreated::Copy()
const {
return absl::WrapUnique<RtcEventProbeClusterCreated>(
new RtcEventProbeClusterCreated(*this));
}
} // namespace webrtc

View File

@ -30,7 +30,7 @@ class RtcEventProbeClusterCreated final : public RtcEvent {
bool IsConfigEvent() const override;
std::unique_ptr<RtcEvent> Copy() const override;
std::unique_ptr<RtcEventProbeClusterCreated> Copy() const;
const int32_t id_;
const int32_t bitrate_bps_;

View File

@ -33,8 +33,10 @@ bool RtcEventProbeResultFailure::IsConfigEvent() const {
return false;
}
std::unique_ptr<RtcEvent> RtcEventProbeResultFailure::Copy() const {
return absl::WrapUnique<RtcEvent>(new RtcEventProbeResultFailure(*this));
std::unique_ptr<RtcEventProbeResultFailure> RtcEventProbeResultFailure::Copy()
const {
return absl::WrapUnique<RtcEventProbeResultFailure>(
new RtcEventProbeResultFailure(*this));
}
} // namespace webrtc

View File

@ -34,7 +34,7 @@ class RtcEventProbeResultFailure final : public RtcEvent {
bool IsConfigEvent() const override;
std::unique_ptr<RtcEvent> Copy() const override;
std::unique_ptr<RtcEventProbeResultFailure> Copy() const;
const int32_t id_;
const ProbeFailureReason failure_reason_;

View File

@ -32,8 +32,10 @@ bool RtcEventProbeResultSuccess::IsConfigEvent() const {
return false;
}
std::unique_ptr<RtcEvent> RtcEventProbeResultSuccess::Copy() const {
return absl::WrapUnique<RtcEvent>(new RtcEventProbeResultSuccess(*this));
std::unique_ptr<RtcEventProbeResultSuccess> RtcEventProbeResultSuccess::Copy()
const {
return absl::WrapUnique<RtcEventProbeResultSuccess>(
new RtcEventProbeResultSuccess(*this));
}
} // namespace webrtc

View File

@ -27,7 +27,7 @@ class RtcEventProbeResultSuccess final : public RtcEvent {
bool IsConfigEvent() const override;
std::unique_ptr<RtcEvent> Copy() const override;
std::unique_ptr<RtcEventProbeResultSuccess> Copy() const;
const int32_t id_;
const int32_t bitrate_bps_;

View File

@ -33,8 +33,10 @@ bool RtcEventRtcpPacketIncoming::IsConfigEvent() const {
return false;
}
std::unique_ptr<RtcEvent> RtcEventRtcpPacketIncoming::Copy() const {
return absl::WrapUnique<RtcEvent>(new RtcEventRtcpPacketIncoming(*this));
std::unique_ptr<RtcEventRtcpPacketIncoming> RtcEventRtcpPacketIncoming::Copy()
const {
return absl::WrapUnique<RtcEventRtcpPacketIncoming>(
new RtcEventRtcpPacketIncoming(*this));
}
} // namespace webrtc

View File

@ -29,7 +29,7 @@ class RtcEventRtcpPacketIncoming final : public RtcEvent {
bool IsConfigEvent() const override;
std::unique_ptr<RtcEvent> Copy() const override;
std::unique_ptr<RtcEventRtcpPacketIncoming> Copy() const;
rtc::Buffer packet_;

View File

@ -33,8 +33,10 @@ bool RtcEventRtcpPacketOutgoing::IsConfigEvent() const {
return false;
}
std::unique_ptr<RtcEvent> RtcEventRtcpPacketOutgoing::Copy() const {
return absl::WrapUnique<RtcEvent>(new RtcEventRtcpPacketOutgoing(*this));
std::unique_ptr<RtcEventRtcpPacketOutgoing> RtcEventRtcpPacketOutgoing::Copy()
const {
return absl::WrapUnique<RtcEventRtcpPacketOutgoing>(
new RtcEventRtcpPacketOutgoing(*this));
}
} // namespace webrtc

View File

@ -29,7 +29,7 @@ class RtcEventRtcpPacketOutgoing final : public RtcEvent {
bool IsConfigEvent() const override;
std::unique_ptr<RtcEvent> Copy() const override;
std::unique_ptr<RtcEventRtcpPacketOutgoing> Copy() const;
rtc::Buffer packet_;

View File

@ -44,8 +44,10 @@ bool RtcEventRtpPacketIncoming::IsConfigEvent() const {
return false;
}
std::unique_ptr<RtcEvent> RtcEventRtpPacketIncoming::Copy() const {
return absl::WrapUnique<RtcEvent>(new RtcEventRtpPacketIncoming(*this));
std::unique_ptr<RtcEventRtpPacketIncoming> RtcEventRtpPacketIncoming::Copy()
const {
return absl::WrapUnique<RtcEventRtpPacketIncoming>(
new RtcEventRtpPacketIncoming(*this));
}
} // namespace webrtc

View File

@ -29,7 +29,7 @@ class RtcEventRtpPacketIncoming final : public RtcEvent {
bool IsConfigEvent() const override;
std::unique_ptr<RtcEvent> Copy() const override;
std::unique_ptr<RtcEventRtpPacketIncoming> Copy() const;
size_t packet_length() const {
return payload_length_ + header_length_ + padding_length_;

View File

@ -47,8 +47,10 @@ bool RtcEventRtpPacketOutgoing::IsConfigEvent() const {
return false;
}
std::unique_ptr<RtcEvent> RtcEventRtpPacketOutgoing::Copy() const {
return absl::WrapUnique<RtcEvent>(new RtcEventRtpPacketOutgoing(*this));
std::unique_ptr<RtcEventRtpPacketOutgoing> RtcEventRtpPacketOutgoing::Copy()
const {
return absl::WrapUnique<RtcEventRtpPacketOutgoing>(
new RtcEventRtpPacketOutgoing(*this));
}
} // namespace webrtc

View File

@ -30,7 +30,7 @@ class RtcEventRtpPacketOutgoing final : public RtcEvent {
bool IsConfigEvent() const override;
std::unique_ptr<RtcEvent> Copy() const override;
std::unique_ptr<RtcEventRtpPacketOutgoing> Copy() const;
size_t packet_length() const {
return payload_length_ + header_length_ + padding_length_;

View File

@ -35,8 +35,9 @@ bool RtcEventVideoReceiveStreamConfig::IsConfigEvent() const {
return true;
}
std::unique_ptr<RtcEvent> RtcEventVideoReceiveStreamConfig::Copy() const {
return absl::WrapUnique<RtcEvent>(
std::unique_ptr<RtcEventVideoReceiveStreamConfig>
RtcEventVideoReceiveStreamConfig::Copy() const {
return absl::WrapUnique<RtcEventVideoReceiveStreamConfig>(
new RtcEventVideoReceiveStreamConfig(*this));
}

View File

@ -28,7 +28,7 @@ class RtcEventVideoReceiveStreamConfig final : public RtcEvent {
bool IsConfigEvent() const override;
std::unique_ptr<RtcEvent> Copy() const override;
std::unique_ptr<RtcEventVideoReceiveStreamConfig> Copy() const;
const std::unique_ptr<const rtclog::StreamConfig> config_;

View File

@ -35,8 +35,10 @@ bool RtcEventVideoSendStreamConfig::IsConfigEvent() const {
return true;
}
std::unique_ptr<RtcEvent> RtcEventVideoSendStreamConfig::Copy() const {
return absl::WrapUnique<RtcEvent>(new RtcEventVideoSendStreamConfig(*this));
std::unique_ptr<RtcEventVideoSendStreamConfig>
RtcEventVideoSendStreamConfig::Copy() const {
return absl::WrapUnique<RtcEventVideoSendStreamConfig>(
new RtcEventVideoSendStreamConfig(*this));
}
} // namespace webrtc

View File

@ -28,7 +28,7 @@ class RtcEventVideoSendStreamConfig final : public RtcEvent {
bool IsConfigEvent() const override;
std::unique_ptr<RtcEvent> Copy() const override;
std::unique_ptr<RtcEventVideoSendStreamConfig> Copy() const;
const std::unique_ptr<const rtclog::StreamConfig> config_;