mirror of https://github.com/grpc/grpc.git
Merge pull request #19257 from stanley-cheung/php-update-math-server-test
PHP: update generated code testpull/19280/head
commit
6a4f97032d
4 changed files with 139 additions and 2 deletions
@ -0,0 +1,127 @@ |
|||||||
|
/* |
||||||
|
* |
||||||
|
* Copyright 2015 gRPC authors. |
||||||
|
* |
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
* you may not use this file except in compliance with the License. |
||||||
|
* You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
* |
||||||
|
*/ |
||||||
|
|
||||||
|
var PROTO_PATH = __dirname + '/../../../proto/math/math.proto'; |
||||||
|
|
||||||
|
var grpc = require('grpc'); |
||||||
|
var protoLoader = require('@grpc/proto-loader'); |
||||||
|
var packageDefinition = protoLoader.loadSync( |
||||||
|
PROTO_PATH, |
||||||
|
{keepCase: true, |
||||||
|
longs: String, |
||||||
|
enums: String, |
||||||
|
defaults: true, |
||||||
|
oneofs: true |
||||||
|
}); |
||||||
|
var math_proto = grpc.loadPackageDefinition(packageDefinition).math; |
||||||
|
|
||||||
|
/** |
||||||
|
* Implements the Div RPC method. |
||||||
|
*/ |
||||||
|
function Div(call, callback) { |
||||||
|
var divisor = call.request.divisor; |
||||||
|
var dividend = call.request.dividend; |
||||||
|
if (divisor == 0) { |
||||||
|
callback({ |
||||||
|
code: grpc.status.INVALID_ARGUMENT, |
||||||
|
details: 'Cannot divide by zero' |
||||||
|
}); |
||||||
|
} else { |
||||||
|
setTimeout(function () { |
||||||
|
callback(null, { |
||||||
|
quotient: Math.floor(dividend / divisor), |
||||||
|
remainder: dividend % divisor |
||||||
|
}); |
||||||
|
}, 1); // 1 millisecond, to make sure 1 microsecond timeout from test
|
||||||
|
// will hit. TODO: Consider fixing this.
|
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Implements the Fib RPC method. |
||||||
|
*/ |
||||||
|
function Fib(stream) { |
||||||
|
var previous = 0, current = 1; |
||||||
|
for (var i = 0; i < stream.request.limit; i++) { |
||||||
|
stream.write({ |
||||||
|
num: current |
||||||
|
}); |
||||||
|
var temp = current; |
||||||
|
current += previous; |
||||||
|
previous = temp; |
||||||
|
} |
||||||
|
stream.end(); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Implements the Sum RPC method. |
||||||
|
*/ |
||||||
|
function Sum(call, callback) { |
||||||
|
var sum = 0; |
||||||
|
call.on('data', function(data) { |
||||||
|
sum += parseInt(data.num); |
||||||
|
}); |
||||||
|
call.on('end', function() { |
||||||
|
callback(null, { |
||||||
|
num: sum |
||||||
|
}); |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Implements the DivMany RPC method. |
||||||
|
*/ |
||||||
|
function DivMany(stream) { |
||||||
|
stream.on('data', function(div_args) { |
||||||
|
var divisor = div_args.divisor; |
||||||
|
var dividend = div_args.dividend; |
||||||
|
if (divisor == 0) { |
||||||
|
stream.emit('error', { |
||||||
|
code: grpc.status.INVALID_ARGUMENT, |
||||||
|
details: 'Cannot divide by zero' |
||||||
|
}); |
||||||
|
} else { |
||||||
|
stream.write({ |
||||||
|
quotient: Math.floor(dividend / divisor), |
||||||
|
remainder: dividend % divisor |
||||||
|
}); |
||||||
|
} |
||||||
|
}); |
||||||
|
stream.on('end', function() { |
||||||
|
stream.end(); |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Starts an RPC server that receives requests for the Math service at the |
||||||
|
* sample server port |
||||||
|
*/ |
||||||
|
function main() { |
||||||
|
var server = new grpc.Server(); |
||||||
|
server.addService(math_proto.Math.service, { |
||||||
|
Div: Div, |
||||||
|
Fib: Fib, |
||||||
|
Sum: Sum, |
||||||
|
DivMany: DivMany, |
||||||
|
}); |
||||||
|
server.bind('0.0.0.0:50051', grpc.ServerCredentials.createInsecure()); |
||||||
|
server.start(); |
||||||
|
} |
||||||
|
|
||||||
|
main(); |
@ -0,0 +1,8 @@ |
|||||||
|
{ |
||||||
|
"name": "grpc-examples", |
||||||
|
"version": "0.1.0", |
||||||
|
"dependencies": { |
||||||
|
"@grpc/proto-loader": "^0.1.0", |
||||||
|
"grpc": "^1.11.0" |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue