diff options
author | donnadionne <donnadionne2011@gmail.com> | 2015-04-01 13:10:03 -0700 |
---|---|---|
committer | donnadionne <donnadionne2011@gmail.com> | 2015-04-01 13:10:03 -0700 |
commit | c7439042b147e0a47023c1b709900daee70860cf (patch) | |
tree | 313d4a19f93c888bae45578ad6818fba5fd9850b /src/php | |
parent | fe77f081cf6ec5b5b55b5f6da4e3a66430273fb1 (diff) | |
parent | 081cccc145edafb242575ed7dcda3b9780db1722 (diff) |
Merge pull request #1162 from murgatroid99/php_add_protos
Replace generated code with proto files in PHP library
Diffstat (limited to 'src/php')
-rwxr-xr-x | src/php/tests/generated_code/math.php | 479 | ||||
-rw-r--r-- | src/php/tests/generated_code/math.proto | 80 | ||||
-rwxr-xr-x | src/php/tests/interop/empty.php | 25 | ||||
-rw-r--r-- | src/php/tests/interop/empty.proto | 43 | ||||
-rwxr-xr-x | src/php/tests/interop/messages.php | 1074 | ||||
-rw-r--r-- | src/php/tests/interop/messages.proto | 132 | ||||
-rwxr-xr-x | src/php/tests/interop/test.php | 52 | ||||
-rw-r--r-- | src/php/tests/interop/test.proto | 72 |
8 files changed, 327 insertions, 1630 deletions
diff --git a/src/php/tests/generated_code/math.php b/src/php/tests/generated_code/math.php deleted file mode 100755 index e97a5cf97e..0000000000 --- a/src/php/tests/generated_code/math.php +++ /dev/null @@ -1,479 +0,0 @@ -<?php -// DO NOT EDIT! Generated by Protobuf-PHP protoc plugin 1.0 -// Source: math.proto -// Date: 2014-11-14 00:00:41 - -namespace math { - - class DivArgs extends \DrSlump\Protobuf\Message { - - /** @var int */ - public $dividend = null; - - /** @var int */ - public $divisor = null; - - - /** @var \Closure[] */ - protected static $__extensions = array(); - - public static function descriptor() - { - $descriptor = new \DrSlump\Protobuf\Descriptor(__CLASS__, 'math.DivArgs'); - - // REQUIRED INT64 dividend = 1 - $f = new \DrSlump\Protobuf\Field(); - $f->number = 1; - $f->name = "dividend"; - $f->type = \DrSlump\Protobuf::TYPE_INT64; - $f->rule = \DrSlump\Protobuf::RULE_REQUIRED; - $descriptor->addField($f); - - // REQUIRED INT64 divisor = 2 - $f = new \DrSlump\Protobuf\Field(); - $f->number = 2; - $f->name = "divisor"; - $f->type = \DrSlump\Protobuf::TYPE_INT64; - $f->rule = \DrSlump\Protobuf::RULE_REQUIRED; - $descriptor->addField($f); - - foreach (self::$__extensions as $cb) { - $descriptor->addField($cb(), true); - } - - return $descriptor; - } - - /** - * Check if <dividend> has a value - * - * @return boolean - */ - public function hasDividend(){ - return $this->_has(1); - } - - /** - * Clear <dividend> value - * - * @return \math\DivArgs - */ - public function clearDividend(){ - return $this->_clear(1); - } - - /** - * Get <dividend> value - * - * @return int - */ - public function getDividend(){ - return $this->_get(1); - } - - /** - * Set <dividend> value - * - * @param int $value - * @return \math\DivArgs - */ - public function setDividend( $value){ - return $this->_set(1, $value); - } - - /** - * Check if <divisor> has a value - * - * @return boolean - */ - public function hasDivisor(){ - return $this->_has(2); - } - - /** - * Clear <divisor> value - * - * @return \math\DivArgs - */ - public function clearDivisor(){ - return $this->_clear(2); - } - - /** - * Get <divisor> value - * - * @return int - */ - public function getDivisor(){ - return $this->_get(2); - } - - /** - * Set <divisor> value - * - * @param int $value - * @return \math\DivArgs - */ - public function setDivisor( $value){ - return $this->_set(2, $value); - } - } -} - -namespace math { - - class DivReply extends \DrSlump\Protobuf\Message { - - /** @var int */ - public $quotient = null; - - /** @var int */ - public $remainder = null; - - - /** @var \Closure[] */ - protected static $__extensions = array(); - - public static function descriptor() - { - $descriptor = new \DrSlump\Protobuf\Descriptor(__CLASS__, 'math.DivReply'); - - // REQUIRED INT64 quotient = 1 - $f = new \DrSlump\Protobuf\Field(); - $f->number = 1; - $f->name = "quotient"; - $f->type = \DrSlump\Protobuf::TYPE_INT64; - $f->rule = \DrSlump\Protobuf::RULE_REQUIRED; - $descriptor->addField($f); - - // REQUIRED INT64 remainder = 2 - $f = new \DrSlump\Protobuf\Field(); - $f->number = 2; - $f->name = "remainder"; - $f->type = \DrSlump\Protobuf::TYPE_INT64; - $f->rule = \DrSlump\Protobuf::RULE_REQUIRED; - $descriptor->addField($f); - - foreach (self::$__extensions as $cb) { - $descriptor->addField($cb(), true); - } - - return $descriptor; - } - - /** - * Check if <quotient> has a value - * - * @return boolean - */ - public function hasQuotient(){ - return $this->_has(1); - } - - /** - * Clear <quotient> value - * - * @return \math\DivReply - */ - public function clearQuotient(){ - return $this->_clear(1); - } - - /** - * Get <quotient> value - * - * @return int - */ - public function getQuotient(){ - return $this->_get(1); - } - - /** - * Set <quotient> value - * - * @param int $value - * @return \math\DivReply - */ - public function setQuotient( $value){ - return $this->_set(1, $value); - } - - /** - * Check if <remainder> has a value - * - * @return boolean - */ - public function hasRemainder(){ - return $this->_has(2); - } - - /** - * Clear <remainder> value - * - * @return \math\DivReply - */ - public function clearRemainder(){ - return $this->_clear(2); - } - - /** - * Get <remainder> value - * - * @return int - */ - public function getRemainder(){ - return $this->_get(2); - } - - /** - * Set <remainder> value - * - * @param int $value - * @return \math\DivReply - */ - public function setRemainder( $value){ - return $this->_set(2, $value); - } - } -} - -namespace math { - - class FibArgs extends \DrSlump\Protobuf\Message { - - /** @var int */ - public $limit = null; - - - /** @var \Closure[] */ - protected static $__extensions = array(); - - public static function descriptor() - { - $descriptor = new \DrSlump\Protobuf\Descriptor(__CLASS__, 'math.FibArgs'); - - // OPTIONAL INT64 limit = 1 - $f = new \DrSlump\Protobuf\Field(); - $f->number = 1; - $f->name = "limit"; - $f->type = \DrSlump\Protobuf::TYPE_INT64; - $f->rule = \DrSlump\Protobuf::RULE_OPTIONAL; - $descriptor->addField($f); - - foreach (self::$__extensions as $cb) { - $descriptor->addField($cb(), true); - } - - return $descriptor; - } - - /** - * Check if <limit> has a value - * - * @return boolean - */ - public function hasLimit(){ - return $this->_has(1); - } - - /** - * Clear <limit> value - * - * @return \math\FibArgs - */ - public function clearLimit(){ - return $this->_clear(1); - } - - /** - * Get <limit> value - * - * @return int - */ - public function getLimit(){ - return $this->_get(1); - } - - /** - * Set <limit> value - * - * @param int $value - * @return \math\FibArgs - */ - public function setLimit( $value){ - return $this->_set(1, $value); - } - } -} - -namespace math { - - class Num extends \DrSlump\Protobuf\Message { - - /** @var int */ - public $num = null; - - - /** @var \Closure[] */ - protected static $__extensions = array(); - - public static function descriptor() - { - $descriptor = new \DrSlump\Protobuf\Descriptor(__CLASS__, 'math.Num'); - - // REQUIRED INT64 num = 1 - $f = new \DrSlump\Protobuf\Field(); - $f->number = 1; - $f->name = "num"; - $f->type = \DrSlump\Protobuf::TYPE_INT64; - $f->rule = \DrSlump\Protobuf::RULE_REQUIRED; - $descriptor->addField($f); - - foreach (self::$__extensions as $cb) { - $descriptor->addField($cb(), true); - } - - return $descriptor; - } - - /** - * Check if <num> has a value - * - * @return boolean - */ - public function hasNum(){ - return $this->_has(1); - } - - /** - * Clear <num> value - * - * @return \math\Num - */ - public function clearNum(){ - return $this->_clear(1); - } - - /** - * Get <num> value - * - * @return int - */ - public function getNum(){ - return $this->_get(1); - } - - /** - * Set <num> value - * - * @param int $value - * @return \math\Num - */ - public function setNum( $value){ - return $this->_set(1, $value); - } - } -} - -namespace math { - - class FibReply extends \DrSlump\Protobuf\Message { - - /** @var int */ - public $count = null; - - - /** @var \Closure[] */ - protected static $__extensions = array(); - - public static function descriptor() - { - $descriptor = new \DrSlump\Protobuf\Descriptor(__CLASS__, 'math.FibReply'); - - // REQUIRED INT64 count = 1 - $f = new \DrSlump\Protobuf\Field(); - $f->number = 1; - $f->name = "count"; - $f->type = \DrSlump\Protobuf::TYPE_INT64; - $f->rule = \DrSlump\Protobuf::RULE_REQUIRED; - $descriptor->addField($f); - - foreach (self::$__extensions as $cb) { - $descriptor->addField($cb(), true); - } - - return $descriptor; - } - - /** - * Check if <count> has a value - * - * @return boolean - */ - public function hasCount(){ - return $this->_has(1); - } - - /** - * Clear <count> value - * - * @return \math\FibReply - */ - public function clearCount(){ - return $this->_clear(1); - } - - /** - * Get <count> value - * - * @return int - */ - public function getCount(){ - return $this->_get(1); - } - - /** - * Set <count> value - * - * @param int $value - * @return \math\FibReply - */ - public function setCount( $value){ - return $this->_set(1, $value); - } - } -} - -namespace math { - - class MathClient extends \Grpc\BaseStub { - /** - * @param math\DivArgs $input - * @return math\DivReply - */ - public function Div(\math\DivArgs $argument, $metadata = array()) { - return $this->_simpleRequest('/Math/Div', $argument, '\math\DivReply::deserialize', $metadata); - } - /** - * @param math\DivArgs $input - * @return math\DivReply - */ - public function DivMany($metadata = array()) { - return $this->_bidiRequest('/Math/DivMany', '\math\DivReply::deserialize', $metadata); - } - /** - * @param math\FibArgs $input - * @return math\Num - */ - public function Fib($argument, $metadata = array()) { - return $this->_serverStreamRequest('/Math/Fib', $argument, '\math\Num::deserialize', $metadata); - } - /** - * @param math\Num $input - * @return math\Num - */ - public function Sum($arguments, $metadata = array()) { - return $this->_clientStreamRequest('/Math/Sum', $arguments, '\math\Num::deserialize', $metadata); - } - } -} diff --git a/src/php/tests/generated_code/math.proto b/src/php/tests/generated_code/math.proto new file mode 100644 index 0000000000..e34ad5e967 --- /dev/null +++ b/src/php/tests/generated_code/math.proto @@ -0,0 +1,80 @@ + +// Copyright 2015, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package math; + +message DivArgs { + optional int64 dividend = 1; + optional int64 divisor = 2; +} + +message DivReply { + optional int64 quotient = 1; + optional int64 remainder = 2; +} + +message FibArgs { + optional int64 limit = 1; +} + +message Num { + optional int64 num = 1; +} + +message FibReply { + optional int64 count = 1; +} + +service Math { + // Div divides args.dividend by args.divisor and returns the quotient and + // remainder. + rpc Div (DivArgs) returns (DivReply) { + } + + // DivMany accepts an arbitrary number of division args from the client stream + // and sends back the results in the reply stream. The stream continues until + // the client closes its end; the server does the same after sending all the + // replies. The stream ends immediately if either end aborts. + rpc DivMany (stream DivArgs) returns (stream DivReply) { + } + + // Fib generates numbers in the Fibonacci sequence. If args.limit > 0, Fib + // generates up to limit numbers; otherwise it continues until the call is + // canceled. Unlike Fib above, Fib has no final FibReply. + rpc Fib (FibArgs) returns (stream Num) { + } + + // Sum sums a stream of numbers, returning the final result once the stream + // is closed. + rpc Sum (stream Num) returns (Num) { + } +} diff --git a/src/php/tests/interop/empty.php b/src/php/tests/interop/empty.php deleted file mode 100755 index 22b11803b6..0000000000 --- a/src/php/tests/interop/empty.php +++ /dev/null @@ -1,25 +0,0 @@ -<?php -// DO NOT EDIT! Generated by Protobuf-PHP protoc plugin 1.0 -// Source: test/cpp/interop/empty.proto -// Date: 2015-01-30 23:30:46 - -namespace grpc\testing { - - class EmptyMessage extends \DrSlump\Protobuf\Message { - - - /** @var \Closure[] */ - protected static $__extensions = array(); - - public static function descriptor() - { - $descriptor = new \DrSlump\Protobuf\Descriptor(__CLASS__, 'grpc.testing.EmptyMessage'); - - foreach (self::$__extensions as $cb) { - $descriptor->addField($cb(), true); - } - - return $descriptor; - } - } -} diff --git a/src/php/tests/interop/empty.proto b/src/php/tests/interop/empty.proto new file mode 100644 index 0000000000..4200d7b519 --- /dev/null +++ b/src/php/tests/interop/empty.proto @@ -0,0 +1,43 @@ + +// Copyright 2015, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto2"; + +package grpc.testing; + +// An empty message that you can re-use to avoid defining duplicated empty +// messages in your project. A typical example is to use it as argument or the +// return value of a service API. For instance: +// +// service Foo { +// rpc Bar (grpc.testing.EmptyMessage) returns (grpc.testing.EmptyMessage) { }; +// }; +// +message EmptyMessage {} diff --git a/src/php/tests/interop/messages.php b/src/php/tests/interop/messages.php deleted file mode 100755 index a626a17ab3..0000000000 --- a/src/php/tests/interop/messages.php +++ /dev/null @@ -1,1074 +0,0 @@ -<?php -// DO NOT EDIT! Generated by Protobuf-PHP protoc plugin 1.0 -// Source: test/cpp/interop/messages.proto -// Date: 2015-01-30 23:30:46 - -namespace grpc\testing { - - class PayloadType extends \DrSlump\Protobuf\Enum { - const COMPRESSABLE = 0; - const UNCOMPRESSABLE = 1; - const RANDOM = 2; - } -} -namespace grpc\testing { - - class Payload extends \DrSlump\Protobuf\Message { - - /** @var int - \grpc\testing\PayloadType */ - public $type = null; - - /** @var string */ - public $body = null; - - - /** @var \Closure[] */ - protected static $__extensions = array(); - - public static function descriptor() - { - $descriptor = new \DrSlump\Protobuf\Descriptor(__CLASS__, 'grpc.testing.Payload'); - - // OPTIONAL ENUM type = 1 - $f = new \DrSlump\Protobuf\Field(); - $f->number = 1; - $f->name = "type"; - $f->type = \DrSlump\Protobuf::TYPE_ENUM; - $f->rule = \DrSlump\Protobuf::RULE_OPTIONAL; - $f->reference = '\grpc\testing\PayloadType'; - $descriptor->addField($f); - - // OPTIONAL BYTES body = 2 - $f = new \DrSlump\Protobuf\Field(); - $f->number = 2; - $f->name = "body"; - $f->type = \DrSlump\Protobuf::TYPE_BYTES; - $f->rule = \DrSlump\Protobuf::RULE_OPTIONAL; - $descriptor->addField($f); - - foreach (self::$__extensions as $cb) { - $descriptor->addField($cb(), true); - } - - return $descriptor; - } - - /** - * Check if <type> has a value - * - * @return boolean - */ - public function hasType(){ - return $this->_has(1); - } - - /** - * Clear <type> value - * - * @return \grpc\testing\Payload - */ - public function clearType(){ - return $this->_clear(1); - } - - /** - * Get <type> value - * - * @return int - \grpc\testing\PayloadType - */ - public function getType(){ - return $this->_get(1); - } - - /** - * Set <type> value - * - * @param int - \grpc\testing\PayloadType $value - * @return \grpc\testing\Payload - */ - public function setType( $value){ - return $this->_set(1, $value); - } - - /** - * Check if <body> has a value - * - * @return boolean - */ - public function hasBody(){ - return $this->_has(2); - } - - /** - * Clear <body> value - * - * @return \grpc\testing\Payload - */ - public function clearBody(){ - return $this->_clear(2); - } - - /** - * Get <body> value - * - * @return string - */ - public function getBody(){ - return $this->_get(2); - } - - /** - * Set <body> value - * - * @param string $value - * @return \grpc\testing\Payload - */ - public function setBody( $value){ - return $this->_set(2, $value); - } - } -} - -namespace grpc\testing { - - class SimpleRequest extends \DrSlump\Protobuf\Message { - - /** @var int - \grpc\testing\PayloadType */ - public $response_type = null; - - /** @var int */ - public $response_size = null; - - /** @var \grpc\testing\Payload */ - public $payload = null; - - /** @var boolean */ - public $fill_username = null; - - /** @var boolean */ - public $fill_oauth_scope = null; - - - /** @var \Closure[] */ - protected static $__extensions = array(); - - public static function descriptor() - { - $descriptor = new \DrSlump\Protobuf\Descriptor(__CLASS__, 'grpc.testing.SimpleRequest'); - - // OPTIONAL ENUM response_type = 1 - $f = new \DrSlump\Protobuf\Field(); - $f->number = 1; - $f->name = "response_type"; - $f->type = \DrSlump\Protobuf::TYPE_ENUM; - $f->rule = \DrSlump\Protobuf::RULE_OPTIONAL; - $f->reference = '\grpc\testing\PayloadType'; - $descriptor->addField($f); - - // OPTIONAL INT32 response_size = 2 - $f = new \DrSlump\Protobuf\Field(); - $f->number = 2; - $f->name = "response_size"; - $f->type = \DrSlump\Protobuf::TYPE_INT32; - $f->rule = \DrSlump\Protobuf::RULE_OPTIONAL; - $descriptor->addField($f); - - // OPTIONAL MESSAGE payload = 3 - $f = new \DrSlump\Protobuf\Field(); - $f->number = 3; - $f->name = "payload"; - $f->type = \DrSlump\Protobuf::TYPE_MESSAGE; - $f->rule = \DrSlump\Protobuf::RULE_OPTIONAL; - $f->reference = '\grpc\testing\Payload'; - $descriptor->addField($f); - - // OPTIONAL BOOL fill_username = 4 - $f = new \DrSlump\Protobuf\Field(); - $f->number = 4; - $f->name = "fill_username"; - $f->type = \DrSlump\Protobuf::TYPE_BOOL; - $f->rule = \DrSlump\Protobuf::RULE_OPTIONAL; - $descriptor->addField($f); - - // OPTIONAL BOOL fill_oauth_scope = 5 - $f = new \DrSlump\Protobuf\Field(); - $f->number = 5; - $f->name = "fill_oauth_scope"; - $f->type = \DrSlump\Protobuf::TYPE_BOOL; - $f->rule = \DrSlump\Protobuf::RULE_OPTIONAL; - $descriptor->addField($f); - - foreach (self::$__extensions as $cb) { - $descriptor->addField($cb(), true); - } - - return $descriptor; - } - - /** - * Check if <response_type> has a value - * - * @return boolean - */ - public function hasResponseType(){ - return $this->_has(1); - } - - /** - * Clear <response_type> value - * - * @return \grpc\testing\SimpleRequest - */ - public function clearResponseType(){ - return $this->_clear(1); - } - - /** - * Get <response_type> value - * - * @return int - \grpc\testing\PayloadType - */ - public function getResponseType(){ - return $this->_get(1); - } - - /** - * Set <response_type> value - * - * @param int - \grpc\testing\PayloadType $value - * @return \grpc\testing\SimpleRequest - */ - public function setResponseType( $value){ - return $this->_set(1, $value); - } - - /** - * Check if <response_size> has a value - * - * @return boolean - */ - public function hasResponseSize(){ - return $this->_has(2); - } - - /** - * Clear <response_size> value - * - * @return \grpc\testing\SimpleRequest - */ - public function clearResponseSize(){ - return $this->_clear(2); - } - - /** - * Get <response_size> value - * - * @return int - */ - public function getResponseSize(){ - return $this->_get(2); - } - - /** - * Set <response_size> value - * - * @param int $value - * @return \grpc\testing\SimpleRequest - */ - public function setResponseSize( $value){ - return $this->_set(2, $value); - } - - /** - * Check if <payload> has a value - * - * @return boolean - */ - public function hasPayload(){ - return $this->_has(3); - } - - /** - * Clear <payload> value - * - * @return \grpc\testing\SimpleRequest - */ - public function clearPayload(){ - return $this->_clear(3); - } - - /** - * Get <payload> value - * - * @return \grpc\testing\Payload - */ - public function getPayload(){ - return $this->_get(3); - } - - /** - * Set <payload> value - * - * @param \grpc\testing\Payload $value - * @return \grpc\testing\SimpleRequest - */ - public function setPayload(\grpc\testing\Payload $value){ - return $this->_set(3, $value); - } - - /** - * Check if <fill_username> has a value - * - * @return boolean - */ - public function hasFillUsername(){ - return $this->_has(4); - } - - /** - * Clear <fill_username> value - * - * @return \grpc\testing\SimpleRequest - */ - public function clearFillUsername(){ - return $this->_clear(4); - } - - /** - * Get <fill_username> value - * - * @return boolean - */ - public function getFillUsername(){ - return $this->_get(4); - } - - /** - * Set <fill_username> value - * - * @param boolean $value - * @return \grpc\testing\SimpleRequest - */ - public function setFillUsername( $value){ - return $this->_set(4, $value); - } - - /** - * Check if <fill_oauth_scope> has a value - * - * @return boolean - */ - public function hasFillOauthScope(){ - return $this->_has(5); - } - - /** - * Clear <fill_oauth_scope> value - * - * @return \grpc\testing\SimpleRequest - */ - public function clearFillOauthScope(){ - return $this->_clear(5); - } - - /** - * Get <fill_oauth_scope> value - * - * @return boolean - */ - public function getFillOauthScope(){ - return $this->_get(5); - } - - /** - * Set <fill_oauth_scope> value - * - * @param boolean $value - * @return \grpc\testing\SimpleRequest - */ - public function setFillOauthScope( $value){ - return $this->_set(5, $value); - } - } -} - -namespace grpc\testing { - - class SimpleResponse extends \DrSlump\Protobuf\Message { - - /** @var \grpc\testing\Payload */ - public $payload = null; - - /** @var string */ - public $username = null; - - /** @var string */ - public $oauth_scope = null; - - - /** @var \Closure[] */ - protected static $__extensions = array(); - - public static function descriptor() - { - $descriptor = new \DrSlump\Protobuf\Descriptor(__CLASS__, 'grpc.testing.SimpleResponse'); - - // OPTIONAL MESSAGE payload = 1 - $f = new \DrSlump\Protobuf\Field(); - $f->number = 1; - $f->name = "payload"; - $f->type = \DrSlump\Protobuf::TYPE_MESSAGE; - $f->rule = \DrSlump\Protobuf::RULE_OPTIONAL; - $f->reference = '\grpc\testing\Payload'; - $descriptor->addField($f); - - // OPTIONAL STRING username = 2 - $f = new \DrSlump\Protobuf\Field(); - $f->number = 2; - $f->name = "username"; - $f->type = \DrSlump\Protobuf::TYPE_STRING; - $f->rule = \DrSlump\Protobuf::RULE_OPTIONAL; - $descriptor->addField($f); - - // OPTIONAL STRING oauth_scope = 3 - $f = new \DrSlump\Protobuf\Field(); - $f->number = 3; - $f->name = "oauth_scope"; - $f->type = \DrSlump\Protobuf::TYPE_STRING; - $f->rule = \DrSlump\Protobuf::RULE_OPTIONAL; - $descriptor->addField($f); - - foreach (self::$__extensions as $cb) { - $descriptor->addField($cb(), true); - } - - return $descriptor; - } - - /** - * Check if <payload> has a value - * - * @return boolean - */ - public function hasPayload(){ - return $this->_has(1); - } - - /** - * Clear <payload> value - * - * @return \grpc\testing\SimpleResponse - */ - public function clearPayload(){ - return $this->_clear(1); - } - - /** - * Get <payload> value - * - * @return \grpc\testing\Payload - */ - public function getPayload(){ - return $this->_get(1); - } - - /** - * Set <payload> value - * - * @param \grpc\testing\Payload $value - * @return \grpc\testing\SimpleResponse - */ - public function setPayload(\grpc\testing\Payload $value){ - return $this->_set(1, $value); - } - - /** - * Check if <username> has a value - * - * @return boolean - */ - public function hasUsername(){ - return $this->_has(2); - } - - /** - * Clear <username> value - * - * @return \grpc\testing\SimpleResponse - */ - public function clearUsername(){ - return $this->_clear(2); - } - - /** - * Get <username> value - * - * @return string - */ - public function getUsername(){ - return $this->_get(2); - } - - /** - * Set <username> value - * - * @param string $value - * @return \grpc\testing\SimpleResponse - */ - public function setUsername( $value){ - return $this->_set(2, $value); - } - - /** - * Check if <oauth_scope> has a value - * - * @return boolean - */ - public function hasOauthScope(){ - return $this->_has(3); - } - - /** - * Clear <oauth_scope> value - * - * @return \grpc\testing\SimpleResponse - */ - public function clearOauthScope(){ - return $this->_clear(3); - } - - /** - * Get <oauth_scope> value - * - * @return string - */ - public function getOauthScope(){ - return $this->_get(3); - } - - /** - * Set <oauth_scope> value - * - * @param string $value - * @return \grpc\testing\SimpleResponse - */ - public function setOauthScope( $value){ - return $this->_set(3, $value); - } - } -} - -namespace grpc\testing { - - class StreamingInputCallRequest extends \DrSlump\Protobuf\Message { - - /** @var \grpc\testing\Payload */ - public $payload = null; - - - /** @var \Closure[] */ - protected static $__extensions = array(); - - public static function descriptor() - { - $descriptor = new \DrSlump\Protobuf\Descriptor(__CLASS__, 'grpc.testing.StreamingInputCallRequest'); - - // OPTIONAL MESSAGE payload = 1 - $f = new \DrSlump\Protobuf\Field(); - $f->number = 1; - $f->name = "payload"; - $f->type = \DrSlump\Protobuf::TYPE_MESSAGE; - $f->rule = \DrSlump\Protobuf::RULE_OPTIONAL; - $f->reference = '\grpc\testing\Payload'; - $descriptor->addField($f); - - foreach (self::$__extensions as $cb) { - $descriptor->addField($cb(), true); - } - - return $descriptor; - } - - /** - * Check if <payload> has a value - * - * @return boolean - */ - public function hasPayload(){ - return $this->_has(1); - } - - /** - * Clear <payload> value - * - * @return \grpc\testing\StreamingInputCallRequest - */ - public function clearPayload(){ - return $this->_clear(1); - } - - /** - * Get <payload> value - * - * @return \grpc\testing\Payload - */ - public function getPayload(){ - return $this->_get(1); - } - - /** - * Set <payload> value - * - * @param \grpc\testing\Payload $value - * @return \grpc\testing\StreamingInputCallRequest - */ - public function setPayload(\grpc\testing\Payload $value){ - return $this->_set(1, $value); - } - } -} - -namespace grpc\testing { - - class StreamingInputCallResponse extends \DrSlump\Protobuf\Message { - - /** @var int */ - public $aggregated_payload_size = null; - - - /** @var \Closure[] */ - protected static $__extensions = array(); - - public static function descriptor() - { - $descriptor = new \DrSlump\Protobuf\Descriptor(__CLASS__, 'grpc.testing.StreamingInputCallResponse'); - - // OPTIONAL INT32 aggregated_payload_size = 1 - $f = new \DrSlump\Protobuf\Field(); - $f->number = 1; - $f->name = "aggregated_payload_size"; - $f->type = \DrSlump\Protobuf::TYPE_INT32; - $f->rule = \DrSlump\Protobuf::RULE_OPTIONAL; - $descriptor->addField($f); - - foreach (self::$__extensions as $cb) { - $descriptor->addField($cb(), true); - } - - return $descriptor; - } - - /** - * Check if <aggregated_payload_size> has a value - * - * @return boolean - */ - public function hasAggregatedPayloadSize(){ - return $this->_has(1); - } - - /** - * Clear <aggregated_payload_size> value - * - * @return \grpc\testing\StreamingInputCallResponse - */ - public function clearAggregatedPayloadSize(){ - return $this->_clear(1); - } - - /** - * Get <aggregated_payload_size> value - * - * @return int - */ - public function getAggregatedPayloadSize(){ - return $this->_get(1); - } - - /** - * Set <aggregated_payload_size> value - * - * @param int $value - * @return \grpc\testing\StreamingInputCallResponse - */ - public function setAggregatedPayloadSize( $value){ - return $this->_set(1, $value); - } - } -} - -namespace grpc\testing { - - class ResponseParameters extends \DrSlump\Protobuf\Message { - - /** @var int */ - public $size = null; - - /** @var int */ - public $interval_us = null; - - - /** @var \Closure[] */ - protected static $__extensions = array(); - - public static function descriptor() - { - $descriptor = new \DrSlump\Protobuf\Descriptor(__CLASS__, 'grpc.testing.ResponseParameters'); - - // OPTIONAL INT32 size = 1 - $f = new \DrSlump\Protobuf\Field(); - $f->number = 1; - $f->name = "size"; - $f->type = \DrSlump\Protobuf::TYPE_INT32; - $f->rule = \DrSlump\Protobuf::RULE_OPTIONAL; - $descriptor->addField($f); - - // OPTIONAL INT32 interval_us = 2 - $f = new \DrSlump\Protobuf\Field(); - $f->number = 2; - $f->name = "interval_us"; - $f->type = \DrSlump\Protobuf::TYPE_INT32; - $f->rule = \DrSlump\Protobuf::RULE_OPTIONAL; - $descriptor->addField($f); - - foreach (self::$__extensions as $cb) { - $descriptor->addField($cb(), true); - } - - return $descriptor; - } - - /** - * Check if <size> has a value - * - * @return boolean - */ - public function hasSize(){ - return $this->_has(1); - } - - /** - * Clear <size> value - * - * @return \grpc\testing\ResponseParameters - */ - public function clearSize(){ - return $this->_clear(1); - } - - /** - * Get <size> value - * - * @return int - */ - public function getSize(){ - return $this->_get(1); - } - - /** - * Set <size> value - * - * @param int $value - * @return \grpc\testing\ResponseParameters - */ - public function setSize( $value){ - return $this->_set(1, $value); - } - - /** - * Check if <interval_us> has a value - * - * @return boolean - */ - public function hasIntervalUs(){ - return $this->_has(2); - } - - /** - * Clear <interval_us> value - * - * @return \grpc\testing\ResponseParameters - */ - public function clearIntervalUs(){ - return $this->_clear(2); - } - - /** - * Get <interval_us> value - * - * @return int - */ - public function getIntervalUs(){ - return $this->_get(2); - } - - /** - * Set <interval_us> value - * - * @param int $value - * @return \grpc\testing\ResponseParameters - */ - public function setIntervalUs( $value){ - return $this->_set(2, $value); - } - } -} - -namespace grpc\testing { - - class StreamingOutputCallRequest extends \DrSlump\Protobuf\Message { - - /** @var int - \grpc\testing\PayloadType */ - public $response_type = null; - - /** @var \grpc\testing\ResponseParameters[] */ - public $response_parameters = array(); - - /** @var \grpc\testing\Payload */ - public $payload = null; - - - /** @var \Closure[] */ - protected static $__extensions = array(); - - public static function descriptor() - { - $descriptor = new \DrSlump\Protobuf\Descriptor(__CLASS__, 'grpc.testing.StreamingOutputCallRequest'); - - // OPTIONAL ENUM response_type = 1 - $f = new \DrSlump\Protobuf\Field(); - $f->number = 1; - $f->name = "response_type"; - $f->type = \DrSlump\Protobuf::TYPE_ENUM; - $f->rule = \DrSlump\Protobuf::RULE_OPTIONAL; - $f->reference = '\grpc\testing\PayloadType'; - $descriptor->addField($f); - - // REPEATED MESSAGE response_parameters = 2 - $f = new \DrSlump\Protobuf\Field(); - $f->number = 2; - $f->name = "response_parameters"; - $f->type = \DrSlump\Protobuf::TYPE_MESSAGE; - $f->rule = \DrSlump\Protobuf::RULE_REPEATED; - $f->reference = '\grpc\testing\ResponseParameters'; - $descriptor->addField($f); - - // OPTIONAL MESSAGE payload = 3 - $f = new \DrSlump\Protobuf\Field(); - $f->number = 3; - $f->name = "payload"; - $f->type = \DrSlump\Protobuf::TYPE_MESSAGE; - $f->rule = \DrSlump\Protobuf::RULE_OPTIONAL; - $f->reference = '\grpc\testing\Payload'; - $descriptor->addField($f); - - foreach (self::$__extensions as $cb) { - $descriptor->addField($cb(), true); - } - - return $descriptor; - } - - /** - * Check if <response_type> has a value - * - * @return boolean - */ - public function hasResponseType(){ - return $this->_has(1); - } - - /** - * Clear <response_type> value - * - * @return \grpc\testing\StreamingOutputCallRequest - */ - public function clearResponseType(){ - return $this->_clear(1); - } - - /** - * Get <response_type> value - * - * @return int - \grpc\testing\PayloadType - */ - public function getResponseType(){ - return $this->_get(1); - } - - /** - * Set <response_type> value - * - * @param int - \grpc\testing\PayloadType $value - * @return \grpc\testing\StreamingOutputCallRequest - */ - public function setResponseType( $value){ - return $this->_set(1, $value); - } - - /** - * Check if <response_parameters> has a value - * - * @return boolean - */ - public function hasResponseParameters(){ - return $this->_has(2); - } - - /** - * Clear <response_parameters> value - * - * @return \grpc\testing\StreamingOutputCallRequest - */ - public function clearResponseParameters(){ - return $this->_clear(2); - } - - /** - * Get <response_parameters> value - * - * @param int $idx - * @return \grpc\testing\ResponseParameters - */ - public function getResponseParameters($idx = NULL){ - return $this->_get(2, $idx); - } - - /** - * Set <response_parameters> value - * - * @param \grpc\testing\ResponseParameters $value - * @return \grpc\testing\StreamingOutputCallRequest - */ - public function setResponseParameters(\grpc\testing\ResponseParameters $value, $idx = NULL){ - return $this->_set(2, $value, $idx); - } - - /** - * Get all elements of <response_parameters> - * - * @return \grpc\testing\ResponseParameters[] - */ - public function getResponseParametersList(){ - return $this->_get(2); - } - - /** - * Add a new element to <response_parameters> - * - * @param \grpc\testing\ResponseParameters $value - * @return \grpc\testing\StreamingOutputCallRequest - */ - public function addResponseParameters(\grpc\testing\ResponseParameters $value){ - return $this->_add(2, $value); - } - - /** - * Check if <payload> has a value - * - * @return boolean - */ - public function hasPayload(){ - return $this->_has(3); - } - - /** - * Clear <payload> value - * - * @return \grpc\testing\StreamingOutputCallRequest - */ - public function clearPayload(){ - return $this->_clear(3); - } - - /** - * Get <payload> value - * - * @return \grpc\testing\Payload - */ - public function getPayload(){ - return $this->_get(3); - } - - /** - * Set <payload> value - * - * @param \grpc\testing\Payload $value - * @return \grpc\testing\StreamingOutputCallRequest - */ - public function setPayload(\grpc\testing\Payload $value){ - return $this->_set(3, $value); - } - } -} - -namespace grpc\testing { - - class StreamingOutputCallResponse extends \DrSlump\Protobuf\Message { - - /** @var \grpc\testing\Payload */ - public $payload = null; - - - /** @var \Closure[] */ - protected static $__extensions = array(); - - public static function descriptor() - { - $descriptor = new \DrSlump\Protobuf\Descriptor(__CLASS__, 'grpc.testing.StreamingOutputCallResponse'); - - // OPTIONAL MESSAGE payload = 1 - $f = new \DrSlump\Protobuf\Field(); - $f->number = 1; - $f->name = "payload"; - $f->type = \DrSlump\Protobuf::TYPE_MESSAGE; - $f->rule = \DrSlump\Protobuf::RULE_OPTIONAL; - $f->reference = '\grpc\testing\Payload'; - $descriptor->addField($f); - - foreach (self::$__extensions as $cb) { - $descriptor->addField($cb(), true); - } - - return $descriptor; - } - - /** - * Check if <payload> has a value - * - * @return boolean - */ - public function hasPayload(){ - return $this->_has(1); - } - - /** - * Clear <payload> value - * - * @return \grpc\testing\StreamingOutputCallResponse - */ - public function clearPayload(){ - return $this->_clear(1); - } - - /** - * Get <payload> value - * - * @return \grpc\testing\Payload - */ - public function getPayload(){ - return $this->_get(1); - } - - /** - * Set <payload> value - * - * @param \grpc\testing\Payload $value - * @return \grpc\testing\StreamingOutputCallResponse - */ - public function setPayload(\grpc\testing\Payload $value){ - return $this->_set(1, $value); - } - } -} - diff --git a/src/php/tests/interop/messages.proto b/src/php/tests/interop/messages.proto new file mode 100644 index 0000000000..de0b1a2320 --- /dev/null +++ b/src/php/tests/interop/messages.proto @@ -0,0 +1,132 @@ + +// Copyright 2015, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Message definitions to be used by integration test service definitions. + +syntax = "proto2"; + +package grpc.testing; + +// The type of payload that should be returned. +enum PayloadType { + // Compressable text format. + COMPRESSABLE = 0; + + // Uncompressable binary format. + UNCOMPRESSABLE = 1; + + // Randomly chosen from all other formats defined in this enum. + RANDOM = 2; +} + +// A block of data, to simply increase gRPC message size. +message Payload { + // The type of data in body. + optional PayloadType type = 1 [default = COMPRESSABLE]; + // Primary contents of payload. + optional bytes body = 2; +} + +// Unary request. +message SimpleRequest { + // Desired payload type in the response from the server. + // If response_type is RANDOM, server randomly chooses one from other formats. + optional PayloadType response_type = 1 [default = COMPRESSABLE]; + + // Desired payload size in the response from the server. + // If response_type is COMPRESSABLE, this denotes the size before compression. + optional int32 response_size = 2; + + // Optional input payload sent along with the request. + optional Payload payload = 3; + + // Whether SimpleResponse should include username. + optional bool fill_username = 4; + + // Whether SimpleResponse should include OAuth scope. + optional bool fill_oauth_scope = 5; +} + +// Unary response, as configured by the request. +message SimpleResponse { + // Payload to increase message size. + optional Payload payload = 1; + // The user the request came from, for verifying authentication was + // successful when the client expected it. + optional string username = 2; + // OAuth scope. + optional string oauth_scope = 3; +} + +// Client-streaming request. +message StreamingInputCallRequest { + // Optional input payload sent along with the request. + optional Payload payload = 1; + + // Not expecting any payload from the response. +} + +// Client-streaming response. +message StreamingInputCallResponse { + // Aggregated size of payloads received from the client. + optional int32 aggregated_payload_size = 1; +} + +// Configuration for a particular response. +message ResponseParameters { + // Desired payload sizes in responses from the server. + // If response_type is COMPRESSABLE, this denotes the size before compression. + optional int32 size = 1; + + // Desired interval between consecutive responses in the response stream in + // microseconds. + optional int32 interval_us = 2; +} + +// Server-streaming request. +message StreamingOutputCallRequest { + // Desired payload type in the response from the server. + // If response_type is RANDOM, the payload from each response in the stream + // might be of different types. This is to simulate a mixed type of payload + // stream. + optional PayloadType response_type = 1 [default = COMPRESSABLE]; + + // Configuration for each expected response message. + repeated ResponseParameters response_parameters = 2; + + // Optional input payload sent along with the request. + optional Payload payload = 3; +} + +// Server-streaming response, as configured by the request and parameters. +message StreamingOutputCallResponse { + // Payload to increase response size. + optional Payload payload = 1; +} diff --git a/src/php/tests/interop/test.php b/src/php/tests/interop/test.php deleted file mode 100755 index 014bbc9517..0000000000 --- a/src/php/tests/interop/test.php +++ /dev/null @@ -1,52 +0,0 @@ -<?php -// DO NOT EDIT! Generated by Protobuf-PHP protoc plugin 1.0 -// Source: test/cpp/interop/test.proto -// Date: 2015-01-30 23:30:46 - -namespace grpc\testing { - - class TestServiceClient{ - - private $rpc_impl; - - public function __construct($rpc_impl) { - $this->rpc_impl = $rpc_impl; - } - /** - * @param grpc\testing\EmptyMessage $input - */ - public function EmptyCall(\grpc\testing\EmptyMessage $argument, $metadata = array()) { - return $this->rpc_impl->_simpleRequest('/grpc.testing.TestService/EmptyCall', $argument, '\grpc\testing\EmptyMessage::deserialize', $metadata); - } - /** - * @param grpc\testing\SimpleRequest $input - */ - public function UnaryCall(\grpc\testing\SimpleRequest $argument, $metadata = array()) { - return $this->rpc_impl->_simpleRequest('/grpc.testing.TestService/UnaryCall', $argument, '\grpc\testing\SimpleResponse::deserialize', $metadata); - } - /** - * @param grpc\testing\StreamingOutputCallRequest $input - */ - public function StreamingOutputCall($argument, $metadata = array()) { - return $this->rpc_impl->_serverStreamRequest('/grpc.testing.TestService/StreamingOutputCall', $argument, '\grpc\testing\StreamingOutputCallResponse::deserialize', $metadata); - } - /** - * @param grpc\testing\StreamingInputCallRequest $input - */ - public function StreamingInputCall($arguments, $metadata = array()) { - return $this->rpc_impl->_clientStreamRequest('/grpc.testing.TestService/StreamingInputCall', $arguments, '\grpc\testing\StreamingInputCallResponse::deserialize', $metadata); - } - /** - * @param grpc\testing\StreamingOutputCallRequest $input - */ - public function FullDuplexCall($metadata = array()) { - return $this->rpc_impl->_bidiRequest('/grpc.testing.TestService/FullDuplexCall', '\grpc\testing\StreamingOutputCallResponse::deserialize', $metadata); - } - /** - * @param grpc\testing\StreamingOutputCallRequest $input - */ - public function HalfDuplexCall($metadata = array()) { - return $this->rpc_impl->_bidiRequest('/grpc.testing.TestService/HalfDuplexCall', '\grpc\testing\StreamingOutputCallResponse::deserialize', $metadata); - } - } -} diff --git a/src/php/tests/interop/test.proto b/src/php/tests/interop/test.proto new file mode 100644 index 0000000000..39c08f3544 --- /dev/null +++ b/src/php/tests/interop/test.proto @@ -0,0 +1,72 @@ + +// Copyright 2015, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// An integration test service that covers all the method signature permutations +// of unary/streaming requests/responses. +syntax = "proto2"; + +import "empty.proto"; +import "messages.proto"; + +package grpc.testing; + +// A simple service to test the various types of RPCs and experiment with +// performance with various types of payload. +service TestService { + // One empty request followed by one empty response. + rpc EmptyCall(grpc.testing.EmptyMessage) returns (grpc.testing.EmptyMessage); + + // One request followed by one response. + // TODO(Issue 527): Describe required server behavior. + rpc UnaryCall(SimpleRequest) returns (SimpleResponse); + + // One request followed by a sequence of responses (streamed download). + // The server returns the payload with client desired type and sizes. + rpc StreamingOutputCall(StreamingOutputCallRequest) + returns (stream StreamingOutputCallResponse); + + // A sequence of requests followed by one response (streamed upload). + // The server returns the aggregated size of client payload as the result. + rpc StreamingInputCall(stream StreamingInputCallRequest) + returns (StreamingInputCallResponse); + + // A sequence of requests with each request served by the server immediately. + // As one request could lead to multiple responses, this interface + // demonstrates the idea of full duplexing. + rpc FullDuplexCall(stream StreamingOutputCallRequest) + returns (stream StreamingOutputCallResponse); + + // A sequence of requests followed by a sequence of responses. + // The server buffers all the client requests and then serves them in order. A + // stream of responses are returned to the client when the server starts with + // first request. + rpc HalfDuplexCall(stream StreamingOutputCallRequest) + returns (stream StreamingOutputCallResponse); +} |