• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java GetProtocolSignatureResponseProto类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.apache.hadoop.ipc.protobuf.ProtocolInfoProtos.GetProtocolSignatureResponseProto的典型用法代码示例。如果您正苦于以下问题:Java GetProtocolSignatureResponseProto类的具体用法?Java GetProtocolSignatureResponseProto怎么用?Java GetProtocolSignatureResponseProto使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



GetProtocolSignatureResponseProto类属于org.apache.hadoop.ipc.protobuf.ProtocolInfoProtos包,在下文中一共展示了GetProtocolSignatureResponseProto类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: getProtocolSignature

import org.apache.hadoop.ipc.protobuf.ProtocolInfoProtos.GetProtocolSignatureResponseProto; //导入依赖的package包/类
@Override
public GetProtocolSignatureResponseProto getProtocolSignature(
    RpcController controller, GetProtocolSignatureRequestProto request)
    throws ServiceException {
  GetProtocolSignatureResponseProto.Builder builder = GetProtocolSignatureResponseProto
      .newBuilder();
  String protocol = request.getProtocol();
  String rpcKind = request.getRpcKind();
  long[] versions;
  try {
    versions = getProtocolVersionForRpcKind(RPC.RpcKind.valueOf(rpcKind),
        protocol);
  } catch (ClassNotFoundException e1) {
    throw new ServiceException(e1);
  }
  if (versions == null) {
    return builder.build();
  }
  for (long v : versions) {
    ProtocolSignatureProto.Builder sigBuilder = ProtocolSignatureProto
        .newBuilder();
    sigBuilder.setVersion(v);
    try {
      ProtocolSignature signature = ProtocolSignature.getProtocolSignature(
          protocol, v);
      for (int m : signature.getMethods()) {
        sigBuilder.addMethods(m);
      }
    } catch (ClassNotFoundException e) {
      throw new ServiceException(e);
    }
    builder.addProtocolSignature(sigBuilder.build());
  }
  return builder.build();
}
 
开发者ID:nucypher,项目名称:hadoop-oss,代码行数:36,代码来源:ProtocolMetaInfoServerSideTranslatorPB.java


示例2: testProtocolMetaInfoSSTranslatorPB

import org.apache.hadoop.ipc.protobuf.ProtocolInfoProtos.GetProtocolSignatureResponseProto; //导入依赖的package包/类
/**
 * Verify that ProtocolMetaInfoServerSideTranslatorPB correctly looks up
 * the server registry to extract protocol signatures and versions.
 */
@Test
public void testProtocolMetaInfoSSTranslatorPB() throws Exception {
  TestImpl1 impl = new TestImpl1();
  server = new RPC.Builder(conf).setProtocol(TestProtocol1.class)
      .setInstance(impl).setBindAddress(ADDRESS).setPort(0).setNumHandlers(2)
      .setVerbose(false).build();
  server.addProtocol(RPC.RpcKind.RPC_WRITABLE, TestProtocol0.class, impl);
  server.start();

  ProtocolMetaInfoServerSideTranslatorPB xlator = 
      new ProtocolMetaInfoServerSideTranslatorPB(server);

  GetProtocolSignatureResponseProto resp = xlator.getProtocolSignature(
      null,
      createGetProtocolSigRequestProto(TestProtocol1.class,
          RPC.RpcKind.RPC_PROTOCOL_BUFFER));
  //No signatures should be found
  Assert.assertEquals(0, resp.getProtocolSignatureCount());
  resp = xlator.getProtocolSignature(
      null,
      createGetProtocolSigRequestProto(TestProtocol1.class,
          RPC.RpcKind.RPC_WRITABLE));
  Assert.assertEquals(1, resp.getProtocolSignatureCount());
  ProtocolSignatureProto sig = resp.getProtocolSignatureList().get(0);
  Assert.assertEquals(TestProtocol1.versionID, sig.getVersion());
  boolean found = false;
  int expected = ProtocolSignature.getFingerprint(TestProtocol1.class
      .getMethod("echo", String.class));
  for (int m : sig.getMethodsList()) {
    if (expected == m) {
      found = true;
      break;
    }
  }
  Assert.assertTrue(found);
}
 
开发者ID:nucypher,项目名称:hadoop-oss,代码行数:41,代码来源:TestRPCCompatibility.java


示例3: isMethodSupported

import org.apache.hadoop.ipc.protobuf.ProtocolInfoProtos.GetProtocolSignatureResponseProto; //导入依赖的package包/类
/**
 * Returns whether the given method is supported or not.
 * The protocol signatures are fetched and cached. The connection id for the
 * proxy provided is re-used.
 * @param rpcProxy Proxy which provides an existing connection id.
 * @param protocol Protocol for which the method check is required.
 * @param rpcKind The RpcKind for which the method check is required.
 * @param version The version at the client.
 * @param methodName Name of the method.
 * @return true if the method is supported, false otherwise.
 * @throws IOException
 */
public static boolean isMethodSupported(Object rpcProxy, Class<?> protocol,
    RPC.RpcKind rpcKind, long version, String methodName) throws IOException {
  InetSocketAddress serverAddress = RPC.getServerAddress(rpcProxy);
  Map<Long, ProtocolSignature> versionMap = getVersionSignatureMap(
      serverAddress, protocol.getName(), rpcKind.toString());

  if (versionMap == null) {
    Configuration conf = new Configuration();
    RPC.setProtocolEngine(conf, ProtocolMetaInfoPB.class,
        ProtobufRpcEngine.class);
    ProtocolMetaInfoPB protocolInfoProxy = getProtocolMetaInfoProxy(rpcProxy,
        conf);
    GetProtocolSignatureRequestProto.Builder builder = 
        GetProtocolSignatureRequestProto.newBuilder();
    builder.setProtocol(protocol.getName());
    builder.setRpcKind(rpcKind.toString());
    GetProtocolSignatureResponseProto resp;
    try {
      resp = protocolInfoProxy.getProtocolSignature(NULL_CONTROLLER,
          builder.build());
    } catch (ServiceException se) {
      throw ProtobufHelper.getRemoteException(se);
    }
    versionMap = convertProtocolSignatureProtos(resp
        .getProtocolSignatureList());
    putVersionSignatureMap(serverAddress, protocol.getName(),
        rpcKind.toString(), versionMap);
  }
  // Assuming unique method names.
  Method desiredMethod;
  Method[] allMethods = protocol.getMethods();
  desiredMethod = null;
  for (Method m : allMethods) {
    if (m.getName().equals(methodName)) {
      desiredMethod = m;
      break;
    }
  }
  if (desiredMethod == null) {
    return false;
  }
  int methodHash = ProtocolSignature.getFingerprint(desiredMethod);
  return methodExists(methodHash, version, versionMap);
}
 
开发者ID:nucypher,项目名称:hadoop-oss,代码行数:57,代码来源:RpcClientUtil.java



注:本文中的org.apache.hadoop.ipc.protobuf.ProtocolInfoProtos.GetProtocolSignatureResponseProto类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java ClientReadStatusProto类代码示例发布时间:2022-05-22
下一篇:
Java WeakOuter类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap