/// <exception cref="System.IO.IOException"/> public override Writable Call(RPC.RpcKind rpcKind, string protocol, Writable param , long receiveTime) { if (sleep) { // sleep a bit try { Sharpen.Thread.Sleep(PingInterval + MinSleepTime); } catch (Exception) { } } if (responseClass != null) { try { return(System.Activator.CreateInstance(responseClass)); } catch (Exception e) { throw new RuntimeException(e); } } else { return(param); } }
public static RpcHeaderProtos.RpcRequestHeaderProto MakeRpcRequestHeader(RPC.RpcKind rpcKind, RpcHeaderProtos.RpcRequestHeaderProto.OperationProto operation, int callId , int retryCount, byte[] uuid) { RpcHeaderProtos.RpcRequestHeaderProto.Builder result = RpcHeaderProtos.RpcRequestHeaderProto .NewBuilder(); result.SetRpcKind(Convert(rpcKind)).SetRpcOp(operation).SetCallId(callId).SetRetryCount (retryCount).SetClientId(ByteString.CopyFrom(uuid)); // Add tracing info if we are currently tracing. if (Trace.IsTracing()) { Span s = Trace.CurrentSpan(); result.SetTraceInfo(((RpcHeaderProtos.RPCTraceInfoProto)RpcHeaderProtos.RPCTraceInfoProto .NewBuilder().SetParentId(s.GetSpanId()).SetTraceId(s.GetTraceId()).Build())); } return((RpcHeaderProtos.RpcRequestHeaderProto)result.Build()); }
internal static RpcHeaderProtos.RpcKindProto Convert(RPC.RpcKind kind) { switch (kind) { case RPC.RpcKind.RpcBuiltin: { return(RpcHeaderProtos.RpcKindProto.RpcBuiltin); } case RPC.RpcKind.RpcWritable: { return(RpcHeaderProtos.RpcKindProto.RpcWritable); } case RPC.RpcKind.RpcProtocolBuffer: { return(RpcHeaderProtos.RpcKindProto.RpcProtocolBuffer); } } return(null); }