| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- #ifndef HV_PROTO_RPC_HANDLER_CALC_H_
- #define HV_PROTO_RPC_HANDLER_CALC_H_
- #include "../router.h"
- #include "../generated/calc.pb.h"
- void calc_add(const protorpc::Request& req, protorpc::Response* res) {
- // params
- if (req.params_size() != 2) {
- return bad_request(req, res);
- }
- protorpc::CalcParam param1, param2;
- if (!param1.ParseFromString(req.params(0)) ||
- !param2.ParseFromString(req.params(1))) {
- return bad_request(req, res);
- }
- // result
- protorpc::CalcResult result;
- result.set_num(param1.num() + param2.num());
- res->set_result(result.SerializeAsString());
- }
- void calc_sub(const protorpc::Request& req, protorpc::Response* res) {
- // params
- if (req.params_size() != 2) {
- return bad_request(req, res);
- }
- protorpc::CalcParam param1, param2;
- if (!param1.ParseFromString(req.params(0)) ||
- !param2.ParseFromString(req.params(1))) {
- return bad_request(req, res);
- }
- // result
- protorpc::CalcResult result;
- result.set_num(param1.num() - param2.num());
- res->set_result(result.SerializeAsString());
- }
- void calc_mul(const protorpc::Request& req, protorpc::Response* res) {
- // params
- if (req.params_size() != 2) {
- return bad_request(req, res);
- }
- protorpc::CalcParam param1, param2;
- if (!param1.ParseFromString(req.params(0)) ||
- !param2.ParseFromString(req.params(1))) {
- return bad_request(req, res);
- }
- // result
- protorpc::CalcResult result;
- result.set_num(param1.num() * param2.num());
- res->set_result(result.SerializeAsString());
- }
- void calc_div(const protorpc::Request& req, protorpc::Response* res) {
- // params
- if (req.params_size() != 2) {
- return bad_request(req, res);
- }
- protorpc::CalcParam param1, param2;
- if (!param1.ParseFromString(req.params(0)) ||
- !param2.ParseFromString(req.params(1))) {
- return bad_request(req, res);
- }
- if (param2.num() == 0) {
- return bad_request(req, res);
- }
- // result
- protorpc::CalcResult result;
- result.set_num(param1.num() / param2.num());
- res->set_result(result.SerializeAsString());
- }
- #endif // HV_PROTO_RPC_HANDLER_CALC_H_
|