/// <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);
     }
 }
Esempio n. 2
0
 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());
 }
Esempio n. 3
0
        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);
        }