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

namespace Grpc\Testing;

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

/**
 * Protobuf type <code>grpc.testing.ClientStats</code>
 */
class ClientStats extends \Google\Protobuf\Internal\Message
{
    /**
     * <pre>
     * Latency histogram. Data points are in nanoseconds.
     * </pre>
     *
     * <code>.grpc.testing.HistogramData latencies = 1;</code>
     */
    private $latencies = null;
    /**
     * <pre>
     * See ServerStats for details.
     * </pre>
     *
     * <code>double time_elapsed = 2;</code>
     */
    private $time_elapsed = 0.0;
    /**
     * <code>double time_user = 3;</code>
     */
    private $time_user = 0.0;
    /**
     * <code>double time_system = 4;</code>
     */
    private $time_system = 0.0;
    /**
     * <pre>
     * Number of failed requests (one row per status code seen)
     * </pre>
     *
     * <code>repeated .grpc.testing.RequestResultCount request_results = 5;</code>
     */
    private $request_results;

    public function __construct() {
        \GPBMetadata\Src\Proto\Grpc\Testing\Stats::initOnce();
        parent::__construct();
    }

    /**
     * <pre>
     * Latency histogram. Data points are in nanoseconds.
     * </pre>
     *
     * <code>.grpc.testing.HistogramData latencies = 1;</code>
     */
    public function getLatencies()
    {
        return $this->latencies;
    }

    /**
     * <pre>
     * Latency histogram. Data points are in nanoseconds.
     * </pre>
     *
     * <code>.grpc.testing.HistogramData latencies = 1;</code>
     */
    public function setLatencies(&$var)
    {
        GPBUtil::checkMessage($var, \Grpc\Testing\HistogramData::class);
        $this->latencies = $var;
    }

    /**
     * <pre>
     * See ServerStats for details.
     * </pre>
     *
     * <code>double time_elapsed = 2;</code>
     */
    public function getTimeElapsed()
    {
        return $this->time_elapsed;
    }

    /**
     * <pre>
     * See ServerStats for details.
     * </pre>
     *
     * <code>double time_elapsed = 2;</code>
     */
    public function setTimeElapsed($var)
    {
        GPBUtil::checkDouble($var);
        $this->time_elapsed = $var;
    }

    /**
     * <code>double time_user = 3;</code>
     */
    public function getTimeUser()
    {
        return $this->time_user;
    }

    /**
     * <code>double time_user = 3;</code>
     */
    public function setTimeUser($var)
    {
        GPBUtil::checkDouble($var);
        $this->time_user = $var;
    }

    /**
     * <code>double time_system = 4;</code>
     */
    public function getTimeSystem()
    {
        return $this->time_system;
    }

    /**
     * <code>double time_system = 4;</code>
     */
    public function setTimeSystem($var)
    {
        GPBUtil::checkDouble($var);
        $this->time_system = $var;
    }

    /**
     * <pre>
     * Number of failed requests (one row per status code seen)
     * </pre>
     *
     * <code>repeated .grpc.testing.RequestResultCount request_results = 5;</code>
     */
    public function getRequestResults()
    {
        return $this->request_results;
    }

    /**
     * <pre>
     * Number of failed requests (one row per status code seen)
     * </pre>
     *
     * <code>repeated .grpc.testing.RequestResultCount request_results = 5;</code>
     */
    public function setRequestResults(&$var)
    {
        GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Grpc\Testing\RequestResultCount::class);
        $this->request_results = $var;
    }

}

