mediasoup 3.19.21 → 3.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/node/lib/ActiveSpeakerObserver.js +34 -1
- package/node/lib/AudioLevelObserver.js +35 -2
- package/node/lib/Channel.d.ts.map +1 -1
- package/node/lib/Channel.js +37 -5
- package/node/lib/Consumer.js +39 -6
- package/node/lib/DataConsumer.d.ts.map +1 -1
- package/node/lib/DataConsumer.js +39 -5
- package/node/lib/DataConsumerTypes.d.ts +1 -0
- package/node/lib/DataConsumerTypes.d.ts.map +1 -1
- package/node/lib/DataProducer.js +37 -4
- package/node/lib/DirectTransport.js +37 -4
- package/node/lib/DirectTransportTypes.d.ts +7 -2
- package/node/lib/DirectTransportTypes.d.ts.map +1 -1
- package/node/lib/Logger.js +4 -1
- package/node/lib/PipeTransport.d.ts +3 -1
- package/node/lib/PipeTransport.d.ts.map +1 -1
- package/node/lib/PipeTransport.js +56 -5
- package/node/lib/PipeTransportTypes.d.ts +28 -8
- package/node/lib/PipeTransportTypes.d.ts.map +1 -1
- package/node/lib/PlainTransport.d.ts +3 -1
- package/node/lib/PlainTransport.d.ts.map +1 -1
- package/node/lib/PlainTransport.js +54 -3
- package/node/lib/PlainTransportTypes.d.ts +27 -7
- package/node/lib/PlainTransportTypes.d.ts.map +1 -1
- package/node/lib/Producer.js +40 -7
- package/node/lib/Router.d.ts +5 -5
- package/node/lib/Router.d.ts.map +1 -1
- package/node/lib/Router.js +81 -36
- package/node/lib/RouterTypes.d.ts +25 -3
- package/node/lib/RouterTypes.d.ts.map +1 -1
- package/node/lib/RtpObserver.js +36 -3
- package/node/lib/Transport.d.ts +3 -1
- package/node/lib/Transport.d.ts.map +1 -1
- package/node/lib/Transport.js +74 -22
- package/node/lib/TransportTypes.d.ts +2 -1
- package/node/lib/TransportTypes.d.ts.map +1 -1
- package/node/lib/WebRtcServer.js +36 -3
- package/node/lib/WebRtcTransport.d.ts +3 -1
- package/node/lib/WebRtcTransport.d.ts.map +1 -1
- package/node/lib/WebRtcTransport.js +55 -4
- package/node/lib/WebRtcTransportTypes.d.ts +27 -7
- package/node/lib/WebRtcTransportTypes.d.ts.map +1 -1
- package/node/lib/Worker.d.ts +2 -1
- package/node/lib/Worker.d.ts.map +1 -1
- package/node/lib/Worker.js +71 -25
- package/node/lib/WorkerTypes.d.ts +0 -4
- package/node/lib/WorkerTypes.d.ts.map +1 -1
- package/node/lib/enhancedEvents.d.ts +2 -2
- package/node/lib/enhancedEvents.d.ts.map +1 -1
- package/node/lib/enhancedEvents.js +0 -2
- package/node/lib/fbs/active-speaker-observer/active-speaker-observer-options.js +34 -1
- package/node/lib/fbs/active-speaker-observer/dominant-speaker-notification.js +34 -1
- package/node/lib/fbs/audio-level-observer/audio-level-observer-options.js +34 -1
- package/node/lib/fbs/audio-level-observer/volume.js +34 -1
- package/node/lib/fbs/audio-level-observer/volumes-notification.js +34 -1
- package/node/lib/fbs/common/string-string-array.js +34 -1
- package/node/lib/fbs/common/string-string.js +34 -1
- package/node/lib/fbs/common/string-uint8.js +34 -1
- package/node/lib/fbs/common/uint16-string.js +34 -1
- package/node/lib/fbs/common/uint32-string.js +34 -1
- package/node/lib/fbs/consumer/base-consumer-dump.js +34 -1
- package/node/lib/fbs/consumer/consumer-dump.js +34 -1
- package/node/lib/fbs/consumer/consumer-layers.js +34 -1
- package/node/lib/fbs/consumer/consumer-score.js +34 -1
- package/node/lib/fbs/consumer/dump-response.js +34 -1
- package/node/lib/fbs/consumer/enable-trace-event-request.js +34 -1
- package/node/lib/fbs/consumer/fir-trace-info.js +34 -1
- package/node/lib/fbs/consumer/get-stats-response.js +34 -1
- package/node/lib/fbs/consumer/key-frame-trace-info.js +34 -1
- package/node/lib/fbs/consumer/layers-change-notification.js +34 -1
- package/node/lib/fbs/consumer/pli-trace-info.js +34 -1
- package/node/lib/fbs/consumer/rtp-notification.js +34 -1
- package/node/lib/fbs/consumer/rtp-trace-info.js +34 -1
- package/node/lib/fbs/consumer/score-notification.js +34 -1
- package/node/lib/fbs/consumer/set-preferred-layers-request.js +34 -1
- package/node/lib/fbs/consumer/set-preferred-layers-response.js +34 -1
- package/node/lib/fbs/consumer/set-priority-request.js +34 -1
- package/node/lib/fbs/consumer/set-priority-response.js +34 -1
- package/node/lib/fbs/consumer/trace-notification.js +34 -1
- package/node/lib/fbs/data-consumer/add-subchannel-request.js +34 -1
- package/node/lib/fbs/data-consumer/add-subchannel-response.js +34 -1
- package/node/lib/fbs/data-consumer/buffered-amount-low-notification.js +34 -1
- package/node/lib/fbs/data-consumer/dump-response.d.ts +5 -2
- package/node/lib/fbs/data-consumer/dump-response.d.ts.map +1 -1
- package/node/lib/fbs/data-consumer/dump-response.js +60 -16
- package/node/lib/fbs/data-consumer/get-buffered-amount-response.js +34 -1
- package/node/lib/fbs/data-consumer/get-stats-response.js +34 -1
- package/node/lib/fbs/data-consumer/message-notification.js +34 -1
- package/node/lib/fbs/data-consumer/remove-subchannel-request.js +34 -1
- package/node/lib/fbs/data-consumer/remove-subchannel-response.js +34 -1
- package/node/lib/fbs/data-consumer/send-request.js +34 -1
- package/node/lib/fbs/data-consumer/set-buffered-amount-low-threshold-request.js +34 -1
- package/node/lib/fbs/data-consumer/set-subchannels-request.js +34 -1
- package/node/lib/fbs/data-consumer/set-subchannels-response.js +34 -1
- package/node/lib/fbs/data-consumer/type.d.ts +5 -0
- package/node/lib/fbs/data-consumer/type.d.ts.map +1 -0
- package/node/lib/fbs/data-consumer/type.js +10 -0
- package/node/lib/fbs/data-consumer.d.ts +1 -0
- package/node/lib/fbs/data-consumer.d.ts.map +1 -1
- package/node/lib/fbs/data-consumer.js +3 -1
- package/node/lib/fbs/data-producer/dump-response.js +34 -1
- package/node/lib/fbs/data-producer/get-stats-response.js +34 -1
- package/node/lib/fbs/data-producer/send-notification.js +34 -1
- package/node/lib/fbs/direct-transport/direct-transport-options.js +34 -1
- package/node/lib/fbs/direct-transport/dump-response.js +34 -1
- package/node/lib/fbs/direct-transport/get-stats-response.js +34 -1
- package/node/lib/fbs/direct-transport/rtcp-notification.js +34 -1
- package/node/lib/fbs/lib-uring/dump.js +34 -1
- package/node/lib/fbs/log/log.js +34 -1
- package/node/lib/fbs/message/message.js +34 -1
- package/node/lib/fbs/notification/body.d.ts +24 -22
- package/node/lib/fbs/notification/body.d.ts.map +1 -1
- package/node/lib/fbs/notification/body.js +24 -20
- package/node/lib/fbs/notification/event.d.ts +27 -26
- package/node/lib/fbs/notification/event.d.ts.map +1 -1
- package/node/lib/fbs/notification/event.js +27 -26
- package/node/lib/fbs/notification/notification.d.ts +3 -2
- package/node/lib/fbs/notification/notification.d.ts.map +1 -1
- package/node/lib/fbs/notification/notification.js +34 -1
- package/node/lib/fbs/pipe-transport/connect-request.js +34 -1
- package/node/lib/fbs/pipe-transport/connect-response.js +34 -1
- package/node/lib/fbs/pipe-transport/dump-response.js +34 -1
- package/node/lib/fbs/pipe-transport/get-stats-response.js +34 -1
- package/node/lib/fbs/pipe-transport/pipe-transport-options.js +34 -1
- package/node/lib/fbs/plain-transport/connect-request.js +34 -1
- package/node/lib/fbs/plain-transport/connect-response.js +34 -1
- package/node/lib/fbs/plain-transport/dump-response.js +34 -1
- package/node/lib/fbs/plain-transport/get-stats-response.js +34 -1
- package/node/lib/fbs/plain-transport/plain-transport-options.js +34 -1
- package/node/lib/fbs/plain-transport/rtcp-tuple-notification.js +34 -1
- package/node/lib/fbs/plain-transport/tuple-notification.js +34 -1
- package/node/lib/fbs/producer/dump-response.js +34 -1
- package/node/lib/fbs/producer/enable-trace-event-request.js +34 -1
- package/node/lib/fbs/producer/fir-trace-info.js +34 -1
- package/node/lib/fbs/producer/get-stats-response.js +34 -1
- package/node/lib/fbs/producer/key-frame-trace-info.js +34 -1
- package/node/lib/fbs/producer/pli-trace-info.js +34 -1
- package/node/lib/fbs/producer/rtp-trace-info.js +34 -1
- package/node/lib/fbs/producer/score-notification.js +34 -1
- package/node/lib/fbs/producer/score.js +34 -1
- package/node/lib/fbs/producer/send-notification.js +34 -1
- package/node/lib/fbs/producer/sr-trace-info.js +34 -1
- package/node/lib/fbs/producer/trace-notification.js +34 -1
- package/node/lib/fbs/producer/video-orientation-change-notification.js +34 -1
- package/node/lib/fbs/request/request.js +34 -1
- package/node/lib/fbs/response/response.js +34 -1
- package/node/lib/fbs/router/close-rtp-observer-request.js +34 -1
- package/node/lib/fbs/router/close-transport-request.js +34 -1
- package/node/lib/fbs/router/create-active-speaker-observer-request.js +34 -1
- package/node/lib/fbs/router/create-audio-level-observer-request.js +34 -1
- package/node/lib/fbs/router/create-direct-transport-request.js +34 -1
- package/node/lib/fbs/router/create-pipe-transport-request.js +34 -1
- package/node/lib/fbs/router/create-plain-transport-request.js +34 -1
- package/node/lib/fbs/router/create-web-rtc-transport-request.js +34 -1
- package/node/lib/fbs/router/dump-response.js +34 -1
- package/node/lib/fbs/rtp-observer/add-producer-request.js +34 -1
- package/node/lib/fbs/rtp-observer/remove-producer-request.js +34 -1
- package/node/lib/fbs/rtp-packet/dump.js +34 -1
- package/node/lib/fbs/rtp-parameters/boolean.js +34 -1
- package/node/lib/fbs/rtp-parameters/codec-mapping.js +34 -1
- package/node/lib/fbs/rtp-parameters/double.js +34 -1
- package/node/lib/fbs/rtp-parameters/encoding-mapping.js +34 -1
- package/node/lib/fbs/rtp-parameters/integer32-array.js +34 -1
- package/node/lib/fbs/rtp-parameters/integer32.js +34 -1
- package/node/lib/fbs/rtp-parameters/parameter.js +34 -1
- package/node/lib/fbs/rtp-parameters/rtcp-feedback.js +34 -1
- package/node/lib/fbs/rtp-parameters/rtcp-parameters.js +34 -1
- package/node/lib/fbs/rtp-parameters/rtp-codec-parameters.js +34 -1
- package/node/lib/fbs/rtp-parameters/rtp-encoding-parameters.js +34 -1
- package/node/lib/fbs/rtp-parameters/rtp-header-extension-parameters.js +34 -1
- package/node/lib/fbs/rtp-parameters/rtp-mapping.js +34 -1
- package/node/lib/fbs/rtp-parameters/rtp-parameters.js +34 -1
- package/node/lib/fbs/rtp-parameters/rtx.js +34 -1
- package/node/lib/fbs/rtp-parameters/string.js +34 -1
- package/node/lib/fbs/rtp-stream/base-stats.js +34 -1
- package/node/lib/fbs/rtp-stream/bitrate-by-layer.js +34 -1
- package/node/lib/fbs/rtp-stream/dump.js +34 -1
- package/node/lib/fbs/rtp-stream/params.js +34 -1
- package/node/lib/fbs/rtp-stream/recv-stats.js +34 -1
- package/node/lib/fbs/rtp-stream/send-stats.js +34 -1
- package/node/lib/fbs/rtp-stream/stats.js +34 -1
- package/node/lib/fbs/rtx-stream/params.js +34 -1
- package/node/lib/fbs/rtx-stream/rtx-dump.js +34 -1
- package/node/lib/fbs/sctp-association/sctp-negotiated-capabilities.d.ts +24 -0
- package/node/lib/fbs/sctp-association/sctp-negotiated-capabilities.d.ts.map +1 -0
- package/node/lib/fbs/sctp-association/sctp-negotiated-capabilities.js +102 -0
- package/node/lib/fbs/sctp-association.d.ts +1 -0
- package/node/lib/fbs/sctp-association.d.ts.map +1 -1
- package/node/lib/fbs/sctp-association.js +4 -1
- package/node/lib/fbs/sctp-parameters/num-sctp-streams.js +34 -1
- package/node/lib/fbs/sctp-parameters/sctp-parameters.d.ts +14 -14
- package/node/lib/fbs/sctp-parameters/sctp-parameters.d.ts.map +1 -1
- package/node/lib/fbs/sctp-parameters/sctp-parameters.js +73 -40
- package/node/lib/fbs/sctp-parameters/sctp-stream-parameters.js +34 -1
- package/node/lib/fbs/sctp-parameters.d.ts +0 -1
- package/node/lib/fbs/sctp-parameters.d.ts.map +1 -1
- package/node/lib/fbs/sctp-parameters.js +1 -4
- package/node/lib/fbs/srtp-parameters/srtp-parameters.js +34 -1
- package/node/lib/fbs/transport/bwe-trace-info.js +34 -1
- package/node/lib/fbs/transport/close-consumer-request.js +34 -1
- package/node/lib/fbs/transport/close-data-consumer-request.js +34 -1
- package/node/lib/fbs/transport/close-data-producer-request.js +34 -1
- package/node/lib/fbs/transport/close-producer-request.js +34 -1
- package/node/lib/fbs/transport/consume-data-request.d.ts +1 -1
- package/node/lib/fbs/transport/consume-data-request.js +35 -2
- package/node/lib/fbs/transport/consume-request.js +34 -1
- package/node/lib/fbs/transport/consume-response.js +34 -1
- package/node/lib/fbs/transport/dump.d.ts +7 -4
- package/node/lib/fbs/transport/dump.d.ts.map +1 -1
- package/node/lib/fbs/transport/dump.js +66 -22
- package/node/lib/fbs/transport/enable-trace-event-request.js +34 -1
- package/node/lib/fbs/transport/listen-info.js +34 -1
- package/node/lib/fbs/transport/options.d.ts +14 -14
- package/node/lib/fbs/transport/options.d.ts.map +1 -1
- package/node/lib/fbs/transport/options.js +92 -51
- package/node/lib/fbs/transport/port-range.js +34 -1
- package/node/lib/fbs/transport/produce-data-request.js +34 -1
- package/node/lib/fbs/transport/produce-request.js +34 -1
- package/node/lib/fbs/transport/produce-response.js +34 -1
- package/node/lib/fbs/transport/recv-rtp-header-extensions.js +34 -1
- package/node/lib/fbs/transport/restart-ice-response.js +34 -1
- package/node/lib/fbs/transport/rtp-listener.js +34 -1
- package/node/lib/fbs/transport/sctp-listener.js +34 -1
- package/node/lib/fbs/transport/sctp-negotiated-capabilities-notification.d.ts +22 -0
- package/node/lib/fbs/transport/sctp-negotiated-capabilities-notification.d.ts.map +1 -0
- package/node/lib/fbs/transport/sctp-negotiated-capabilities-notification.js +93 -0
- package/node/lib/fbs/transport/sctp-state-change-notification.js +34 -1
- package/node/lib/fbs/transport/send-rtcp-notification.js +34 -1
- package/node/lib/fbs/transport/set-max-incoming-bitrate-request.js +34 -1
- package/node/lib/fbs/transport/set-max-outgoing-bitrate-request.js +34 -1
- package/node/lib/fbs/transport/set-min-outgoing-bitrate-request.js +34 -1
- package/node/lib/fbs/transport/socket-flags.js +34 -1
- package/node/lib/fbs/transport/stats.js +34 -1
- package/node/lib/fbs/transport/trace-notification.js +34 -1
- package/node/lib/fbs/transport/tuple.js +34 -1
- package/node/lib/fbs/transport.d.ts +1 -0
- package/node/lib/fbs/transport.d.ts.map +1 -1
- package/node/lib/fbs/transport.js +5 -2
- package/node/lib/fbs/web-rtc-server/dump-response.js +34 -1
- package/node/lib/fbs/web-rtc-server/ice-user-name-fragment.js +34 -1
- package/node/lib/fbs/web-rtc-server/ip-port.js +34 -1
- package/node/lib/fbs/web-rtc-server/tuple-hash.js +34 -1
- package/node/lib/fbs/web-rtc-transport/connect-request.js +34 -1
- package/node/lib/fbs/web-rtc-transport/connect-response.js +34 -1
- package/node/lib/fbs/web-rtc-transport/dtls-parameters.js +34 -1
- package/node/lib/fbs/web-rtc-transport/dtls-state-change-notification.js +34 -1
- package/node/lib/fbs/web-rtc-transport/dump-response.js +34 -1
- package/node/lib/fbs/web-rtc-transport/fingerprint.js +34 -1
- package/node/lib/fbs/web-rtc-transport/get-stats-response.js +34 -1
- package/node/lib/fbs/web-rtc-transport/ice-candidate.js +34 -1
- package/node/lib/fbs/web-rtc-transport/ice-parameters.js +34 -1
- package/node/lib/fbs/web-rtc-transport/ice-selected-tuple-change-notification.js +34 -1
- package/node/lib/fbs/web-rtc-transport/ice-state-change-notification.js +34 -1
- package/node/lib/fbs/web-rtc-transport/listen-individual.js +34 -1
- package/node/lib/fbs/web-rtc-transport/listen-server.js +34 -1
- package/node/lib/fbs/web-rtc-transport/web-rtc-transport-options.js +34 -1
- package/node/lib/fbs/worker/channel-message-handlers.js +34 -1
- package/node/lib/fbs/worker/close-router-request.js +34 -1
- package/node/lib/fbs/worker/close-web-rtc-server-request.js +34 -1
- package/node/lib/fbs/worker/create-router-request.js +34 -1
- package/node/lib/fbs/worker/create-web-rtc-server-request.js +34 -1
- package/node/lib/fbs/worker/dump-response.js +34 -1
- package/node/lib/fbs/worker/resource-usage-response.js +34 -1
- package/node/lib/fbs/worker/update-settings-request.js +34 -1
- package/node/lib/index.d.ts +1 -1
- package/node/lib/index.d.ts.map +1 -1
- package/node/lib/index.js +37 -5
- package/node/lib/ortc.js +36 -3
- package/node/lib/rtpParametersFbsUtils.js +34 -1
- package/node/lib/rtpStreamStatsFbsUtils.js +35 -2
- package/node/lib/sctpParametersFbsUtils.d.ts +2 -2
- package/node/lib/sctpParametersFbsUtils.d.ts.map +1 -1
- package/node/lib/sctpParametersFbsUtils.js +44 -7
- package/node/lib/sctpParametersTypes.d.ts +10 -46
- package/node/lib/sctpParametersTypes.d.ts.map +1 -1
- package/node/lib/srtpParametersFbsUtils.js +34 -1
- package/node/lib/test/test-ActiveSpeakerObserver.js +35 -2
- package/node/lib/test/test-AudioLevelObserver.js +35 -2
- package/node/lib/test/test-Consumer.js +37 -4
- package/node/lib/test/test-DataConsumer.js +35 -2
- package/node/lib/test/test-DataProducer.js +35 -2
- package/node/lib/test/test-DirectTransport.js +36 -8
- package/node/lib/test/test-PipeTransport.js +35 -2
- package/node/lib/test/test-PlainTransport.js +45 -12
- package/node/lib/test/test-Producer.js +37 -4
- package/node/lib/test/test-Router.js +35 -2
- package/node/lib/test/test-WebRtcServer.js +34 -1
- package/node/lib/test/test-WebRtcTransport.js +51 -22
- package/node/lib/test/test-Worker.js +37 -4
- package/node/lib/test/test-mediasoup.js +36 -3
- package/node/lib/test/test-multiopus.js +35 -2
- package/node/lib/test/test-ortc.js +34 -1
- package/node/lib/test/test-werift-sctp.js +39 -5
- package/npm-scripts.mjs +2 -2
- package/package.json +13 -11
- package/worker/deps/libwebrtc/LICENSE +5 -0
- package/worker/deps/libwebrtc/README.md +3 -3
- package/worker/deps/libwebrtc/libwebrtc/mediasoup_helpers.h +13 -10
- package/worker/fbs/dataConsumer.fbs +7 -2
- package/worker/fbs/dataProducer.fbs +1 -0
- package/worker/fbs/notification.fbs +2 -0
- package/worker/fbs/sctpAssociation.fbs +4 -0
- package/worker/fbs/sctpParameters.fbs +5 -12
- package/worker/fbs/transport.fbs +12 -8
- package/worker/fuzzer/src/RTC/FuzzerDtlsTransport.cpp +13 -3
- package/worker/fuzzer/src/RTC/FuzzerRateCalculator.cpp +2 -2
- package/worker/fuzzer/src/RTC/FuzzerSeqManager.cpp +1 -1
- package/worker/fuzzer/src/RTC/FuzzerTrendCalculator.cpp +5 -5
- package/worker/fuzzer/src/RTC/ICE/FuzzerStunPacket.cpp +9 -6
- package/worker/fuzzer/src/RTC/RTP/FuzzerRetransmissionBuffer.cpp +1 -1
- package/worker/fuzzer/src/RTC/RTP/FuzzerRtpStreamSend.cpp +14 -2
- package/worker/fuzzer/src/RTC/SCTP/association/FuzzerStateCookie.cpp +1 -1
- package/worker/fuzzer/src/RTC/SCTP/packet/FuzzerPacket.cpp +5 -2
- package/worker/fuzzer/src/fuzzer.cpp +3 -10
- package/worker/include/Channel/ChannelMessageRegistrator.hpp +39 -0
- package/worker/include/Channel/ChannelMessageRegistratorInterface.hpp +32 -0
- package/worker/include/Channel/ChannelRequest.hpp +1 -1
- package/worker/include/Channel/ChannelSocket.hpp +1 -1
- package/worker/include/DepLibUV.hpp +1 -1
- package/worker/include/DepLibUring.hpp +3 -3
- package/worker/include/Logger.hpp +4 -4
- package/worker/include/MediaSoupErrors.hpp +1 -1
- package/worker/include/RTC/ActiveSpeakerObserver.hpp +11 -9
- package/worker/include/RTC/AudioLevelObserver.hpp +7 -7
- package/worker/include/RTC/Consumer.hpp +3 -3
- package/worker/include/RTC/DataConsumer.hpp +13 -17
- package/worker/include/RTC/DataProducer.hpp +6 -9
- package/worker/include/RTC/DirectTransport.hpp +4 -6
- package/worker/include/RTC/DtlsTransport.hpp +13 -11
- package/worker/include/RTC/ICE/IceServer.hpp +8 -5
- package/worker/include/RTC/ICE/StunPacket.hpp +1 -1
- package/worker/include/RTC/KeyFrameRequestManager.hpp +15 -12
- package/worker/include/RTC/NackGenerator.hpp +8 -6
- package/worker/include/RTC/PipeConsumer.hpp +1 -2
- package/worker/include/RTC/PipeTransport.hpp +4 -6
- package/worker/include/RTC/PlainTransport.hpp +4 -6
- package/worker/include/RTC/PortManager.hpp +1 -1
- package/worker/include/RTC/Producer.hpp +3 -3
- package/worker/include/RTC/RTCP/FeedbackPs.hpp +1 -1
- package/worker/include/RTC/RTCP/FeedbackRtp.hpp +1 -1
- package/worker/include/RTC/RTCP/FeedbackRtpNack.hpp +1 -1
- package/worker/include/RTC/RTCP/ReceiverReport.hpp +1 -1
- package/worker/include/RTC/RTP/Packet.hpp +2 -2
- package/worker/include/RTC/RTP/RtpStream.hpp +17 -12
- package/worker/include/RTC/RTP/RtpStreamRecv.hpp +8 -6
- package/worker/include/RTC/RTP/RtpStreamSend.hpp +4 -1
- package/worker/include/RTC/RTP/RtxStream.hpp +3 -1
- package/worker/include/RTC/RTP/SharedPacket.hpp +1 -1
- package/worker/include/RTC/RateCalculator.hpp +5 -2
- package/worker/include/RTC/Router.hpp +7 -8
- package/worker/include/RTC/RtpObserver.hpp +3 -3
- package/worker/include/RTC/SCTP/association/Association.hpp +53 -19
- package/worker/include/RTC/SCTP/association/AssociationListenerDeferrer.hpp +14 -6
- package/worker/include/RTC/SCTP/association/HeartbeatHandler.hpp +18 -14
- package/worker/include/RTC/SCTP/association/PacketSender.hpp +3 -3
- package/worker/include/RTC/SCTP/association/StateCookie.hpp +1 -1
- package/worker/include/RTC/SCTP/association/StreamResetHandler.hpp +49 -35
- package/worker/include/RTC/SCTP/association/TransmissionControlBlock.hpp +114 -31
- package/worker/include/RTC/SCTP/association/{TCBContext.hpp → TransmissionControlBlockContextInterface.hpp} +14 -8
- package/worker/include/RTC/SCTP/packet/Chunk.hpp +3 -3
- package/worker/include/RTC/SCTP/packet/TLV.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/UserData.hpp +61 -17
- package/worker/include/RTC/SCTP/packet/chunks/AnyDataChunk.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/chunks/AnyForwardTsnChunk.hpp +9 -9
- package/worker/include/RTC/SCTP/packet/chunks/AnyInitChunk.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/chunks/DataChunk.hpp +4 -2
- package/worker/include/RTC/SCTP/packet/chunks/ForwardTsnChunk.hpp +3 -3
- package/worker/include/RTC/SCTP/packet/chunks/IDataChunk.hpp +4 -2
- package/worker/include/RTC/SCTP/packet/chunks/IForwardTsnChunk.hpp +3 -3
- package/worker/include/RTC/SCTP/packet/chunks/InitAckChunk.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/chunks/InitChunk.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/chunks/SackChunk.hpp +10 -3
- package/worker/include/RTC/SCTP/packet/chunks/ShutdownChunk.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/errorCauses/InvalidStreamIdentifierErrorCause.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/errorCauses/MissingMandatoryParameterErrorCause.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/errorCauses/NoUserDataErrorCause.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/errorCauses/StaleCookieErrorCause.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/parameters/AddIncomingStreamsRequestParameter.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/parameters/AddOutgoingStreamsRequestParameter.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/parameters/CookiePreservativeParameter.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/parameters/IncomingSsnResetRequestParameter.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/parameters/OutgoingSsnResetRequestParameter.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/parameters/ReconfigurationResponseParameter.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/parameters/SsnTsnResetRequestParameter.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/parameters/SupportedAddressTypesParameter.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/parameters/SupportedExtensionsParameter.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/parameters/ZeroChecksumAcceptableParameter.hpp +1 -1
- package/worker/include/RTC/SCTP/public/AssociationInterface.hpp +22 -2
- package/worker/include/RTC/SCTP/public/{AssociationListener.hpp → AssociationListenerInterface.hpp} +5 -5
- package/worker/include/RTC/SCTP/public/Message.hpp +26 -10
- package/worker/include/RTC/SCTP/public/SctpOptions.hpp +28 -19
- package/worker/include/RTC/SCTP/public/SctpTypes.hpp +21 -0
- package/worker/include/RTC/SCTP/rx/DataTracker.hpp +277 -0
- package/worker/include/RTC/SCTP/rx/InterleavedReassemblyStreams.hpp +116 -0
- package/worker/include/RTC/SCTP/rx/ReassemblyQueue.hpp +202 -0
- package/worker/include/RTC/SCTP/rx/ReassemblyStreamsInterface.hpp +83 -0
- package/worker/include/RTC/SCTP/rx/TraditionalReassemblyStreams.hpp +183 -0
- package/worker/include/RTC/SCTP/tx/OutstandingData.hpp +595 -0
- package/worker/include/RTC/SCTP/tx/RetransmissionErrorCounter.hpp +3 -3
- package/worker/include/RTC/SCTP/tx/RetransmissionQueue.hpp +329 -0
- package/worker/include/RTC/SCTP/tx/RetransmissionTimeout.hpp +11 -10
- package/worker/include/RTC/SCTP/tx/RoundRobinSendQueue.hpp +356 -0
- package/worker/include/RTC/SCTP/tx/SendQueueInterface.hpp +180 -0
- package/worker/include/RTC/SCTP/tx/StreamScheduler.hpp +235 -0
- package/worker/include/RTC/SenderBandwidthEstimator.hpp +5 -1
- package/worker/include/RTC/Serializable.hpp +11 -3
- package/worker/include/RTC/SimpleConsumer.hpp +1 -2
- package/worker/include/RTC/SimulcastConsumer.hpp +1 -2
- package/worker/include/RTC/SvcConsumer.hpp +1 -2
- package/worker/include/RTC/TcpServer.hpp +2 -2
- package/worker/include/RTC/Transport.hpp +65 -86
- package/worker/include/RTC/TransportCongestionControlClient.hpp +8 -5
- package/worker/include/RTC/TransportCongestionControlServer.hpp +8 -5
- package/worker/include/RTC/TransportTuple.hpp +1 -1
- package/worker/include/RTC/UdpSocket.hpp +1 -1
- package/worker/include/RTC/WebRtcServer.hpp +3 -3
- package/worker/include/RTC/WebRtcTransport.hpp +5 -7
- package/worker/include/Settings.hpp +2 -3
- package/worker/include/Shared.hpp +64 -0
- package/worker/include/SharedInterface.hpp +77 -0
- package/worker/include/Utils/UnwrappedSequenceNumber.hpp +270 -0
- package/worker/include/Utils.hpp +10 -4
- package/worker/include/Worker.hpp +6 -6
- package/worker/include/common.hpp +12 -12
- package/worker/include/handles/BackoffTimerHandle.hpp +28 -67
- package/worker/include/handles/BackoffTimerHandleInterface.hpp +123 -0
- package/worker/include/handles/TimerHandle.hpp +29 -20
- package/worker/include/handles/TimerHandleInterface.hpp +43 -0
- package/worker/meson.build +45 -29
- package/worker/meson_options.txt +2 -1
- package/worker/mocks/include/Channel/MockChannelMessageRegistrator.hpp +45 -0
- package/worker/mocks/include/MockShared.hpp +90 -0
- package/worker/mocks/include/RTC/SCTP/association/MockAssociationListener.hpp +308 -0
- package/worker/mocks/include/RTC/SCTP/association/MockTransmissionControlBlockContext.hpp +183 -0
- package/worker/mocks/include/RTC/SCTP/tx/MockSendQueue.hpp +262 -0
- package/worker/mocks/include/handles/MockBackoffTimerHandle.hpp +153 -0
- package/worker/mocks/include/handles/MockTimerHandle.hpp +74 -0
- package/worker/mocks/include/mockTypes.hpp +15 -0
- package/worker/mocks/src/Channel/MockChannelMessageRegistrator.cpp +128 -0
- package/worker/mocks/src/MockShared.cpp +46 -0
- package/worker/mocks/src/RTC/SCTP/association/MockTransmissionControlBlockContext.cpp +39 -0
- package/worker/mocks/src/handles/MockBackoffTimerHandle.cpp +127 -0
- package/worker/scripts/clang-scripts.mjs +5 -1
- package/worker/scripts/package-lock.json +6 -7
- package/worker/src/Channel/ChannelMessageRegistrator.cpp +125 -0
- package/worker/src/Channel/ChannelSocket.cpp +3 -4
- package/worker/src/DepLibUV.cpp +1 -1
- package/worker/src/DepLibUring.cpp +3 -1
- package/worker/src/Logger.cpp +1 -1
- package/worker/src/MediaSoupErrors.cpp +2 -0
- package/worker/src/RTC/ActiveSpeakerObserver.cpp +14 -14
- package/worker/src/RTC/AudioLevelObserver.cpp +12 -10
- package/worker/src/RTC/Consumer.cpp +28 -26
- package/worker/src/RTC/DataConsumer.cpp +61 -71
- package/worker/src/RTC/DataProducer.cpp +16 -11
- package/worker/src/RTC/DirectTransport.cpp +21 -20
- package/worker/src/RTC/DtlsTransport.cpp +4 -4
- package/worker/src/RTC/ICE/IceServer.cpp +6 -5
- package/worker/src/RTC/ICE/StunPacket.cpp +1 -1
- package/worker/src/RTC/KeyFrameRequestManager.cpp +15 -15
- package/worker/src/RTC/NackGenerator.cpp +6 -6
- package/worker/src/RTC/PipeConsumer.cpp +6 -5
- package/worker/src/RTC/PipeTransport.cpp +9 -22
- package/worker/src/RTC/PlainTransport.cpp +16 -28
- package/worker/src/RTC/Producer.cpp +40 -39
- package/worker/src/RTC/RTCP/FeedbackPsAfb.cpp +1 -1
- package/worker/src/RTC/RTCP/FeedbackPsRpsi.cpp +1 -2
- package/worker/src/RTC/RTCP/FeedbackRtpTransport.cpp +1 -1
- package/worker/src/RTC/RTCP/XR.cpp +1 -1
- package/worker/src/RTC/RTP/Packet.cpp +3 -1
- package/worker/src/RTC/RTP/ProbationGenerator.cpp +4 -4
- package/worker/src/RTC/RTP/RetransmissionBuffer.cpp +1 -1
- package/worker/src/RTC/RTP/RtpStream.cpp +17 -10
- package/worker/src/RTC/RTP/RtpStreamRecv.cpp +16 -14
- package/worker/src/RTC/RTP/RtpStreamSend.cpp +12 -9
- package/worker/src/RTC/RTP/RtxStream.cpp +7 -7
- package/worker/src/RTC/RTP/SharedPacket.cpp +3 -3
- package/worker/src/RTC/RateCalculator.cpp +1 -2
- package/worker/src/RTC/Router.cpp +61 -38
- package/worker/src/RTC/RtpDictionaries/RtpCodecMimeType.cpp +1 -1
- package/worker/src/RTC/RtpObserver.cpp +2 -1
- package/worker/src/RTC/SCTP/LICENSE +44 -0
- package/worker/src/RTC/SCTP/association/Association.cpp +417 -411
- package/worker/src/RTC/SCTP/association/AssociationListenerDeferrer.cpp +46 -13
- package/worker/src/RTC/SCTP/association/HeartbeatHandler.cpp +47 -43
- package/worker/src/RTC/SCTP/association/PacketSender.cpp +8 -8
- package/worker/src/RTC/SCTP/association/StreamResetHandler.cpp +113 -101
- package/worker/src/RTC/SCTP/association/TransmissionControlBlock.cpp +291 -62
- package/worker/src/RTC/SCTP/packet/Chunk.cpp +5 -1
- package/worker/src/RTC/SCTP/packet/Packet.cpp +8 -1
- package/worker/src/RTC/SCTP/packet/chunks/DataChunk.cpp +17 -0
- package/worker/src/RTC/SCTP/packet/chunks/ForwardTsnChunk.cpp +4 -4
- package/worker/src/RTC/SCTP/packet/chunks/IDataChunk.cpp +25 -0
- package/worker/src/RTC/SCTP/packet/chunks/IForwardTsnChunk.cpp +10 -7
- package/worker/src/RTC/SCTP/packet/chunks/SackChunk.cpp +21 -4
- package/worker/src/RTC/SCTP/packet/chunks/ShutdownCompleteChunk.cpp +1 -1
- package/worker/src/RTC/SCTP/packet/errorCauses/NoUserDataErrorCause.cpp +1 -1
- package/worker/src/RTC/SCTP/packet/errorCauses/ProtocolViolationErrorCause.cpp +2 -2
- package/worker/src/RTC/SCTP/packet/errorCauses/UserInitiatedAbortErrorCause.cpp +1 -1
- package/worker/src/RTC/SCTP/public/Message.cpp +8 -0
- package/worker/src/RTC/SCTP/public/SctpOptions.cpp +90 -0
- package/worker/src/RTC/SCTP/rx/DataTracker.cpp +471 -0
- package/worker/src/RTC/SCTP/rx/InterleavedReassemblyStreams.cpp +327 -0
- package/worker/src/RTC/SCTP/rx/ReassemblyQueue.cpp +288 -0
- package/worker/src/RTC/SCTP/rx/TraditionalReassemblyStreams.cpp +453 -0
- package/worker/src/RTC/SCTP/tx/OutstandingData.cpp +912 -0
- package/worker/src/RTC/SCTP/tx/RetransmissionQueue.cpp +786 -0
- package/worker/src/RTC/SCTP/tx/RetransmissionTimeout.cpp +2 -2
- package/worker/src/RTC/SCTP/tx/RoundRobinSendQueue.cpp +752 -0
- package/worker/src/RTC/SCTP/tx/StreamScheduler.cpp +257 -0
- package/worker/src/RTC/SenderBandwidthEstimator.cpp +7 -5
- package/worker/src/RTC/SimpleConsumer.cpp +11 -11
- package/worker/src/RTC/SimulcastConsumer.cpp +16 -16
- package/worker/src/RTC/SrtpSession.cpp +1 -1
- package/worker/src/RTC/SvcConsumer.cpp +16 -16
- package/worker/src/RTC/TcpConnection.cpp +1 -1
- package/worker/src/RTC/Transport.cpp +497 -563
- package/worker/src/RTC/TransportCongestionControlClient.cpp +9 -8
- package/worker/src/RTC/TransportCongestionControlServer.cpp +5 -5
- package/worker/src/RTC/WebRtcServer.cpp +5 -4
- package/worker/src/RTC/WebRtcTransport.cpp +44 -39
- package/worker/src/Settings.cpp +9 -28
- package/worker/src/Shared.cpp +35 -0
- package/worker/src/Utils/Crypto.cpp +1 -1
- package/worker/src/Utils/String.cpp +1 -1
- package/worker/src/Worker.cpp +19 -48
- package/worker/src/handles/BackoffTimerHandle.cpp +34 -21
- package/worker/src/handles/TimerHandle.cpp +5 -4
- package/worker/src/handles/UdpSocketHandle.cpp +1 -1
- package/worker/src/lib.cpp +17 -16
- package/worker/subprojects/catch2.wrap +6 -6
- package/worker/tasks.py +1 -1
- package/worker/test/include/RTC/ICE/iceCommon.hpp +8 -7
- package/worker/test/include/RTC/RTP/rtpCommon.hpp +7 -6
- package/worker/test/include/RTC/SCTP/sctpCommon.hpp +16 -10
- package/worker/test/include/catch2Macros.hpp +31 -0
- package/worker/test/src/RTC/ICE/TestStunPacket.cpp +3 -3
- package/worker/test/src/RTC/ICE/iceCommon.cpp +2 -2
- package/worker/test/src/RTC/RTP/Codecs/TestVP8.cpp +1 -1
- package/worker/test/src/RTC/RTP/Codecs/TestVP9.cpp +1 -1
- package/worker/test/src/RTC/RTP/TestPacket.cpp +3 -3
- package/worker/test/src/RTC/RTP/TestRtpStreamRecv.cpp +16 -9
- package/worker/test/src/RTC/RTP/TestRtpStreamSend.cpp +38 -23
- package/worker/test/src/RTC/RTP/TestSharedPacket.cpp +1 -1
- package/worker/test/src/RTC/RTP/rtpCommon.cpp +2 -2
- package/worker/test/src/RTC/SCTP/association/TestHeartbeatHandler.cpp +292 -0
- package/worker/test/src/RTC/SCTP/association/TestNegotiatedCapabilities.cpp +1 -1
- package/worker/test/src/RTC/SCTP/association/TestStateCookie.cpp +1 -1
- package/worker/test/src/RTC/SCTP/association/TestTransmissionControlBlock.cpp +99 -0
- package/worker/test/src/RTC/SCTP/packet/TestChunk.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/TestPacket.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/chunks/TestAbortAssociationChunk.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/chunks/TestCookieAckChunk.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/chunks/TestCookieEchoChunk.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/chunks/TestDataChunk.cpp +77 -7
- package/worker/test/src/RTC/SCTP/packet/chunks/TestForwardTsnChunk.cpp +35 -26
- package/worker/test/src/RTC/SCTP/packet/chunks/TestHeartbeatAckChunk.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/chunks/TestHeartbeatRequestChunk.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/chunks/TestIDataChunk.cpp +77 -7
- package/worker/test/src/RTC/SCTP/packet/chunks/TestIForwardTsnChunk.cpp +59 -27
- package/worker/test/src/RTC/SCTP/packet/chunks/TestInitAckChunk.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/chunks/TestInitChunk.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/chunks/TestOperationErrorChunk.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/chunks/TestReConfigChunk.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/chunks/TestSackChunk.cpp +73 -35
- package/worker/test/src/RTC/SCTP/packet/chunks/TestShutdownAckChunk.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/chunks/TestShutdownChunk.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/chunks/TestShutdownCompleteChunk.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/chunks/TestUnknownChunk.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestCookieReceivedWhileShuttingDownErrorCause.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestInvalidMandatoryParameterErrorCause.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestInvalidStreamIdentifierErrorCause.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestMissingMandatoryParameterErrorCause.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestNoUserDataErrorCause.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestOutOfResourceErrorCause.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestProtocolViolationErrorCause.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestRestartOfAnAssociationWithNewAddressesErrorCause.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestStaleCookieErrorCause.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnknownErrorCause.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnrecognizedChunkTypeErrorCause.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnrecognizedParametersErrorCause.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnresolvableAddressErrorCause.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUserInitiatedAbortErrorCause.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestAddIncomingStreamsRequestParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestAddOutgoingStreamsRequestParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestCookiePreservativeParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestForwardTsnSupportedParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestHeartbeatInfoParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestIPv4AddressParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestIPv6AddressParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestIncomingSsnResetRequestParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestOutgoingSsnResetRequestParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestReconfigurationResponseParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestSsnTsnResetRequestParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestStateCookieParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestSupportedAddressTypesParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestSupportedExtensionsParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestUnknownParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestUnrecognizedParameterParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestZeroChecksumAcceptableParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/rx/TestDataTracker.cpp +1117 -0
- package/worker/test/src/RTC/SCTP/rx/TestInterleavedReassemblyStreams.cpp +565 -0
- package/worker/test/src/RTC/SCTP/rx/TestReassemblyQueue.cpp +557 -0
- package/worker/test/src/RTC/SCTP/rx/TestTraditionalReassemblyStreams.cpp +555 -0
- package/worker/test/src/RTC/SCTP/sctpCommon.cpp +2 -2
- package/worker/test/src/RTC/SCTP/tx/TestOutstandingData.cpp +1248 -0
- package/worker/test/src/RTC/SCTP/tx/TestRetransmissionErrorCounter.cpp +4 -0
- package/worker/test/src/RTC/SCTP/tx/TestRetransmissionQueue.cpp +2218 -0
- package/worker/test/src/RTC/SCTP/tx/TestRetransmissionTimeout.cpp +33 -33
- package/worker/test/src/RTC/SCTP/tx/TestRoundRobinSendQueue.cpp +1130 -0
- package/worker/test/src/RTC/SCTP/tx/TestStreamScheduler.cpp +721 -0
- package/worker/test/src/RTC/TestKeyFrameRequestManager.cpp +20 -30
- package/worker/test/src/RTC/TestNackGenerator.cpp +11 -8
- package/worker/test/src/RTC/TestRateCalculator.cpp +6 -7
- package/worker/test/src/RTC/TestSimpleConsumer.cpp +11 -11
- package/worker/test/src/RTC/TestTransportCongestionControlServer.cpp +15 -3
- package/worker/test/src/Utils/TestByte.cpp +98 -0
- package/worker/test/src/{RTC/SCTP/common → Utils}/TestUnwrappedSequenceNumber.cpp +2 -2
- package/worker/test/src/testHelpers.cpp +1 -1
- package/worker/test/src/tests.cpp +0 -12
- package/node/lib/fbs/consumer/degrade-request.d.ts +0 -30
- package/node/lib/fbs/consumer/degrade-request.d.ts.map +0 -1
- package/node/lib/fbs/consumer/degrade-request.js +0 -91
- package/node/lib/fbs/consumer/enable-delay-and-loss-request.d.ts +0 -24
- package/node/lib/fbs/consumer/enable-delay-and-loss-request.d.ts.map +0 -1
- package/node/lib/fbs/consumer/enable-delay-and-loss-request.js +0 -69
- package/node/lib/fbs/producer/degrade-request.d.ts +0 -30
- package/node/lib/fbs/producer/degrade-request.d.ts.map +0 -1
- package/node/lib/fbs/producer/degrade-request.js +0 -91
- package/node/lib/fbs/worker/close-notification.d.ts +0 -18
- package/node/lib/fbs/worker/close-notification.d.ts.map +0 -1
- package/node/lib/fbs/worker/close-notification.js +0 -45
- package/node/lib/fbs/worker/close-request.d.ts +0 -18
- package/node/lib/fbs/worker/close-request.d.ts.map +0 -1
- package/node/lib/fbs/worker/close-request.js +0 -45
- package/node/lib/fbs/worker/close-worker-notification.d.ts +0 -18
- package/node/lib/fbs/worker/close-worker-notification.d.ts.map +0 -1
- package/node/lib/fbs/worker/close-worker-notification.js +0 -45
- package/worker/include/ChannelMessageRegistrator.hpp +0 -30
- package/worker/include/DepUsrSCTP.hpp +0 -48
- package/worker/include/RTC/SCTP/TODO_SCTP.md +0 -43
- package/worker/include/RTC/SCTP/common/UnwrappedSequenceNumber.hpp +0 -274
- package/worker/include/RTC/SctpAssociation.hpp +0 -147
- package/worker/include/RTC/Shared.hpp +0 -23
- package/worker/src/ChannelMessageRegistrator.cpp +0 -119
- package/worker/src/DepUsrSCTP.cpp +0 -277
- package/worker/src/RTC/SctpAssociation.cpp +0 -1175
- package/worker/src/RTC/Shared.cpp +0 -23
- package/worker/subprojects/usrsctp.wrap +0 -8
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
#include "Channel/ChannelRequest.hpp"
|
|
5
5
|
#include "Channel/ChannelSocket.hpp"
|
|
6
6
|
#include "FBS/worker.h"
|
|
7
|
+
#include "handles/SignalHandle.hpp"
|
|
7
8
|
#include "RTC/Router.hpp"
|
|
8
|
-
#include "RTC/Shared.hpp"
|
|
9
9
|
#include "RTC/WebRtcServer.hpp"
|
|
10
|
-
#include "
|
|
10
|
+
#include "SharedInterface.hpp"
|
|
11
11
|
#include <flatbuffers/flatbuffer_builder.h>
|
|
12
12
|
#include <absl/container/flat_hash_map.h>
|
|
13
13
|
#include <string>
|
|
@@ -17,7 +17,7 @@ class Worker : public Channel::ChannelSocket::Listener,
|
|
|
17
17
|
public RTC::Router::Listener
|
|
18
18
|
{
|
|
19
19
|
public:
|
|
20
|
-
explicit Worker(Channel::ChannelSocket* channel);
|
|
20
|
+
explicit Worker(Channel::ChannelSocket* channel, SharedInterface* shared);
|
|
21
21
|
~Worker() override;
|
|
22
22
|
|
|
23
23
|
private:
|
|
@@ -26,8 +26,8 @@ private:
|
|
|
26
26
|
flatbuffers::Offset<FBS::Worker::ResourceUsageResponse> FillBufferResourceUsage(
|
|
27
27
|
flatbuffers::FlatBufferBuilder& builder) const;
|
|
28
28
|
void SetNewRouterId(std::string& routerId) const;
|
|
29
|
-
RTC::WebRtcServer*
|
|
30
|
-
RTC::Router*
|
|
29
|
+
RTC::WebRtcServer* AssertAndGetWebRtcServerById(const std::string& webRtcServerId) const;
|
|
30
|
+
RTC::Router* AssertAndGetRouterById(const std::string& routerId) const;
|
|
31
31
|
void CheckNoWebRtcServer(const std::string& webRtcServerId) const;
|
|
32
32
|
void CheckNoRouter(const std::string& routerId) const;
|
|
33
33
|
|
|
@@ -53,7 +53,7 @@ private:
|
|
|
53
53
|
Channel::ChannelSocket* channel{ nullptr };
|
|
54
54
|
// Allocated by this.
|
|
55
55
|
SignalHandle* signalHandle{ nullptr };
|
|
56
|
-
|
|
56
|
+
SharedInterface* shared{ nullptr };
|
|
57
57
|
absl::flat_hash_map<std::string, RTC::WebRtcServer*> mapWebRtcServers;
|
|
58
58
|
absl::flat_hash_map<std::string, RTC::Router*> mapRouters;
|
|
59
59
|
// Others.
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
#ifndef MS_COMMON_HPP
|
|
2
2
|
#define MS_COMMON_HPP
|
|
3
3
|
|
|
4
|
-
#include <algorithm> //
|
|
5
|
-
#include <cinttypes>
|
|
6
|
-
#include <cstddef>
|
|
7
|
-
#include <cstdint>
|
|
8
|
-
#include <functional> //
|
|
9
|
-
#include <memory> //
|
|
10
|
-
#include <optional>
|
|
11
|
-
#include <utility>
|
|
4
|
+
#include <algorithm> // std::transform(), std::find(), std::min(), std::max(), std::copy(), std::clamp(), std::ranges
|
|
5
|
+
#include <cinttypes> // PRIu64, etc
|
|
6
|
+
#include <cstddef> // size_t
|
|
7
|
+
#include <cstdint> // uint8_t, etc
|
|
8
|
+
#include <functional> // std::function
|
|
9
|
+
#include <memory> // std::addressof(), std::unique_ptr(), etc
|
|
10
|
+
#include <optional>
|
|
11
|
+
#include <utility> // std::pair, std::move(), std::piecewise_construct
|
|
12
12
|
#ifdef _WIN32
|
|
13
13
|
#include <winsock2.h>
|
|
14
14
|
// Avoid uv/win.h: error C2628 'intptr_t' followed by 'int' is illegal.
|
|
15
15
|
#if !defined(_SSIZE_T_) && !defined(_SSIZE_T_DEFINED)
|
|
16
|
-
#include <BaseTsd.h>
|
|
16
|
+
#include <BaseTsd.h>
|
|
17
17
|
typedef SSIZE_T ssize_t;
|
|
18
18
|
#define SSIZE_MAX INTPTR_MAX
|
|
19
19
|
#define _SSIZE_T_
|
|
20
20
|
#define _SSIZE_T_DEFINED
|
|
21
21
|
#endif
|
|
22
22
|
#else
|
|
23
|
-
#include <arpa/inet.h> //
|
|
24
|
-
#include <netinet/in.h> //
|
|
25
|
-
#include <sys/socket.h> //
|
|
23
|
+
#include <arpa/inet.h> // htonl(), htons(), ntohl(), ntohs()
|
|
24
|
+
#include <netinet/in.h> // sockaddr_in, sockaddr_in6
|
|
25
|
+
#include <sys/socket.h> // struct sockaddr, struct sockaddr_storage, AF_INET, AF_INET6
|
|
26
26
|
#endif
|
|
27
27
|
|
|
28
28
|
// This is a macro to silence false warnings in GCC in switch() blocks with FBS
|
|
@@ -2,68 +2,22 @@
|
|
|
2
2
|
#define MS_BACKOFF_TIMER_HANDLE_HPP
|
|
3
3
|
|
|
4
4
|
#include "common.hpp"
|
|
5
|
+
#include "handles/BackoffTimerHandleInterface.hpp"
|
|
5
6
|
#include "handles/TimerHandle.hpp"
|
|
6
|
-
#include
|
|
7
|
+
#include "handles/TimerHandleInterface.hpp"
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
public:
|
|
11
|
-
class Listener
|
|
12
|
-
{
|
|
13
|
-
public:
|
|
14
|
-
virtual ~Listener() = default;
|
|
15
|
-
|
|
16
|
-
public:
|
|
17
|
-
/**
|
|
18
|
-
* Invoked on timeout expiration. The parent can modify the base
|
|
19
|
-
* timeout given as reference and affect the next timeout duration.
|
|
20
|
-
*
|
|
21
|
-
* @remarks
|
|
22
|
-
* - If the caller deletes this BackoffTimer instance within the callback
|
|
23
|
-
* it must signal it be setting `stop` to true.
|
|
24
|
-
*/
|
|
25
|
-
virtual void OnTimer(BackoffTimerHandle* backoffTimer, uint64_t& baseTimeoutMs, bool& stop) = 0;
|
|
26
|
-
};
|
|
9
|
+
// Forward declaration.
|
|
10
|
+
class Shared;
|
|
27
11
|
|
|
28
|
-
public
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
FIXED,
|
|
33
|
-
// An exponential backoff is used for restarts, with a 2x multiplier,
|
|
34
|
-
// meaning that every restart will use a duration that is twice as long as
|
|
35
|
-
// the previous.
|
|
36
|
-
EXPONENTIAL,
|
|
37
|
-
};
|
|
12
|
+
class BackoffTimerHandle : public BackoffTimerHandleInterface, public TimerHandleInterface::Listener
|
|
13
|
+
{
|
|
14
|
+
// Only Shared class can invoke the constructor.
|
|
15
|
+
friend class Shared;
|
|
38
16
|
|
|
39
|
-
|
|
40
|
-
|
|
17
|
+
private:
|
|
18
|
+
explicit BackoffTimerHandle(BackoffTimerHandleOptions options);
|
|
41
19
|
|
|
42
20
|
public:
|
|
43
|
-
explicit BackoffTimerHandle(
|
|
44
|
-
/**
|
|
45
|
-
* Listener on which OnTimer() callback will be invoked.
|
|
46
|
-
*/
|
|
47
|
-
Listener* listener,
|
|
48
|
-
/**
|
|
49
|
-
* Base timeout duration (ms).
|
|
50
|
-
*/
|
|
51
|
-
uint64_t baseTimeoutMs,
|
|
52
|
-
/**
|
|
53
|
-
* Backoff algorithm.
|
|
54
|
-
*/
|
|
55
|
-
BackoffAlgorithm backoffAlgorithm,
|
|
56
|
-
/**
|
|
57
|
-
* Maximum duration of the backoff timeout (ms). If no value is given, no
|
|
58
|
-
* limit is set.
|
|
59
|
-
*/
|
|
60
|
-
std::optional<uint64_t> maxBackoffTimeoutMs,
|
|
61
|
-
/**
|
|
62
|
-
* Maximum number of restarts. If no value is given, it will restart
|
|
63
|
-
* forever until stopped.
|
|
64
|
-
*/
|
|
65
|
-
std::optional<size_t> maxRestarts);
|
|
66
|
-
|
|
67
21
|
BackoffTimerHandle& operator=(const BackoffTimerHandle&) = delete;
|
|
68
22
|
|
|
69
23
|
BackoffTimerHandle(const BackoffTimerHandle&) = delete;
|
|
@@ -75,35 +29,41 @@ public:
|
|
|
75
29
|
* Start the BackoffTimer (if it's stopped) or restart it (if already
|
|
76
30
|
* running). It will reset the timeout count.
|
|
77
31
|
*/
|
|
78
|
-
void Start();
|
|
32
|
+
void Start() override;
|
|
79
33
|
|
|
80
34
|
/**
|
|
81
35
|
* Stop the BackoffTimer. It will reset the timeout count.
|
|
82
36
|
*/
|
|
83
|
-
void Stop();
|
|
37
|
+
void Stop() override;
|
|
84
38
|
|
|
85
39
|
/**
|
|
86
40
|
* Set the base timeout duration. It will be applied after the next timeout
|
|
87
41
|
* and effective duration can be larger if backoff algorithm is exponential.
|
|
88
42
|
*/
|
|
89
|
-
void SetBaseTimeoutMs(uint64_t baseTimeoutMs);
|
|
43
|
+
void SetBaseTimeoutMs(uint64_t baseTimeoutMs) override;
|
|
90
44
|
|
|
91
45
|
/**
|
|
92
46
|
* Whether the BackoffTimer is running. Useful to check if this BackoffTimer
|
|
93
47
|
* will timeout again within the OnTimer() callback.
|
|
94
48
|
*/
|
|
95
|
-
bool IsRunning() const
|
|
49
|
+
bool IsRunning() const override
|
|
96
50
|
{
|
|
97
51
|
return this->running;
|
|
98
52
|
}
|
|
99
53
|
|
|
54
|
+
const std::string GetLabel() const override
|
|
55
|
+
{
|
|
56
|
+
return this->label;
|
|
57
|
+
}
|
|
58
|
+
|
|
100
59
|
/**
|
|
101
60
|
* Maximum number of restarts.
|
|
102
61
|
*
|
|
103
62
|
* @remarks
|
|
104
|
-
* - If `maxRestarts` was not given in the constructor, this method returns
|
|
63
|
+
* - If `maxRestarts` was not given in the constructor, this method returns
|
|
64
|
+
* `std::nullopt`.
|
|
105
65
|
*/
|
|
106
|
-
std::optional<size_t> GetMaxRestarts() const
|
|
66
|
+
std::optional<size_t> GetMaxRestarts() const override
|
|
107
67
|
{
|
|
108
68
|
return this->maxRestarts;
|
|
109
69
|
}
|
|
@@ -111,7 +71,7 @@ public:
|
|
|
111
71
|
/**
|
|
112
72
|
* Number of times the timer has expired.
|
|
113
73
|
*/
|
|
114
|
-
size_t GetExpirationCount() const
|
|
74
|
+
size_t GetExpirationCount() const override
|
|
115
75
|
{
|
|
116
76
|
return this->expirationCount;
|
|
117
77
|
}
|
|
@@ -119,14 +79,15 @@ public:
|
|
|
119
79
|
private:
|
|
120
80
|
uint64_t ComputeNextTimeoutMs() const;
|
|
121
81
|
|
|
122
|
-
/* Pure virtual methods inherited from
|
|
82
|
+
/* Pure virtual methods inherited from TimerHandleInterface::Listener. */
|
|
123
83
|
public:
|
|
124
|
-
void OnTimer(
|
|
84
|
+
void OnTimer(TimerHandleInterface* timer) override;
|
|
125
85
|
|
|
126
86
|
private:
|
|
127
87
|
// Passed by argument.
|
|
128
|
-
Listener* listener{ nullptr };
|
|
129
|
-
|
|
88
|
+
BackoffTimerHandleInterface::Listener* listener{ nullptr };
|
|
89
|
+
const std::string label;
|
|
90
|
+
uint64_t baseTimeoutMs;
|
|
130
91
|
BackoffAlgorithm backoffAlgorithm;
|
|
131
92
|
std::optional<uint64_t> maxBackoffTimeoutMs;
|
|
132
93
|
std::optional<size_t> maxRestarts;
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
#ifndef MS_BACKOFF_TIMER_HANDLE_INTERFACE_HPP
|
|
2
|
+
#define MS_BACKOFF_TIMER_HANDLE_INTERFACE_HPP
|
|
3
|
+
|
|
4
|
+
#include "common.hpp"
|
|
5
|
+
#include <limits> // std::numeric_limits()
|
|
6
|
+
#include <string>
|
|
7
|
+
|
|
8
|
+
class BackoffTimerHandleInterface
|
|
9
|
+
{
|
|
10
|
+
public:
|
|
11
|
+
class Listener
|
|
12
|
+
{
|
|
13
|
+
public:
|
|
14
|
+
virtual ~Listener() = default;
|
|
15
|
+
|
|
16
|
+
public:
|
|
17
|
+
/**
|
|
18
|
+
* Invoked on timeout expiration. The parent can modify the base
|
|
19
|
+
* timeout given as reference and affect the next timeout duration.
|
|
20
|
+
*
|
|
21
|
+
* @remarks
|
|
22
|
+
* - If the caller deletes this BackoffTimer instance within the callback
|
|
23
|
+
* it must signal it be setting `stop` to true.
|
|
24
|
+
*/
|
|
25
|
+
virtual void OnBackoffTimer(
|
|
26
|
+
BackoffTimerHandleInterface* backoffTimer, uint64_t& baseTimeoutMs, bool& stop) = 0;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
public:
|
|
30
|
+
enum class BackoffAlgorithm : uint8_t
|
|
31
|
+
{
|
|
32
|
+
// The base duration will be used for any restart.
|
|
33
|
+
FIXED,
|
|
34
|
+
// An exponential backoff is used for restarts, with a 2x multiplier,
|
|
35
|
+
// meaning that every restart will use a duration that is twice as long as
|
|
36
|
+
// the previous.
|
|
37
|
+
EXPONENTIAL,
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
public:
|
|
41
|
+
struct BackoffTimerHandleOptions
|
|
42
|
+
{
|
|
43
|
+
/**
|
|
44
|
+
* Listener on which `OnBackoffTimer()` callback will be invoked.
|
|
45
|
+
*/
|
|
46
|
+
BackoffTimerHandleInterface::Listener* listener{ nullptr };
|
|
47
|
+
/**
|
|
48
|
+
* Label.
|
|
49
|
+
*/
|
|
50
|
+
std::string label;
|
|
51
|
+
/**
|
|
52
|
+
* Base timeout duration (ms).
|
|
53
|
+
*/
|
|
54
|
+
uint64_t baseTimeoutMs;
|
|
55
|
+
/**
|
|
56
|
+
* Backoff algorithm.
|
|
57
|
+
*/
|
|
58
|
+
BackoffAlgorithm backoffAlgorithm;
|
|
59
|
+
/**
|
|
60
|
+
* Maximum duration of the backoff timeout (ms). If no value is given, no
|
|
61
|
+
* limit is set.
|
|
62
|
+
*/
|
|
63
|
+
std::optional<uint64_t> maxBackoffTimeoutMs;
|
|
64
|
+
/**
|
|
65
|
+
* Maximum number of restarts. If no value is given, it will restart
|
|
66
|
+
* forever until stopped.
|
|
67
|
+
*/
|
|
68
|
+
std::optional<size_t> maxRestarts;
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
public:
|
|
72
|
+
static constexpr uint64_t MaxTimeoutMs{ std::numeric_limits<uint64_t>::max() / 2 };
|
|
73
|
+
|
|
74
|
+
public:
|
|
75
|
+
BackoffTimerHandleInterface() = default;
|
|
76
|
+
|
|
77
|
+
BackoffTimerHandleInterface& operator=(const BackoffTimerHandleInterface&) = delete;
|
|
78
|
+
|
|
79
|
+
BackoffTimerHandleInterface(const BackoffTimerHandleInterface&) = delete;
|
|
80
|
+
|
|
81
|
+
virtual ~BackoffTimerHandleInterface() = default;
|
|
82
|
+
|
|
83
|
+
public:
|
|
84
|
+
/**
|
|
85
|
+
* Start the BackoffTimer (if it's stopped) or restart it (if already
|
|
86
|
+
* running). It will reset the timeout count.
|
|
87
|
+
*/
|
|
88
|
+
virtual void Start() = 0;
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Stop the BackoffTimer. It will reset the timeout count.
|
|
92
|
+
*/
|
|
93
|
+
virtual void Stop() = 0;
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Set the base timeout duration. It will be applied after the next timeout
|
|
97
|
+
* and effective duration can be larger if backoff algorithm is exponential.
|
|
98
|
+
*/
|
|
99
|
+
virtual void SetBaseTimeoutMs(uint64_t baseTimeoutMs) = 0;
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Whether the BackoffTimer is running. Useful to check if this BackoffTimer
|
|
103
|
+
* will timeout again within the OnTimer() callback.
|
|
104
|
+
*/
|
|
105
|
+
virtual bool IsRunning() const = 0;
|
|
106
|
+
|
|
107
|
+
virtual const std::string GetLabel() const = 0;
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Maximum number of restarts.
|
|
111
|
+
*
|
|
112
|
+
* @remarks
|
|
113
|
+
* - If `maxRestarts` was not given in the constructor, this method returns 0.
|
|
114
|
+
*/
|
|
115
|
+
virtual std::optional<size_t> GetMaxRestarts() const = 0;
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Number of times the timer has expired.
|
|
119
|
+
*/
|
|
120
|
+
virtual size_t GetExpirationCount() const = 0;
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
#endif
|
|
@@ -2,40 +2,49 @@
|
|
|
2
2
|
#define MS_TIMER_HANDLE_HPP
|
|
3
3
|
|
|
4
4
|
#include "common.hpp"
|
|
5
|
+
#include "handles/TimerHandleInterface.hpp"
|
|
5
6
|
#include <uv.h>
|
|
6
7
|
|
|
7
|
-
|
|
8
|
+
// Forward declaration.
|
|
9
|
+
class Shared;
|
|
10
|
+
class BackoffTimerHandle;
|
|
11
|
+
|
|
12
|
+
class TimerHandle : public TimerHandleInterface
|
|
8
13
|
{
|
|
9
|
-
|
|
10
|
-
class
|
|
11
|
-
|
|
12
|
-
public:
|
|
13
|
-
virtual ~Listener() = default;
|
|
14
|
+
// Only Shared and BackoffTimerHandle classes can invoke the constructor.
|
|
15
|
+
friend class Shared;
|
|
16
|
+
friend class BackoffTimerHandle;
|
|
14
17
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
};
|
|
18
|
+
private:
|
|
19
|
+
explicit TimerHandle(TimerHandleInterface::Listener* listener);
|
|
18
20
|
|
|
19
21
|
public:
|
|
20
|
-
explicit TimerHandle(Listener* listener);
|
|
21
22
|
TimerHandle& operator=(const TimerHandle&) = delete;
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
|
|
24
|
+
TimerHandle(const TimerHandle&) = delete;
|
|
25
|
+
|
|
26
|
+
~TimerHandle() override;
|
|
24
27
|
|
|
25
28
|
public:
|
|
26
|
-
void Start(uint64_t timeout, uint64_t repeat = 0);
|
|
27
|
-
|
|
28
|
-
void
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
void Start(uint64_t timeout, uint64_t repeat = 0) override;
|
|
30
|
+
|
|
31
|
+
void Stop() override;
|
|
32
|
+
|
|
33
|
+
void Restart() override;
|
|
34
|
+
|
|
35
|
+
void Restart(uint64_t timeout, uint64_t repeat = 0) override;
|
|
36
|
+
|
|
37
|
+
uint64_t GetTimeout() const override
|
|
31
38
|
{
|
|
32
39
|
return this->timeout;
|
|
33
40
|
}
|
|
34
|
-
|
|
41
|
+
|
|
42
|
+
uint64_t GetRepeat() const override
|
|
35
43
|
{
|
|
36
44
|
return this->repeat;
|
|
37
45
|
}
|
|
38
|
-
|
|
46
|
+
|
|
47
|
+
bool IsActive() const override
|
|
39
48
|
{
|
|
40
49
|
return uv_is_active(reinterpret_cast<uv_handle_t*>(this->uvHandle)) != 0;
|
|
41
50
|
}
|
|
@@ -49,7 +58,7 @@ public:
|
|
|
49
58
|
|
|
50
59
|
private:
|
|
51
60
|
// Passed by argument.
|
|
52
|
-
Listener* listener{ nullptr };
|
|
61
|
+
TimerHandleInterface::Listener* listener{ nullptr };
|
|
53
62
|
// Allocated by this.
|
|
54
63
|
uv_timer_t* uvHandle{ nullptr };
|
|
55
64
|
// Others.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
#ifndef MS_TIMER_HANDLE_INTERFACE_HPP
|
|
2
|
+
#define MS_TIMER_HANDLE_INTERFACE_HPP
|
|
3
|
+
|
|
4
|
+
#include "common.hpp"
|
|
5
|
+
|
|
6
|
+
class TimerHandleInterface
|
|
7
|
+
{
|
|
8
|
+
public:
|
|
9
|
+
class Listener
|
|
10
|
+
{
|
|
11
|
+
public:
|
|
12
|
+
virtual ~Listener() = default;
|
|
13
|
+
|
|
14
|
+
public:
|
|
15
|
+
virtual void OnTimer(TimerHandleInterface* timer) = 0;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
public:
|
|
19
|
+
TimerHandleInterface() = default;
|
|
20
|
+
|
|
21
|
+
TimerHandleInterface& operator=(const TimerHandleInterface&) = delete;
|
|
22
|
+
|
|
23
|
+
TimerHandleInterface(const TimerHandleInterface&) = delete;
|
|
24
|
+
|
|
25
|
+
virtual ~TimerHandleInterface() = default;
|
|
26
|
+
|
|
27
|
+
public:
|
|
28
|
+
virtual void Start(uint64_t timeout, uint64_t repeat = 0) = 0;
|
|
29
|
+
|
|
30
|
+
virtual void Stop() = 0;
|
|
31
|
+
|
|
32
|
+
virtual void Restart() = 0;
|
|
33
|
+
|
|
34
|
+
virtual void Restart(uint64_t timeout, uint64_t repeat = 0) = 0;
|
|
35
|
+
|
|
36
|
+
virtual uint64_t GetTimeout() const = 0;
|
|
37
|
+
|
|
38
|
+
virtual uint64_t GetRepeat() const = 0;
|
|
39
|
+
|
|
40
|
+
virtual bool IsActive() const = 0;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
#endif
|