<?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;

/**
 * Protobuf type <code>grpc.testing.ServerConfig</code>
 */
class ServerConfig extends \Google\Protobuf\Internal\Message
{
    /**
     * <code>.grpc.testing.ServerType server_type = 1;</code>
     */
    private $server_type = 0;
    /**
     * <code>.grpc.testing.SecurityParams security_params = 2;</code>
     */
    private $security_params = null;
    /**
     * <pre>
     * Port on which to listen. Zero means pick unused port.
     * </pre>
     *
     * <code>int32 port = 4;</code>
     */
    private $port = 0;
    /**
     * <pre>
     * Only for async server. Number of threads used to serve the requests.
     * </pre>
     *
     * <code>int32 async_server_threads = 7;</code>
     */
    private $async_server_threads = 0;
    /**
     * <pre>
     * Specify the number of cores to limit server to, if desired
     * </pre>
     *
     * <code>int32 core_limit = 8;</code>
     */
    private $core_limit = 0;
    /**
     * <pre>
     * payload config, used in generic server.
     * Note this must NOT be used in proto (non-generic) servers. For proto servers,
     * 'response sizes' must be configured from the 'response_size' field of the
     * 'SimpleRequest' objects in RPC requests.
     * </pre>
     *
     * <code>.grpc.testing.PayloadConfig payload_config = 9;</code>
     */
    private $payload_config = null;
    /**
     * <pre>
     * Specify the cores we should run the server on, if desired
     * </pre>
     *
     * <code>repeated int32 core_list = 10;</code>
     */
    private $core_list;
    /**
     * <pre>
     * If we use an OTHER_SERVER client_type, this string gives more detail
     * </pre>
     *
     * <code>string other_server_api = 11;</code>
     */
    private $other_server_api = '';
    /**
     * <pre>
     * Buffer pool size (no buffer pool specified if unset)
     * </pre>
     *
     * <code>int32 resource_quota_size = 1001;</code>
     */
    private $resource_quota_size = 0;

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

    /**
     * <code>.grpc.testing.ServerType server_type = 1;</code>
     */
    public function getServerType()
    {
        return $this->server_type;
    }

    /**
     * <code>.grpc.testing.ServerType server_type = 1;</code>
     */
    public function setServerType($var)
    {
        GPBUtil::checkEnum($var, \Grpc\Testing\ServerType::class);
        $this->server_type = $var;
    }

    /**
     * <code>.grpc.testing.SecurityParams security_params = 2;</code>
     */
    public function getSecurityParams()
    {
        return $this->security_params;
    }

    /**
     * <code>.grpc.testing.SecurityParams security_params = 2;</code>
     */
    public function setSecurityParams(&$var)
    {
        GPBUtil::checkMessage($var, \Grpc\Testing\SecurityParams::class);
        $this->security_params = $var;
    }

    /**
     * <pre>
     * Port on which to listen. Zero means pick unused port.
     * </pre>
     *
     * <code>int32 port = 4;</code>
     */
    public function getPort()
    {
        return $this->port;
    }

    /**
     * <pre>
     * Port on which to listen. Zero means pick unused port.
     * </pre>
     *
     * <code>int32 port = 4;</code>
     */
    public function setPort($var)
    {
        GPBUtil::checkInt32($var);
        $this->port = $var;
    }

    /**
     * <pre>
     * Only for async server. Number of threads used to serve the requests.
     * </pre>
     *
     * <code>int32 async_server_threads = 7;</code>
     */
    public function getAsyncServerThreads()
    {
        return $this->async_server_threads;
    }

    /**
     * <pre>
     * Only for async server. Number of threads used to serve the requests.
     * </pre>
     *
     * <code>int32 async_server_threads = 7;</code>
     */
    public function setAsyncServerThreads($var)
    {
        GPBUtil::checkInt32($var);
        $this->async_server_threads = $var;
    }

    /**
     * <pre>
     * Specify the number of cores to limit server to, if desired
     * </pre>
     *
     * <code>int32 core_limit = 8;</code>
     */
    public function getCoreLimit()
    {
        return $this->core_limit;
    }

    /**
     * <pre>
     * Specify the number of cores to limit server to, if desired
     * </pre>
     *
     * <code>int32 core_limit = 8;</code>
     */
    public function setCoreLimit($var)
    {
        GPBUtil::checkInt32($var);
        $this->core_limit = $var;
    }

    /**
     * <pre>
     * payload config, used in generic server.
     * Note this must NOT be used in proto (non-generic) servers. For proto servers,
     * 'response sizes' must be configured from the 'response_size' field of the
     * 'SimpleRequest' objects in RPC requests.
     * </pre>
     *
     * <code>.grpc.testing.PayloadConfig payload_config = 9;</code>
     */
    public function getPayloadConfig()
    {
        return $this->payload_config;
    }

    /**
     * <pre>
     * payload config, used in generic server.
     * Note this must NOT be used in proto (non-generic) servers. For proto servers,
     * 'response sizes' must be configured from the 'response_size' field of the
     * 'SimpleRequest' objects in RPC requests.
     * </pre>
     *
     * <code>.grpc.testing.PayloadConfig payload_config = 9;</code>
     */
    public function setPayloadConfig(&$var)
    {
        GPBUtil::checkMessage($var, \Grpc\Testing\PayloadConfig::class);
        $this->payload_config = $var;
    }

    /**
     * <pre>
     * Specify the cores we should run the server on, if desired
     * </pre>
     *
     * <code>repeated int32 core_list = 10;</code>
     */
    public function getCoreList()
    {
        return $this->core_list;
    }

    /**
     * <pre>
     * Specify the cores we should run the server on, if desired
     * </pre>
     *
     * <code>repeated int32 core_list = 10;</code>
     */
    public function setCoreList(&$var)
    {
        GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::INT32);
        $this->core_list = $var;
    }

    /**
     * <pre>
     * If we use an OTHER_SERVER client_type, this string gives more detail
     * </pre>
     *
     * <code>string other_server_api = 11;</code>
     */
    public function getOtherServerApi()
    {
        return $this->other_server_api;
    }

    /**
     * <pre>
     * If we use an OTHER_SERVER client_type, this string gives more detail
     * </pre>
     *
     * <code>string other_server_api = 11;</code>
     */
    public function setOtherServerApi($var)
    {
        GPBUtil::checkString($var, True);
        $this->other_server_api = $var;
    }

    /**
     * <pre>
     * Buffer pool size (no buffer pool specified if unset)
     * </pre>
     *
     * <code>int32 resource_quota_size = 1001;</code>
     */
    public function getResourceQuotaSize()
    {
        return $this->resource_quota_size;
    }

    /**
     * <pre>
     * Buffer pool size (no buffer pool specified if unset)
     * </pre>
     *
     * <code>int32 resource_quota_size = 1001;</code>
     */
    public function setResourceQuotaSize($var)
    {
        GPBUtil::checkInt32($var);
        $this->resource_quota_size = $var;
    }

}

