All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.opentelemetry.exporter.otlp.logs.MarshalerLogsServiceGrpc Maven / Gradle / Ivy

There is a newer version: 1.44.1
Show newest version
/*
 * Copyright The OpenTelemetry Authors
 * SPDX-License-Identifier: Apache-2.0
 */

package io.opentelemetry.exporter.otlp.logs;

import static io.grpc.MethodDescriptor.generateFullMethodName;

import com.google.common.util.concurrent.ListenableFuture;
import io.grpc.CallOptions;
import io.grpc.Channel;
import io.grpc.MethodDescriptor;
import io.grpc.stub.ClientCalls;
import io.opentelemetry.exporter.internal.grpc.MarshalerInputStream;
import io.opentelemetry.exporter.internal.grpc.MarshalerServiceStub;
import io.opentelemetry.exporter.internal.marshal.Marshaler;
import java.io.InputStream;
import javax.annotation.Nullable;

// Adapted from the protoc generated code for LogsServiceGrpc.
final class MarshalerLogsServiceGrpc {

  private static final String SERVICE_NAME = "opentelemetry.proto.collector.logs.v1.LogsService";

  private static final MethodDescriptor.Marshaller REQUEST_MARSHALLER =
      new MethodDescriptor.Marshaller() {
        @Override
        public InputStream stream(Marshaler value) {
          return new MarshalerInputStream(value);
        }

        @Override
        public Marshaler parse(InputStream stream) {
          throw new UnsupportedOperationException("Only for serializing");
        }
      };

  private static final MethodDescriptor.Marshaller RESPONSE_MARSHALER =
      new MethodDescriptor.Marshaller() {
        @Override
        public InputStream stream(ExportLogsServiceResponse value) {
          throw new UnsupportedOperationException("Only for parsing");
        }

        @Override
        public ExportLogsServiceResponse parse(InputStream stream) {
          return ExportLogsServiceResponse.INSTANCE;
        }
      };

  private static final MethodDescriptor getExportMethod =
      MethodDescriptor.newBuilder()
          .setType(MethodDescriptor.MethodType.UNARY)
          .setFullMethodName(generateFullMethodName(SERVICE_NAME, "Export"))
          .setRequestMarshaller(REQUEST_MARSHALLER)
          .setResponseMarshaller(RESPONSE_MARSHALER)
          .build();

  static LogsServiceFutureStub newFutureStub(Channel channel, @Nullable String authorityOverride) {
    return LogsServiceFutureStub.newStub(
        (c, options) -> new LogsServiceFutureStub(c, options.withAuthority(authorityOverride)),
        channel);
  }

  static final class LogsServiceFutureStub
      extends MarshalerServiceStub {
    private LogsServiceFutureStub(Channel channel, CallOptions callOptions) {
      super(channel, callOptions);
    }

    @Override
    protected MarshalerLogsServiceGrpc.LogsServiceFutureStub build(
        Channel channel, CallOptions callOptions) {
      return new MarshalerLogsServiceGrpc.LogsServiceFutureStub(channel, callOptions);
    }

    @Override
    public ListenableFuture export(Marshaler request) {
      return ClientCalls.futureUnaryCall(
          getChannel().newCall(getExportMethod, getCallOptions()), request);
    }
  }

  private MarshalerLogsServiceGrpc() {}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy