|  | /** | 
|  | * 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 http://wiki.apache.org/hadoop/Compatibility | 
|  | * for what changes are allowed for a *stable* .proto interface. | 
|  | */ | 
|  |  | 
|  | 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); | 
|  | } |