Thrift之TProcess类体系原理及源码详细解析
2012-06-03 15:50:17 来源:WEB开发网核心提示:result.success = &_return;result.read(iprot_);//读取函数返回值iprot_->readMessageEnd();iprot_->getTransport()->readEnd();if (result.__isset.success) {//成功就返回结
result.success = &_return;
result.read(iprot_);//读取函数返回值
iprot_->readMessageEnd();
iprot_->getTransport()->readEnd();
if (result.__isset.success) {//成功就返回结果(已经在_return里面),否则抛出异常
return;
}
throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getName failed: unknown result");
上面代码就是处理远程调用的返回结果,代码里面有注释。一个服务函数的实现大概流程已经展现在我们面前了,处理的过程也已经清晰。这个只是用于客户端的处理流程,必须通过有效的机制来通知服务器端调用相应的函数(这就是RPC)在服务器端完成相应功能并将结果返回。这种机制就是通过我们这部分介绍的TProcessor类实现,这就是上面提到三个类中的第二个类,在这个实例中是FacebookServiceProcessor类,它从TProcessor类继承,重点实现两个函数process和process_fn,其中process会调用process_fn函数来处理客户端具体调用的那个服务函数,
更多精彩
赞助商链接