<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: src/proto/grpc/testing/control.proto

namespace Grpc\Testing;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\RepeatedField;
use Google\Protobuf\Internal\GPBUtil;

/**
 * Basic summary that can be computed from ClientStats and ServerStats
 * once the scenario has finished.
 *
 * Generated from protobuf message <code>grpc.testing.ScenarioResultSummary</code>
 */
class ScenarioResultSummary extends \Google\Protobuf\Internal\Message
{
    /**
     * Total number of operations per second over all clients. What is counted as 1 'operation' depends on the benchmark scenarios:
     * For unary benchmarks, an operation is processing of a single unary RPC. 
     * For streaming benchmarks, an operation is processing of a single ping pong of request and response. 
     *
     * Generated from protobuf field <code>double qps = 1;</code>
     */
    protected $qps = 0.0;
    /**
     * QPS per server core.
     *
     * Generated from protobuf field <code>double qps_per_server_core = 2;</code>
     */
    protected $qps_per_server_core = 0.0;
    /**
     * The total server cpu load based on system time across all server processes, expressed as percentage of a single cpu core.
     * For example, 85 implies 85% of a cpu core, 125 implies 125% of a cpu core. Since we are accumulating the cpu load across all the server 
     * processes, the value could > 100 when there are multiple servers or a single server using multiple threads and cores. 
     * Same explanation for the total client cpu load below.
     *
     * Generated from protobuf field <code>double server_system_time = 3;</code>
     */
    protected $server_system_time = 0.0;
    /**
     * The total server cpu load based on user time across all server processes, expressed as percentage of a single cpu core. (85 => 85%, 125 => 125%)
     *
     * Generated from protobuf field <code>double server_user_time = 4;</code>
     */
    protected $server_user_time = 0.0;
    /**
     * The total client cpu load based on system time across all client processes, expressed as percentage of a single cpu core. (85 => 85%, 125 => 125%)
     *
     * Generated from protobuf field <code>double client_system_time = 5;</code>
     */
    protected $client_system_time = 0.0;
    /**
     * The total client cpu load based on user time across all client processes, expressed as percentage of a single cpu core. (85 => 85%, 125 => 125%)
     *
     * Generated from protobuf field <code>double client_user_time = 6;</code>
     */
    protected $client_user_time = 0.0;
    /**
     * X% latency percentiles (in nanoseconds)
     *
     * Generated from protobuf field <code>double latency_50 = 7;</code>
     */
    protected $latency_50 = 0.0;
    /**
     * Generated from protobuf field <code>double latency_90 = 8;</code>
     */
    protected $latency_90 = 0.0;
    /**
     * Generated from protobuf field <code>double latency_95 = 9;</code>
     */
    protected $latency_95 = 0.0;
    /**
     * Generated from protobuf field <code>double latency_99 = 10;</code>
     */
    protected $latency_99 = 0.0;
    /**
     * Generated from protobuf field <code>double latency_999 = 11;</code>
     */
    protected $latency_999 = 0.0;
    /**
     * server cpu usage percentage
     *
     * Generated from protobuf field <code>double server_cpu_usage = 12;</code>
     */
    protected $server_cpu_usage = 0.0;
    /**
     * Number of requests that succeeded/failed
     *
     * Generated from protobuf field <code>double successful_requests_per_second = 13;</code>
     */
    protected $successful_requests_per_second = 0.0;
    /**
     * Generated from protobuf field <code>double failed_requests_per_second = 14;</code>
     */
    protected $failed_requests_per_second = 0.0;
    /**
     * Number of polls called inside completion queue per request
     *
     * Generated from protobuf field <code>double client_polls_per_request = 15;</code>
     */
    protected $client_polls_per_request = 0.0;
    /**
     * Generated from protobuf field <code>double server_polls_per_request = 16;</code>
     */
    protected $server_polls_per_request = 0.0;
    /**
     * Queries per CPU-sec over all servers or clients
     *
     * Generated from protobuf field <code>double server_queries_per_cpu_sec = 17;</code>
     */
    protected $server_queries_per_cpu_sec = 0.0;
    /**
     * Generated from protobuf field <code>double client_queries_per_cpu_sec = 18;</code>
     */
    protected $client_queries_per_cpu_sec = 0.0;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type float $qps
     *           Total number of operations per second over all clients. What is counted as 1 'operation' depends on the benchmark scenarios:
     *           For unary benchmarks, an operation is processing of a single unary RPC. 
     *           For streaming benchmarks, an operation is processing of a single ping pong of request and response. 
     *     @type float $qps_per_server_core
     *           QPS per server core.
     *     @type float $server_system_time
     *           The total server cpu load based on system time across all server processes, expressed as percentage of a single cpu core.
     *           For example, 85 implies 85% of a cpu core, 125 implies 125% of a cpu core. Since we are accumulating the cpu load across all the server 
     *           processes, the value could > 100 when there are multiple servers or a single server using multiple threads and cores. 
     *           Same explanation for the total client cpu load below.
     *     @type float $server_user_time
     *           The total server cpu load based on user time across all server processes, expressed as percentage of a single cpu core. (85 => 85%, 125 => 125%)
     *     @type float $client_system_time
     *           The total client cpu load based on system time across all client processes, expressed as percentage of a single cpu core. (85 => 85%, 125 => 125%)
     *     @type float $client_user_time
     *           The total client cpu load based on user time across all client processes, expressed as percentage of a single cpu core. (85 => 85%, 125 => 125%)
     *     @type float $latency_50
     *           X% latency percentiles (in nanoseconds)
     *     @type float $latency_90
     *     @type float $latency_95
     *     @type float $latency_99
     *     @type float $latency_999
     *     @type float $server_cpu_usage
     *           server cpu usage percentage
     *     @type float $successful_requests_per_second
     *           Number of requests that succeeded/failed
     *     @type float $failed_requests_per_second
     *     @type float $client_polls_per_request
     *           Number of polls called inside completion queue per request
     *     @type float $server_polls_per_request
     *     @type float $server_queries_per_cpu_sec
     *           Queries per CPU-sec over all servers or clients
     *     @type float $client_queries_per_cpu_sec
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Src\Proto\Grpc\Testing\Control::initOnce();
        parent::__construct($data);
    }

    /**
     * Total number of operations per second over all clients. What is counted as 1 'operation' depends on the benchmark scenarios:
     * For unary benchmarks, an operation is processing of a single unary RPC. 
     * For streaming benchmarks, an operation is processing of a single ping pong of request and response. 
     *
     * Generated from protobuf field <code>double qps = 1;</code>
     * @return float
     */
    public function getQps()
    {
        return $this->qps;
    }

    /**
     * Total number of operations per second over all clients. What is counted as 1 'operation' depends on the benchmark scenarios:
     * For unary benchmarks, an operation is processing of a single unary RPC. 
     * For streaming benchmarks, an operation is processing of a single ping pong of request and response. 
     *
     * Generated from protobuf field <code>double qps = 1;</code>
     * @param float $var
     * @return $this
     */
    public function setQps($var)
    {
        GPBUtil::checkDouble($var);
        $this->qps = $var;

        return $this;
    }

    /**
     * QPS per server core.
     *
     * Generated from protobuf field <code>double qps_per_server_core = 2;</code>
     * @return float
     */
    public function getQpsPerServerCore()
    {
        return $this->qps_per_server_core;
    }

    /**
     * QPS per server core.
     *
     * Generated from protobuf field <code>double qps_per_server_core = 2;</code>
     * @param float $var
     * @return $this
     */
    public function setQpsPerServerCore($var)
    {
        GPBUtil::checkDouble($var);
        $this->qps_per_server_core = $var;

        return $this;
    }

    /**
     * The total server cpu load based on system time across all server processes, expressed as percentage of a single cpu core.
     * For example, 85 implies 85% of a cpu core, 125 implies 125% of a cpu core. Since we are accumulating the cpu load across all the server 
     * processes, the value could > 100 when there are multiple servers or a single server using multiple threads and cores. 
     * Same explanation for the total client cpu load below.
     *
     * Generated from protobuf field <code>double server_system_time = 3;</code>
     * @return float
     */
    public function getServerSystemTime()
    {
        return $this->server_system_time;
    }

    /**
     * The total server cpu load based on system time across all server processes, expressed as percentage of a single cpu core.
     * For example, 85 implies 85% of a cpu core, 125 implies 125% of a cpu core. Since we are accumulating the cpu load across all the server 
     * processes, the value could > 100 when there are multiple servers or a single server using multiple threads and cores. 
     * Same explanation for the total client cpu load below.
     *
     * Generated from protobuf field <code>double server_system_time = 3;</code>
     * @param float $var
     * @return $this
     */
    public function setServerSystemTime($var)
    {
        GPBUtil::checkDouble($var);
        $this->server_system_time = $var;

        return $this;
    }

    /**
     * The total server cpu load based on user time across all server processes, expressed as percentage of a single cpu core. (85 => 85%, 125 => 125%)
     *
     * Generated from protobuf field <code>double server_user_time = 4;</code>
     * @return float
     */
    public function getServerUserTime()
    {
        return $this->server_user_time;
    }

    /**
     * The total server cpu load based on user time across all server processes, expressed as percentage of a single cpu core. (85 => 85%, 125 => 125%)
     *
     * Generated from protobuf field <code>double server_user_time = 4;</code>
     * @param float $var
     * @return $this
     */
    public function setServerUserTime($var)
    {
        GPBUtil::checkDouble($var);
        $this->server_user_time = $var;

        return $this;
    }

    /**
     * The total client cpu load based on system time across all client processes, expressed as percentage of a single cpu core. (85 => 85%, 125 => 125%)
     *
     * Generated from protobuf field <code>double client_system_time = 5;</code>
     * @return float
     */
    public function getClientSystemTime()
    {
        return $this->client_system_time;
    }

    /**
     * The total client cpu load based on system time across all client processes, expressed as percentage of a single cpu core. (85 => 85%, 125 => 125%)
     *
     * Generated from protobuf field <code>double client_system_time = 5;</code>
     * @param float $var
     * @return $this
     */
    public function setClientSystemTime($var)
    {
        GPBUtil::checkDouble($var);
        $this->client_system_time = $var;

        return $this;
    }

    /**
     * The total client cpu load based on user time across all client processes, expressed as percentage of a single cpu core. (85 => 85%, 125 => 125%)
     *
     * Generated from protobuf field <code>double client_user_time = 6;</code>
     * @return float
     */
    public function getClientUserTime()
    {
        return $this->client_user_time;
    }

    /**
     * The total client cpu load based on user time across all client processes, expressed as percentage of a single cpu core. (85 => 85%, 125 => 125%)
     *
     * Generated from protobuf field <code>double client_user_time = 6;</code>
     * @param float $var
     * @return $this
     */
    public function setClientUserTime($var)
    {
        GPBUtil::checkDouble($var);
        $this->client_user_time = $var;

        return $this;
    }

    /**
     * X% latency percentiles (in nanoseconds)
     *
     * Generated from protobuf field <code>double latency_50 = 7;</code>
     * @return float
     */
    public function getLatency50()
    {
        return $this->latency_50;
    }

    /**
     * X% latency percentiles (in nanoseconds)
     *
     * Generated from protobuf field <code>double latency_50 = 7;</code>
     * @param float $var
     * @return $this
     */
    public function setLatency50($var)
    {
        GPBUtil::checkDouble($var);
        $this->latency_50 = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>double latency_90 = 8;</code>
     * @return float
     */
    public function getLatency90()
    {
        return $this->latency_90;
    }

    /**
     * Generated from protobuf field <code>double latency_90 = 8;</code>
     * @param float $var
     * @return $this
     */
    public function setLatency90($var)
    {
        GPBUtil::checkDouble($var);
        $this->latency_90 = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>double latency_95 = 9;</code>
     * @return float
     */
    public function getLatency95()
    {
        return $this->latency_95;
    }

    /**
     * Generated from protobuf field <code>double latency_95 = 9;</code>
     * @param float $var
     * @return $this
     */
    public function setLatency95($var)
    {
        GPBUtil::checkDouble($var);
        $this->latency_95 = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>double latency_99 = 10;</code>
     * @return float
     */
    public function getLatency99()
    {
        return $this->latency_99;
    }

    /**
     * Generated from protobuf field <code>double latency_99 = 10;</code>
     * @param float $var
     * @return $this
     */
    public function setLatency99($var)
    {
        GPBUtil::checkDouble($var);
        $this->latency_99 = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>double latency_999 = 11;</code>
     * @return float
     */
    public function getLatency999()
    {
        return $this->latency_999;
    }

    /**
     * Generated from protobuf field <code>double latency_999 = 11;</code>
     * @param float $var
     * @return $this
     */
    public function setLatency999($var)
    {
        GPBUtil::checkDouble($var);
        $this->latency_999 = $var;

        return $this;
    }

    /**
     * server cpu usage percentage
     *
     * Generated from protobuf field <code>double server_cpu_usage = 12;</code>
     * @return float
     */
    public function getServerCpuUsage()
    {
        return $this->server_cpu_usage;
    }

    /**
     * server cpu usage percentage
     *
     * Generated from protobuf field <code>double server_cpu_usage = 12;</code>
     * @param float $var
     * @return $this
     */
    public function setServerCpuUsage($var)
    {
        GPBUtil::checkDouble($var);
        $this->server_cpu_usage = $var;

        return $this;
    }

    /**
     * Number of requests that succeeded/failed
     *
     * Generated from protobuf field <code>double successful_requests_per_second = 13;</code>
     * @return float
     */
    public function getSuccessfulRequestsPerSecond()
    {
        return $this->successful_requests_per_second;
    }

    /**
     * Number of requests that succeeded/failed
     *
     * Generated from protobuf field <code>double successful_requests_per_second = 13;</code>
     * @param float $var
     * @return $this
     */
    public function setSuccessfulRequestsPerSecond($var)
    {
        GPBUtil::checkDouble($var);
        $this->successful_requests_per_second = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>double failed_requests_per_second = 14;</code>
     * @return float
     */
    public function getFailedRequestsPerSecond()
    {
        return $this->failed_requests_per_second;
    }

    /**
     * Generated from protobuf field <code>double failed_requests_per_second = 14;</code>
     * @param float $var
     * @return $this
     */
    public function setFailedRequestsPerSecond($var)
    {
        GPBUtil::checkDouble($var);
        $this->failed_requests_per_second = $var;

        return $this;
    }

    /**
     * Number of polls called inside completion queue per request
     *
     * Generated from protobuf field <code>double client_polls_per_request = 15;</code>
     * @return float
     */
    public function getClientPollsPerRequest()
    {
        return $this->client_polls_per_request;
    }

    /**
     * Number of polls called inside completion queue per request
     *
     * Generated from protobuf field <code>double client_polls_per_request = 15;</code>
     * @param float $var
     * @return $this
     */
    public function setClientPollsPerRequest($var)
    {
        GPBUtil::checkDouble($var);
        $this->client_polls_per_request = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>double server_polls_per_request = 16;</code>
     * @return float
     */
    public function getServerPollsPerRequest()
    {
        return $this->server_polls_per_request;
    }

    /**
     * Generated from protobuf field <code>double server_polls_per_request = 16;</code>
     * @param float $var
     * @return $this
     */
    public function setServerPollsPerRequest($var)
    {
        GPBUtil::checkDouble($var);
        $this->server_polls_per_request = $var;

        return $this;
    }

    /**
     * Queries per CPU-sec over all servers or clients
     *
     * Generated from protobuf field <code>double server_queries_per_cpu_sec = 17;</code>
     * @return float
     */
    public function getServerQueriesPerCpuSec()
    {
        return $this->server_queries_per_cpu_sec;
    }

    /**
     * Queries per CPU-sec over all servers or clients
     *
     * Generated from protobuf field <code>double server_queries_per_cpu_sec = 17;</code>
     * @param float $var
     * @return $this
     */
    public function setServerQueriesPerCpuSec($var)
    {
        GPBUtil::checkDouble($var);
        $this->server_queries_per_cpu_sec = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>double client_queries_per_cpu_sec = 18;</code>
     * @return float
     */
    public function getClientQueriesPerCpuSec()
    {
        return $this->client_queries_per_cpu_sec;
    }

    /**
     * Generated from protobuf field <code>double client_queries_per_cpu_sec = 18;</code>
     * @param float $var
     * @return $this
     */
    public function setClientQueriesPerCpuSec($var)
    {
        GPBUtil::checkDouble($var);
        $this->client_queries_per_cpu_sec = $var;

        return $this;
    }

}

