2011-10-28 21:55:05 +00:00
|
|
|
/**
|
|
|
|
* 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 are the messages used by Hadoop RPC to marshal the
|
|
|
|
* request and response in the RPC layer.
|
|
|
|
*/
|
|
|
|
option java_package = "org.apache.hadoop.ipc.protobuf";
|
|
|
|
option java_outer_classname = "HadoopRpcProtos";
|
|
|
|
option java_generate_equals_and_hash = true;
|
2012-10-27 18:44:15 +00:00
|
|
|
package hadoop.common;
|
2011-10-28 21:55:05 +00:00
|
|
|
|
|
|
|
/**
|
2012-03-23 18:21:45 +00:00
|
|
|
* This message is used for Protobuf Rpc Engine.
|
|
|
|
* The message is used to marshal a Rpc-request
|
2011-10-28 21:55:05 +00:00
|
|
|
* from RPC client to the RPC server.
|
2012-03-23 18:21:45 +00:00
|
|
|
* The Response to the Rpc call (including errors) are handled
|
|
|
|
* as part of the standard Rpc response.
|
2011-10-28 21:55:05 +00:00
|
|
|
*/
|
|
|
|
message HadoopRpcRequestProto {
|
|
|
|
/** Name of the RPC method */
|
|
|
|
required string methodName = 1;
|
|
|
|
|
|
|
|
/** Bytes corresponding to the client protobuf request */
|
|
|
|
optional bytes request = 2;
|
2011-12-04 20:44:36 +00:00
|
|
|
|
2012-05-23 21:16:39 +00:00
|
|
|
/**
|
|
|
|
* RPCs for a particular interface (ie protocol) are done using a
|
|
|
|
* IPC connection that is setup using rpcProxy.
|
|
|
|
* The rpcProxy's has a declared protocol name that is
|
|
|
|
* sent form client to server at connection time.
|
|
|
|
*
|
|
|
|
* Each Rpc call also sends a protocol name
|
|
|
|
* (called declaringClassprotocolName). This name is usually the same
|
|
|
|
* as the connection protocol name except in some cases.
|
|
|
|
* For example metaProtocols such ProtocolInfoProto which get metainfo
|
|
|
|
* about the protocol reuse the connection but need to indicate that
|
|
|
|
* the actual protocol is different (i.e. the protocol is
|
|
|
|
* ProtocolInfoProto) since they reuse the connection; in this case
|
|
|
|
* the declaringClassProtocolName field is set to the ProtocolInfoProto
|
|
|
|
*/
|
2011-12-04 20:44:36 +00:00
|
|
|
required string declaringClassProtocolName = 3;
|
|
|
|
|
|
|
|
/** protocol version of class declaring the called method */
|
|
|
|
required uint64 clientProtocolVersion = 4;
|
2011-10-28 21:55:05 +00:00
|
|
|
}
|