Skip to content

Commit 3e2ff82

Browse files
authored
Worker: Add interfaces for Timer classes (#1784)
1 parent 5f2f9bd commit 3e2ff82

39 files changed

Lines changed: 316 additions & 192 deletions

worker/include/DepUsrSCTP.hpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33

44
#include "common.hpp"
55
#include "RTC/SctpAssociation.hpp"
6-
#include "handles/TimerHandle.hpp"
6+
#include "handles/TimerHandleInterface.hpp"
77
#include <absl/container/flat_hash_map.h>
88

99
class DepUsrSCTP
1010
{
1111
private:
12-
class Checker : public TimerHandle::Listener
12+
class Checker : public TimerHandleInterface::Listener
1313
{
1414
public:
1515
Checker();
@@ -19,12 +19,12 @@ class DepUsrSCTP
1919
void Start();
2020
void Stop();
2121

22-
/* Pure virtual methods inherited from TimerHandle::Listener. */
22+
/* Pure virtual methods inherited from TimerHandleInterface::Listener. */
2323
public:
24-
void OnTimer(TimerHandle* timer) override;
24+
void OnTimer(TimerHandleInterface* timer) override;
2525

2626
private:
27-
TimerHandle* timer{ nullptr };
27+
TimerHandleInterface* timer{ nullptr };
2828
uint64_t lastCalledAtMs{ 0u };
2929
};
3030

worker/include/RTC/ActiveSpeakerObserver.hpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
#include "RTC/RtpObserver.hpp"
55
#include "RTC/Shared.hpp"
6-
#include "handles/TimerHandle.hpp"
6+
#include "handles/TimerHandleInterface.hpp"
77
#include <absl/container/flat_hash_map.h>
88
#include <vector>
99

@@ -14,7 +14,7 @@
1414
// https://github.com/jitsi/jitsi-utils/blob/master/src/main/java/org/jitsi/utils/dsi/DominantSpeakerIdentification.java
1515
namespace RTC
1616
{
17-
class ActiveSpeakerObserver : public RTC::RtpObserver, public TimerHandle::Listener
17+
class ActiveSpeakerObserver : public RTC::RtpObserver, public TimerHandleInterface::Listener
1818
{
1919
private:
2020
class Speaker
@@ -89,14 +89,14 @@ namespace RTC
8989
bool CalculateActiveSpeaker();
9090
void TimeoutIdleLevels(uint64_t now);
9191

92-
/* Pure virtual methods inherited from TimerHandle. */
92+
/* Pure virtual methods inherited from TimerHandleInterface. */
9393
protected:
94-
void OnTimer(TimerHandle* timer) override;
94+
void OnTimer(TimerHandleInterface* timer) override;
9595

9696
private:
9797
double relativeSpeachActivities[RelativeSpeachActivitiesLen]{};
9898
std::string dominantId;
99-
TimerHandle* periodicTimer{ nullptr };
99+
TimerHandleInterface* periodicTimer{ nullptr };
100100
uint16_t interval{ 300u };
101101
// Map of ProducerSpeakers indexed by Producer id.
102102
absl::flat_hash_map<std::string, ProducerSpeaker*> mapProducerSpeakers;

worker/include/RTC/AudioLevelObserver.hpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33

44
#include "RTC/RtpObserver.hpp"
55
#include "RTC/Shared.hpp"
6-
#include "handles/TimerHandle.hpp"
6+
#include "handles/TimerHandleInterface.hpp"
77
#include <absl/container/flat_hash_map.h>
88

99
namespace RTC
1010
{
11-
class AudioLevelObserver : public RTC::RtpObserver, public TimerHandle::Listener
11+
class AudioLevelObserver : public RTC::RtpObserver, public TimerHandleInterface::Listener
1212
{
1313
private:
1414
struct DBovs
@@ -38,17 +38,17 @@ namespace RTC
3838
void Update();
3939
void ResetMapProducerDBovs();
4040

41-
/* Pure virtual methods inherited from TimerHandle. */
41+
/* Pure virtual methods inherited from TimerHandleInterface. */
4242
protected:
43-
void OnTimer(TimerHandle* timer) override;
43+
void OnTimer(TimerHandleInterface* timer) override;
4444

4545
private:
4646
// Passed by argument.
4747
uint16_t maxEntries{ 1u };
4848
int8_t threshold{ -80 };
4949
uint16_t interval{ 1000u };
5050
// Allocated by this.
51-
TimerHandle* periodicTimer{ nullptr };
51+
TimerHandleInterface* periodicTimer{ nullptr };
5252
// Others.
5353
absl::flat_hash_map<RTC::Producer*, DBovs> mapProducerDBovs;
5454
bool silence{ true };

worker/include/RTC/DtlsTransport.hpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#include "common.hpp"
55
#include "FBS/webRtcTransport.h"
66
#include "RTC/SrtpSession.hpp"
7-
#include "handles/TimerHandle.hpp"
7+
#include "handles/TimerHandleInterface.hpp"
88
#include <openssl/bio.h>
99
#include <openssl/ssl.h>
1010
#include <openssl/x509.h>
@@ -14,7 +14,7 @@
1414

1515
namespace RTC
1616
{
17-
class DtlsTransport : public TimerHandle::Listener
17+
class DtlsTransport : public TimerHandleInterface::Listener
1818
{
1919
public:
2020
enum class DtlsState : uint8_t
@@ -195,9 +195,9 @@ namespace RTC
195195
public:
196196
void OnSslInfo(int where, int ret);
197197

198-
/* Pure virtual methods inherited from TimerHandle::Listener. */
198+
/* Pure virtual methods inherited from TimerHandleInterface::Listener. */
199199
public:
200-
void OnTimer(TimerHandle* timer) override;
200+
void OnTimer(TimerHandleInterface* timer) override;
201201

202202
private:
203203
// Passed by argument.
@@ -206,7 +206,7 @@ namespace RTC
206206
SSL* ssl{ nullptr };
207207
BIO* sslBioFromNetwork{ nullptr }; // The BIO from which ssl reads.
208208
BIO* sslBioToNetwork{ nullptr }; // The BIO in which ssl writes.
209-
TimerHandle* timer{ nullptr };
209+
TimerHandleInterface* timer{ nullptr };
210210
// Others.
211211
DtlsState state{ DtlsState::NEW };
212212
std::optional<Role> localRole;

worker/include/RTC/ICE/IceServer.hpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
#include "FBS/webRtcTransport.h"
66
#include "RTC/ICE/StunPacket.hpp"
77
#include "RTC/TransportTuple.hpp"
8-
#include "handles/TimerHandle.hpp"
8+
#include "handles/TimerHandleInterface.hpp"
99
#include <list>
1010
#include <string>
1111
#include <unordered_map>
@@ -14,7 +14,7 @@ namespace RTC
1414
{
1515
namespace ICE
1616
{
17-
class IceServer : public TimerHandle::Listener
17+
class IceServer : public TimerHandleInterface::Listener
1818
{
1919
public:
2020
enum class IceState : uint8_t
@@ -129,9 +129,9 @@ namespace RTC
129129
void RestartConsentCheck();
130130
void StopConsentCheck();
131131

132-
/* Pure virtual methods inherited from TimerHandle::Listener. */
132+
/* Pure virtual methods inherited from TimerHandleInterface::Listener. */
133133
public:
134-
void OnTimer(TimerHandle* timer) override;
134+
void OnTimer(TimerHandleInterface* timer) override;
135135

136136
private:
137137
// Passed by argument.
@@ -146,7 +146,7 @@ namespace RTC
146146
uint32_t remoteNomination{ 0u };
147147
std::list<RTC::TransportTuple> tuples;
148148
RTC::TransportTuple* selectedTuple{ nullptr };
149-
TimerHandle* consentCheckTimer{ nullptr };
149+
TimerHandleInterface* consentCheckTimer{ nullptr };
150150
bool isRemovingTuples{ false };
151151
};
152152
} // namespace ICE

worker/include/RTC/KeyFrameRequestManager.hpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
#ifndef MS_KEY_FRAME_REQUEST_MANAGER_HPP
22
#define MS_KEY_FRAME_REQUEST_MANAGER_HPP
33

4-
#include "handles/TimerHandle.hpp"
4+
#include "handles/TimerHandleInterface.hpp"
55
#include <absl/container/flat_hash_map.h>
66

77
namespace RTC
88
{
9-
class PendingKeyFrameInfo : public TimerHandle::Listener
9+
class PendingKeyFrameInfo : public TimerHandleInterface::Listener
1010
{
1111
public:
1212
class Listener
@@ -39,18 +39,18 @@ namespace RTC
3939
this->timer->Restart();
4040
}
4141

42-
/* Pure virtual methods inherited from TimerHandle::Listener. */
42+
/* Pure virtual methods inherited from TimerHandleInterface::Listener. */
4343
public:
44-
void OnTimer(TimerHandle* timer) override;
44+
void OnTimer(TimerHandleInterface* timer) override;
4545

4646
private:
4747
Listener* listener{ nullptr };
4848
uint32_t ssrc;
49-
TimerHandle* timer{ nullptr };
49+
TimerHandleInterface* timer{ nullptr };
5050
bool retryOnTimeout{ true };
5151
};
5252

53-
class KeyFrameRequestDelayer : public TimerHandle::Listener
53+
class KeyFrameRequestDelayer : public TimerHandleInterface::Listener
5454
{
5555
public:
5656
class Listener
@@ -79,14 +79,14 @@ namespace RTC
7979
this->keyFrameRequested = flag;
8080
}
8181

82-
/* Pure virtual methods inherited from TimerHandle::Listener. */
82+
/* Pure virtual methods inherited from TimerHandleInterface::Listener. */
8383
public:
84-
void OnTimer(TimerHandle* timer) override;
84+
void OnTimer(TimerHandleInterface* timer) override;
8585

8686
private:
8787
Listener* listener{ nullptr };
8888
uint32_t ssrc;
89-
TimerHandle* timer{ nullptr };
89+
TimerHandleInterface* timer{ nullptr };
9090
bool keyFrameRequested{ false };
9191
};
9292

worker/include/RTC/NackGenerator.hpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44
#include "common.hpp"
55
#include "RTC/RTP/Packet.hpp"
66
#include "RTC/SeqManager.hpp"
7-
#include "handles/TimerHandle.hpp"
7+
#include "handles/TimerHandleInterface.hpp"
88
#include <map>
99
#include <set>
1010
#include <vector>
1111

1212
namespace RTC
1313
{
14-
class NackGenerator : public TimerHandle::Listener
14+
class NackGenerator : public TimerHandleInterface::Listener
1515
{
1616
public:
1717
class Listener
@@ -67,16 +67,16 @@ namespace RTC
6767
std::vector<uint16_t> GetNackBatch(NackFilter filter);
6868
void MayRunTimer() const;
6969

70-
/* Pure virtual methods inherited from TimerHandle::Listener. */
70+
/* Pure virtual methods inherited from TimerHandleInterface::Listener. */
7171
public:
72-
void OnTimer(TimerHandle* timer) override;
72+
void OnTimer(TimerHandleInterface* timer) override;
7373

7474
private:
7575
// Passed by argument.
7676
Listener* listener{ nullptr };
7777
unsigned int sendNackDelayMs{ 0u };
7878
// Allocated by this.
79-
TimerHandle* timer{ nullptr };
79+
TimerHandleInterface* timer{ nullptr };
8080
// Others.
8181
std::map<uint16_t, NackInfo, RTC::SeqManager<uint16_t>::SeqLowerThan> nackList;
8282
std::set<uint16_t, RTC::SeqManager<uint16_t>::SeqLowerThan> keyFrameList;

worker/include/RTC/RTP/RtpStreamRecv.hpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
#include "RTC/RTCP/XrDelaySinceLastRr.hpp"
66
#include "RTC/RTP/RtpStream.hpp"
77
#include "RTC/RateCalculator.hpp"
8-
#include "handles/TimerHandle.hpp"
8+
#include "handles/TimerHandleInterface.hpp"
99
#include <vector>
1010

1111
namespace RTC
@@ -14,7 +14,7 @@ namespace RTC
1414
{
1515
class RtpStreamRecv : public RTP::RtpStream,
1616
public RTC::NackGenerator::Listener,
17-
public TimerHandle::Listener
17+
public TimerHandleInterface::Listener
1818
{
1919
public:
2020
class Listener : public RTP::RtpStream::Listener
@@ -92,9 +92,9 @@ namespace RTC
9292
public:
9393
void UserOnSequenceNumberReset() override;
9494

95-
/* Pure virtual methods inherited from TimerHandle. */
95+
/* Pure virtual methods inherited from TimerHandleInterface. */
9696
protected:
97-
void OnTimer(TimerHandle* timer) override;
97+
void OnTimer(TimerHandleInterface* timer) override;
9898

9999
/* Pure virtual methods inherited from RTC::NackGenerator. */
100100
protected:
@@ -124,7 +124,7 @@ namespace RTC
124124
uint8_t firSeqNumber{ 0u };
125125
int32_t reportedPacketsLost{ 0 };
126126
std::unique_ptr<RTC::NackGenerator> nackGenerator;
127-
TimerHandle* inactivityCheckPeriodicTimer{ nullptr };
127+
TimerHandleInterface* inactivityCheckPeriodicTimer{ nullptr };
128128
bool inactive{ false };
129129
// Valid media + valid RTX.
130130
TransmissionCounter transmissionCounter;

worker/include/RTC/SCTP/TODO_SCTP.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,13 @@
4646

4747
- Look for "TODO: SCTP" everywhere.
4848

49-
- Test Chrome with I-DATA (message interleaving):
50-
49+
- Test Chrome/Canary with I-DATA (message interleaving):
50+
```bash
51+
open -a "Google Chrome" \
52+
--args \
53+
--force-fieldtrials="WebRTC-DataChannelMessageInterleaving/Enabled/"
5154
```
55+
```bash
5256
open -a "Google Chrome Canary" \
5357
--args \
5458
--force-fieldtrials="WebRTC-DataChannelMessageInterleaving/Enabled/"

worker/include/RTC/SCTP/association/Association.hpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
#include "RTC/SCTP/public/Message.hpp"
3737
#include "RTC/SCTP/public/SctpOptions.hpp"
3838
#include "RTC/SCTP/public/SctpTypes.hpp"
39-
#include "handles/BackoffTimerHandle.hpp"
39+
#include "handles/BackoffTimerHandleInterface.hpp"
4040
#include <FBS/sctpParameters.h>
4141
#include <span>
4242
#include <string_view>
@@ -51,7 +51,7 @@ namespace RTC
5151
*/
5252
class Association : public AssociationInterface,
5353
public PacketSender::Listener,
54-
public BackoffTimerHandle::Listener
54+
public BackoffTimerHandleInterface::Listener
5555
{
5656
public:
5757
/**
@@ -460,9 +460,9 @@ namespace RTC
460460
public:
461461
void OnPacketSenderPacketSent(PacketSender* packetSender, const Packet* packet, bool sent) override;
462462

463-
/* Pure virtual methods inherited from BackoffTimerHandle::Listener. */
463+
/* Pure virtual methods inherited from BackoffTimerHandleInterface::Listener. */
464464
public:
465-
void OnTimer(BackoffTimerHandle* backoffTimer, uint64_t& baseTimeoutMs, bool& stop) override;
465+
void OnTimer(BackoffTimerHandleInterface* backoffTimer, uint64_t& baseTimeoutMs, bool& stop) override;
466466

467467
private:
468468
// SCTP options given in the constructor.
@@ -487,11 +487,11 @@ namespace RTC
487487
// Private metrics.
488488
AssociationPrivateMetrics privateMetrics{};
489489
// T1-init timer.
490-
const std::unique_ptr<BackoffTimerHandle> t1InitTimer;
490+
const std::unique_ptr<BackoffTimerHandleInterface> t1InitTimer;
491491
// T1-cookie timer.
492-
const std::unique_ptr<BackoffTimerHandle> t1CookieTimer;
492+
const std::unique_ptr<BackoffTimerHandleInterface> t1CookieTimer;
493493
// T2-shutdown timer.
494-
const std::unique_ptr<BackoffTimerHandle> t2ShutdownTimer;
494+
const std::unique_ptr<BackoffTimerHandleInterface> t2ShutdownTimer;
495495
};
496496
} // namespace SCTP
497497
} // namespace RTC

0 commit comments

Comments
 (0)