| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 | 
// 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.// TODO: start using src/proto/math/math.proto and remove this file once// PHP supports proto3.syntax = "proto2";package math;message DivArgs {  optional int64 dividend = 1 [default = 0];  optional int64 divisor = 2 [default = 0];}message DivReply {  optional int64 quotient = 1 [default = 0];  optional int64 remainder = 2 [default = 0];}message FibArgs {  optional int64 limit = 1 [default = 0];}message Num {  optional int64 num = 1 [default = 0];}message FibReply {  optional int64 count = 1 [default = 0];}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) {  }}
 |