Brunet.Services.Dht.RpcDhtProxy.HandleRpc C# (CSharp) Method

HandleRpc() public method

public HandleRpc ( ISender caller, string method, IList arguments, object request_state ) : void
caller ISender
method string
arguments IList
request_state object
return void
    public void HandleRpc(ISender caller, string method, IList arguments, object request_state)
    {
      object result = null;
      MemBlock key;
      MemBlock value;
      int ttl;
        
      try {
        switch(method) {
          case "Register": 
            key = MemBlock.Reference((byte[]) arguments[0]);
            value = MemBlock.Reference((byte[]) arguments[1]);
            ttl = (int) arguments[2];
            result = Register(key, value, ttl);
            break;
          case "Unregister":
            key = MemBlock.Reference((byte[]) arguments[0]);
            value = MemBlock.Reference((byte[]) arguments[1]);
            result = Unregister(key, value);
            break;
          case "ListEntries":
            result = ListEntries();
            break;
          default:
            throw new Exception("Invalid method");
        }
      }
      catch (Exception e) {
        result = new AdrException(-32602, e);
      }
      _rpc.SendResult(request_state, result);
    }