io.grpc.InternalMetadata#newMetadata ( )源码实例Demo

下面列出了io.grpc.InternalMetadata#newMetadata ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: grpc-nebula-java   文件: CronetClientStream.java
private void reportHeaders(List<Map.Entry<String, String>> headers, boolean endOfStream) {
  // TODO(ericgribkoff): create new utility methods to eliminate all these conversions
  List<String> headerList = new ArrayList<>();
  for (Map.Entry<String, String> entry : headers) {
    headerList.add(entry.getKey());
    headerList.add(entry.getValue());
  }

  byte[][] headerValues = new byte[headerList.size()][];
  for (int i = 0; i < headerList.size(); i += 2) {
    headerValues[i] = headerList.get(i).getBytes(Charset.forName("UTF-8"));
    headerValues[i + 1] = headerList.get(i + 1).getBytes(Charset.forName("UTF-8"));
  }
  Metadata metadata =
      InternalMetadata.newMetadata(TransportFrameUtil.toRawSerializedHeaders(headerValues));
  synchronized (state.lock) {
    // There's no pending onReadCompleted callback so we can report trailers now.
    state.transportHeadersReceived(metadata, endOfStream);
  }
}
 
源代码2 项目: grpc-nebula-java   文件: TransportFrameUtilTest.java
@Test
public void dupBinHeadersWithComma() {
  byte[][] http2Headers = new byte[][] {
      BINARY_BYTES.name().getBytes(US_ASCII),
      "BaS,e6,,4+,padding==".getBytes(US_ASCII),
      BINARY_BYTES.name().getBytes(US_ASCII),
      "more".getBytes(US_ASCII),
      BINARY_BYTES.name().getBytes(US_ASCII),
      "".getBytes(US_ASCII)};
  byte[][] rawSerialized = TransportFrameUtil.toRawSerializedHeaders(http2Headers);
  Metadata recoveredHeaders = InternalMetadata.newMetadata(rawSerialized);
  byte[][] values = Iterables.toArray(recoveredHeaders.getAll(BINARY_BYTES), byte[].class);

  assertTrue(Arrays.deepEquals(
      new byte[][] {
          BaseEncoding.base64().decode("BaS"),
          BaseEncoding.base64().decode("e6"),
          BaseEncoding.base64().decode(""),
          BaseEncoding.base64().decode("4+"),
          BaseEncoding.base64().decode("padding"),
          BaseEncoding.base64().decode("more"),
          BaseEncoding.base64().decode("")},
      values));
}
 
源代码3 项目: grpc-java   文件: CronetClientStream.java
private void reportHeaders(List<Map.Entry<String, String>> headers, boolean endOfStream) {
  // TODO(ericgribkoff): create new utility methods to eliminate all these conversions
  List<String> headerList = new ArrayList<>();
  for (Map.Entry<String, String> entry : headers) {
    headerList.add(entry.getKey());
    headerList.add(entry.getValue());
  }

  byte[][] headerValues = new byte[headerList.size()][];
  for (int i = 0; i < headerList.size(); i += 2) {
    headerValues[i] = headerList.get(i).getBytes(Charset.forName("UTF-8"));
    headerValues[i + 1] = headerList.get(i + 1).getBytes(Charset.forName("UTF-8"));
  }
  Metadata metadata =
      InternalMetadata.newMetadata(TransportFrameUtil.toRawSerializedHeaders(headerValues));
  synchronized (state.lock) {
    // There's no pending onReadCompleted callback so we can report trailers now.
    state.transportHeadersReceived(metadata, endOfStream);
  }
}
 
源代码4 项目: grpc-java   文件: TransportFrameUtilTest.java
@Test
public void dupBinHeadersWithComma() {
  byte[][] http2Headers = new byte[][] {
      BINARY_BYTES.name().getBytes(US_ASCII),
      "BaS,e6,,4+,padding==".getBytes(US_ASCII),
      BINARY_BYTES.name().getBytes(US_ASCII),
      "more".getBytes(US_ASCII),
      BINARY_BYTES.name().getBytes(US_ASCII),
      "".getBytes(US_ASCII)};
  byte[][] rawSerialized = TransportFrameUtil.toRawSerializedHeaders(http2Headers);
  Metadata recoveredHeaders = InternalMetadata.newMetadata(rawSerialized);
  byte[][] values = Iterables.toArray(recoveredHeaders.getAll(BINARY_BYTES), byte[].class);

  assertTrue(Arrays.deepEquals(
      new byte[][] {
          BaseEncoding.base64().decode("BaS"),
          BaseEncoding.base64().decode("e6"),
          BaseEncoding.base64().decode(""),
          BaseEncoding.base64().decode("4+"),
          BaseEncoding.base64().decode("padding"),
          BaseEncoding.base64().decode("more"),
          BaseEncoding.base64().decode("")},
      values));
}
 
