All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.huaweicloud.sdk.meeting.v1.model.QosSendReceiveInfo Maven / Gradle / Ivy

package com.huaweicloud.sdk.meeting.v1.model;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.function.Consumer;

/** 会议与会者发送/接收QoS数据。当qosType = audio/video/screen 时有效。 */
public class QosSendReceiveInfo {

    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonProperty(value = "bitrate")

    private List bitrate = null;

    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonProperty(value = "latency")

    private List latency = null;

    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonProperty(value = "jitter")

    private List jitter = null;

    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonProperty(value = "packet_loss_max")

    private List packetLossMax = null;

    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonProperty(value = "resolution")

    private List resolution = null;

    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonProperty(value = "frame")

    private List frame = null;

    public QosSendReceiveInfo withBitrate(List bitrate) {
        this.bitrate = bitrate;
        return this;
    }

    public QosSendReceiveInfo addBitrateItem(QosDataNoThrElement bitrateItem) {
        if (this.bitrate == null) {
            this.bitrate = new ArrayList<>();
        }
        this.bitrate.add(bitrateItem);
        return this;
    }

    public QosSendReceiveInfo withBitrate(Consumer> bitrateSetter) {
        if (this.bitrate == null) {
            this.bitrate = new ArrayList<>();
        }
        bitrateSetter.accept(this.bitrate);
        return this;
    }

    /** 码率, 单位kbps,不含阈值告警。当qosType = audio/video/screen 时有效。
     * 
     * @return bitrate */
    public List getBitrate() {
        return bitrate;
    }

    public void setBitrate(List bitrate) {
        this.bitrate = bitrate;
    }

    public QosSendReceiveInfo withLatency(List latency) {
        this.latency = latency;
        return this;
    }

    public QosSendReceiveInfo addLatencyItem(QosDataElement latencyItem) {
        if (this.latency == null) {
            this.latency = new ArrayList<>();
        }
        this.latency.add(latencyItem);
        return this;
    }

    public QosSendReceiveInfo withLatency(Consumer> latencySetter) {
        if (this.latency == null) {
            this.latency = new ArrayList<>();
        }
        latencySetter.accept(this.latency);
        return this;
    }

    /** 时延,单位毫秒, 含阈值告警。当qosType = audio/video/screen 时有效。
     * 
     * @return latency */
    public List getLatency() {
        return latency;
    }

    public void setLatency(List latency) {
        this.latency = latency;
    }

    public QosSendReceiveInfo withJitter(List jitter) {
        this.jitter = jitter;
        return this;
    }

    public QosSendReceiveInfo addJitterItem(QosDataElement jitterItem) {
        if (this.jitter == null) {
            this.jitter = new ArrayList<>();
        }
        this.jitter.add(jitterItem);
        return this;
    }

    public QosSendReceiveInfo withJitter(Consumer> jitterSetter) {
        if (this.jitter == null) {
            this.jitter = new ArrayList<>();
        }
        jitterSetter.accept(this.jitter);
        return this;
    }

    /** 抖动, 单位毫秒,含阈值告警。当qosType = audio/video/screen 时有效。
     * 
     * @return jitter */
    public List getJitter() {
        return jitter;
    }

    public void setJitter(List jitter) {
        this.jitter = jitter;
    }

    public QosSendReceiveInfo withPacketLossMax(List packetLossMax) {
        this.packetLossMax = packetLossMax;
        return this;
    }

    public QosSendReceiveInfo addPacketLossMaxItem(QosDataElement packetLossMaxItem) {
        if (this.packetLossMax == null) {
            this.packetLossMax = new ArrayList<>();
        }
        this.packetLossMax.add(packetLossMaxItem);
        return this;
    }

    public QosSendReceiveInfo withPacketLossMax(Consumer> packetLossMaxSetter) {
        if (this.packetLossMax == null) {
            this.packetLossMax = new ArrayList<>();
        }
        packetLossMaxSetter.accept(this.packetLossMax);
        return this;
    }

    /** 最大丢包率, 单位百分比 含阈值告警。当qosType = audio/video/screen 时有效。
     * 
     * @return packetLossMax */
    public List getPacketLossMax() {
        return packetLossMax;
    }

    public void setPacketLossMax(List packetLossMax) {
        this.packetLossMax = packetLossMax;
    }

    public QosSendReceiveInfo withResolution(List resolution) {
        this.resolution = resolution;
        return this;
    }

    public QosSendReceiveInfo addResolutionItem(QosDataNoThrElement resolutionItem) {
        if (this.resolution == null) {
            this.resolution = new ArrayList<>();
        }
        this.resolution.add(resolutionItem);
        return this;
    }

    public QosSendReceiveInfo withResolution(Consumer> resolutionSetter) {
        if (this.resolution == null) {
            this.resolution = new ArrayList<>();
        }
        resolutionSetter.accept(this.resolution);
        return this;
    }

    /** 分辨率, 不含阈值告警。当qosType = video/screen 时有效。
     * 
     * @return resolution */
    public List getResolution() {
        return resolution;
    }

    public void setResolution(List resolution) {
        this.resolution = resolution;
    }

    public QosSendReceiveInfo withFrame(List frame) {
        this.frame = frame;
        return this;
    }

    public QosSendReceiveInfo addFrameItem(QosDataNoThrElement frameItem) {
        if (this.frame == null) {
            this.frame = new ArrayList<>();
        }
        this.frame.add(frameItem);
        return this;
    }

    public QosSendReceiveInfo withFrame(Consumer> frameSetter) {
        if (this.frame == null) {
            this.frame = new ArrayList<>();
        }
        frameSetter.accept(this.frame);
        return this;
    }

    /** 帧率, 单位fps,不含阈值告警。当qosType = video/screen 时有效。
     * 
     * @return frame */
    public List getFrame() {
        return frame;
    }

    public void setFrame(List frame) {
        this.frame = frame;
    }

    @Override
    public boolean equals(java.lang.Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        QosSendReceiveInfo qosSendReceiveInfo = (QosSendReceiveInfo) o;
        return Objects.equals(this.bitrate, qosSendReceiveInfo.bitrate)
            && Objects.equals(this.latency, qosSendReceiveInfo.latency)
            && Objects.equals(this.jitter, qosSendReceiveInfo.jitter)
            && Objects.equals(this.packetLossMax, qosSendReceiveInfo.packetLossMax)
            && Objects.equals(this.resolution, qosSendReceiveInfo.resolution)
            && Objects.equals(this.frame, qosSendReceiveInfo.frame);
    }

    @Override
    public int hashCode() {
        return Objects.hash(bitrate, latency, jitter, packetLossMax, resolution, frame);
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("class QosSendReceiveInfo {\n");
        sb.append("    bitrate: ").append(toIndentedString(bitrate)).append("\n");
        sb.append("    latency: ").append(toIndentedString(latency)).append("\n");
        sb.append("    jitter: ").append(toIndentedString(jitter)).append("\n");
        sb.append("    packetLossMax: ").append(toIndentedString(packetLossMax)).append("\n");
        sb.append("    resolution: ").append(toIndentedString(resolution)).append("\n");
        sb.append("    frame: ").append(toIndentedString(frame)).append("\n");
        sb.append("}");
        return sb.toString();
    }

    /** Convert the given object to string with each line indented by 4 spaces (except the first line). */
    private String toIndentedString(java.lang.Object o) {
        if (o == null) {
            return "null";
        }
        return o.toString().replace("\n", "\n    ");
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy