@observertc/samples-encoder
Version:
ObserveRTC Library for Encoding Samples
127 lines (126 loc) • 7.44 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.IceCandidatePairStatsEnumEncoder = exports.IceCandidatePairEncoder = void 0;
const utils_1 = require("./utils");
const utils_2 = require("./utils");
const OutputSamples_1 = require("./OutputSamples");
const OutputSamples_2 = require("./OutputSamples");
class IceCandidatePairEncoder {
constructor(attachmentsEncoder) {
this._visited = false;
this._availableIncomingBitrateEncoder = new utils_2.NumberToNumberEncoder();
this._availableOutgoingBitrateEncoder = new utils_2.NumberToNumberEncoder();
this._bytesDiscardedOnSendEncoder = new utils_1.NumberToBigIntEncoder();
this._bytesReceivedEncoder = new utils_1.NumberToBigIntEncoder();
this._bytesSentEncoder = new utils_1.NumberToBigIntEncoder();
this._consentRequestsSentEncoder = new utils_2.NumberToNumberEncoder();
this._currentRoundTripTimeEncoder = new utils_2.NumberToNumberEncoder();
this._lastPacketReceivedTimestampEncoder = new utils_2.NumberToNumberEncoder();
this._lastPacketSentTimestampEncoder = new utils_2.NumberToNumberEncoder();
this._localCandidateIdEncoder = new utils_2.StringToStringEncoder();
this._nominatedEncoder = new utils_1.BooleanToBooleanEncoder();
this._packetsDiscardedOnSendEncoder = new utils_2.NumberToNumberEncoder();
this._packetsReceivedEncoder = new utils_2.NumberToNumberEncoder();
this._packetsSentEncoder = new utils_2.NumberToNumberEncoder();
this._remoteCandidateIdEncoder = new utils_2.StringToStringEncoder();
this._requestsReceivedEncoder = new utils_2.NumberToNumberEncoder();
this._requestsSentEncoder = new utils_2.NumberToNumberEncoder();
this._responsesReceivedEncoder = new utils_2.NumberToNumberEncoder();
this._responsesSentEncoder = new utils_2.NumberToNumberEncoder();
this._timestampEncoder = new utils_2.NumberToNumberEncoder();
this._totalRoundTripTimeEncoder = new utils_2.NumberToNumberEncoder();
this._transportIdEncoder = new utils_2.StringToStringEncoder();
this._attachmentsEncoder = attachmentsEncoder;
this._stateEncoder = new IceCandidatePairStatsEnumEncoder();
}
get visited() {
const result = this._visited;
this._visited = false;
return result;
}
reset() {
this._availableIncomingBitrateEncoder.reset();
this._availableOutgoingBitrateEncoder.reset();
this._bytesDiscardedOnSendEncoder.reset();
this._bytesReceivedEncoder.reset();
this._bytesSentEncoder.reset();
this._consentRequestsSentEncoder.reset();
this._currentRoundTripTimeEncoder.reset();
this._lastPacketReceivedTimestampEncoder.reset();
this._lastPacketSentTimestampEncoder.reset();
this._localCandidateIdEncoder.reset();
this._nominatedEncoder.reset();
this._packetsDiscardedOnSendEncoder.reset();
this._packetsReceivedEncoder.reset();
this._packetsSentEncoder.reset();
this._remoteCandidateIdEncoder.reset();
this._requestsReceivedEncoder.reset();
this._requestsSentEncoder.reset();
this._responsesReceivedEncoder.reset();
this._responsesSentEncoder.reset();
this._timestampEncoder.reset();
this._totalRoundTripTimeEncoder.reset();
this._transportIdEncoder.reset();
this._attachmentsEncoder.reset();
this._stateEncoder.reset();
}
encode(sample) {
this._visited = true;
return new OutputSamples_1.ClientSample_PeerConnectionSample_IceCandidatePairStats({
id: sample.id,
availableIncomingBitrate: this._availableIncomingBitrateEncoder.encode(sample.availableIncomingBitrate),
availableOutgoingBitrate: this._availableOutgoingBitrateEncoder.encode(sample.availableOutgoingBitrate),
bytesDiscardedOnSend: this._bytesDiscardedOnSendEncoder.encode(sample.bytesDiscardedOnSend),
bytesReceived: this._bytesReceivedEncoder.encode(sample.bytesReceived),
bytesSent: this._bytesSentEncoder.encode(sample.bytesSent),
consentRequestsSent: this._consentRequestsSentEncoder.encode(sample.consentRequestsSent),
currentRoundTripTime: this._currentRoundTripTimeEncoder.encode(sample.currentRoundTripTime),
lastPacketReceivedTimestamp: this._lastPacketReceivedTimestampEncoder.encode(sample.lastPacketReceivedTimestamp),
lastPacketSentTimestamp: this._lastPacketSentTimestampEncoder.encode(sample.lastPacketSentTimestamp),
localCandidateId: this._localCandidateIdEncoder.encode(sample.localCandidateId),
nominated: this._nominatedEncoder.encode(sample.nominated),
packetsDiscardedOnSend: this._packetsDiscardedOnSendEncoder.encode(sample.packetsDiscardedOnSend),
packetsReceived: this._packetsReceivedEncoder.encode(sample.packetsReceived),
packetsSent: this._packetsSentEncoder.encode(sample.packetsSent),
remoteCandidateId: this._remoteCandidateIdEncoder.encode(sample.remoteCandidateId),
requestsReceived: this._requestsReceivedEncoder.encode(sample.requestsReceived),
requestsSent: this._requestsSentEncoder.encode(sample.requestsSent),
responsesReceived: this._responsesReceivedEncoder.encode(sample.responsesReceived),
responsesSent: this._responsesSentEncoder.encode(sample.responsesSent),
timestamp: this._timestampEncoder.encode(sample.timestamp),
totalRoundTripTime: this._totalRoundTripTimeEncoder.encode(sample.totalRoundTripTime),
transportId: this._transportIdEncoder.encode(sample.transportId),
attachments: this._attachmentsEncoder.encode(sample.attachments),
state: this._stateEncoder.encode(sample.state),
});
}
}
exports.IceCandidatePairEncoder = IceCandidatePairEncoder;
class IceCandidatePairStatsEnumEncoder {
reset() {
this._actualValue = undefined;
}
encode(state) {
if (this._actualValue === state)
return;
this._actualValue = state;
switch (state) {
case 'new':
return OutputSamples_2.ClientSample_PeerConnectionSample_IceCandidatePairStats_IceCandidatePairStatsEnum.NEW;
case 'in-progress':
case 'inprogress':
return OutputSamples_2.ClientSample_PeerConnectionSample_IceCandidatePairStats_IceCandidatePairStatsEnum.INPROGRESS;
case 'failed':
return OutputSamples_2.ClientSample_PeerConnectionSample_IceCandidatePairStats_IceCandidatePairStatsEnum.FAILED;
case 'succeeded':
return OutputSamples_2.ClientSample_PeerConnectionSample_IceCandidatePairStats_IceCandidatePairStatsEnum.SUCCEEDED;
case 'waiting':
return OutputSamples_2.ClientSample_PeerConnectionSample_IceCandidatePairStats_IceCandidatePairStatsEnum.WAITING;
case 'cancelled':
return OutputSamples_2.ClientSample_PeerConnectionSample_IceCandidatePairStats_IceCandidatePairStatsEnum.CANCELLED;
default:
throw new Error(`Unknown IceCandidatePairStats state: ${state}`);
}
}
}
exports.IceCandidatePairStatsEnumEncoder = IceCandidatePairStatsEnumEncoder;