/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * These .proto interfaces are private and stable. * Please see https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/Compatibility.html * for what changes are allowed for a *stable* .proto interface. */ syntax = "proto2"; option java_package = "org.apache.hadoop.ipc.protobuf"; option java_outer_classname = "ProtocolInfoProtos"; option java_generic_services = true; option java_generate_equals_and_hash = true; package hadoop.common; /** * Request to get protocol versions for all supported rpc kinds. */ message GetProtocolVersionsRequestProto { required string protocol = 1; // Protocol name } /** * Protocol version with corresponding rpc kind. */ message ProtocolVersionProto { required string rpcKind = 1; //RPC kind repeated uint64 versions = 2; //Protocol version corresponding to the rpc kind. } /** * Get protocol version response. */ message GetProtocolVersionsResponseProto { repeated ProtocolVersionProto protocolVersions = 1; } /** * Get protocol signature request. */ message GetProtocolSignatureRequestProto { required string protocol = 1; // Protocol name required string rpcKind = 2; // RPC kind } /** * Get protocol signature response. */ message GetProtocolSignatureResponseProto { repeated ProtocolSignatureProto protocolSignature = 1; } message ProtocolSignatureProto { required uint64 version = 1; repeated uint32 methods = 2; } /** * Protocol to get information about protocols. */ service ProtocolInfoService { /** * Return protocol version corresponding to protocol interface for each * supported rpc kind. */ rpc getProtocolVersions(GetProtocolVersionsRequestProto) returns (GetProtocolVersionsResponseProto); /** * Return protocol version corresponding to protocol interface. */ rpc getProtocolSignature(GetProtocolSignatureRequestProto) returns (GetProtocolSignatureResponseProto); }