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:
parent
2365936b87
commit
e40186332e
@ -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:
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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_;
|
||||
|
||||
|
||||
@ -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));
|
||||
}
|
||||
|
||||
|
||||
@ -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_;
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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_;
|
||||
|
||||
|
||||
@ -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));
|
||||
}
|
||||
|
||||
|
||||
@ -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_;
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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_;
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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_;
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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_;
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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_;
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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_;
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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_;
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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_;
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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_;
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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_;
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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_;
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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_;
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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_;
|
||||
|
||||
@ -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));
|
||||
}
|
||||
|
||||
|
||||
@ -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_;
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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_;
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user