源代码5 项目: grpc-nebula-java   文件: Utils.java
public static Metadata convertHeaders(Http2Headers http2Headers) {
  if (http2Headers instanceof GrpcHttp2InboundHeaders) {
    GrpcHttp2InboundHeaders h = (GrpcHttp2InboundHeaders) http2Headers;
    return InternalMetadata.newMetadata(h.numHeaders(), h.namesAndValues());
  }
  return InternalMetadata.newMetadata(convertHeadersToArray(http2Headers));
}
 
源代码6 项目: grpc-nebula-java   文件: Utils.java
public static Metadata convertTrailers(Http2Headers http2Headers) {
  if (http2Headers instanceof GrpcHttp2InboundHeaders) {
    GrpcHttp2InboundHeaders h = (GrpcHttp2InboundHeaders) http2Headers;
    return InternalMetadata.newMetadata(h.numHeaders(), h.namesAndValues());
  }
  return InternalMetadata.newMetadata(convertHeadersToArray(http2Headers));
}
 
源代码7 项目: grpc-nebula-java   文件: TransportFrameUtilTest.java
@Test
public void testToAndFromHttp2Headers() {
  Metadata headers = new Metadata();
  headers.put(PLAIN_STRING, COMPLIANT_ASCII_STRING);
  headers.put(BINARY_STRING, NONCOMPLIANT_ASCII_STRING);
  headers.put(BINARY_STRING_WITHOUT_SUFFIX, NONCOMPLIANT_ASCII_STRING);
  byte[][] http2Headers = TransportFrameUtil.toHttp2Headers(headers);
  byte[][] rawSerialized = TransportFrameUtil.toRawSerializedHeaders(http2Headers);
  Metadata recoveredHeaders = InternalMetadata.newMetadata(rawSerialized);
  assertEquals(COMPLIANT_ASCII_STRING, recoveredHeaders.get(PLAIN_STRING));
  assertEquals(NONCOMPLIANT_ASCII_STRING, recoveredHeaders.get(BINARY_STRING));
  assertNull(recoveredHeaders.get(BINARY_STRING_WITHOUT_SUFFIX));
}
 
源代码8 项目: grpc-java   文件: Utils.java
public static Metadata convertHeaders(Http2Headers http2Headers) {
  if (http2Headers instanceof GrpcHttp2InboundHeaders) {
    GrpcHttp2InboundHeaders h = (GrpcHttp2InboundHeaders) http2Headers;
    return InternalMetadata.newMetadata(h.numHeaders(), h.namesAndValues());
  }
  return InternalMetadata.newMetadata(convertHeadersToArray(http2Headers));
}
 
源代码9 项目: grpc-java   文件: Utils.java
public static Metadata convertTrailers(Http2Headers http2Headers) {
  if (http2Headers instanceof GrpcHttp2InboundHeaders) {
    GrpcHttp2InboundHeaders h = (GrpcHttp2InboundHeaders) http2Headers;
    return InternalMetadata.newMetadata(h.numHeaders(), h.namesAndValues());
  }
  return InternalMetadata.newMetadata(convertHeadersToArray(http2Headers));
}
 
源代码10 项目: grpc-java   文件: TransportFrameUtilTest.java
@Test
public void testToAndFromHttp2Headers() {
  Metadata headers = new Metadata();
  headers.put(PLAIN_STRING, COMPLIANT_ASCII_STRING);
  headers.put(BINARY_STRING, NONCOMPLIANT_ASCII_STRING);
  headers.put(BINARY_STRING_WITHOUT_SUFFIX, NONCOMPLIANT_ASCII_STRING);
  byte[][] http2Headers = TransportFrameUtil.toHttp2Headers(headers);
  byte[][] rawSerialized = TransportFrameUtil.toRawSerializedHeaders(http2Headers);
  Metadata recoveredHeaders = InternalMetadata.newMetadata(rawSerialized);
  assertEquals(COMPLIANT_ASCII_STRING, recoveredHeaders.get(PLAIN_STRING));
  assertEquals(NONCOMPLIANT_ASCII_STRING, recoveredHeaders.get(BINARY_STRING));
  assertNull(recoveredHeaders.get(BINARY_STRING_WITHOUT_SUFFIX));
}
 
源代码11 项目: grpc-nebula-java   文件: Utils.java
public static Metadata convertHeaders(List<Header> http2Headers) {
  return InternalMetadata.newMetadata(convertHeadersToArray(http2Headers));
}
 
源代码12 项目: grpc-nebula-java   文件: Utils.java
public static Metadata convertTrailers(List<Header> http2Headers) {
  return InternalMetadata.newMetadata(convertHeadersToArray(http2Headers));
}
 
源代码13 项目: grpc-java   文件: Utils.java
public static Metadata convertHeaders(List<Header> http2Headers) {
  return InternalMetadata.newMetadata(convertHeadersToArray(http2Headers));
}
 
源代码14 项目: grpc-java   文件: Utils.java
public static Metadata convertTrailers(List<Header> http2Headers) {
  return InternalMetadata.newMetadata(convertHeadersToArray(http2Headers));
}
 
 方法所在类