Brunet.Messaging.RpcManager.HandleReply C# (CSharp) Метод

HandleReply() публичный Метод

public HandleReply ( ReqrepManager man, ReqrepManager rt, int mid, PType prot, MemBlock payload, ISender ret_path, ReqrepManager statistics, object state ) : bool
man ReqrepManager
rt ReqrepManager
mid int
prot Brunet.Util.PType
payload Brunet.Util.MemBlock
ret_path ISender
statistics ReqrepManager
state object
Результат bool
  public bool HandleReply(ReqrepManager man, ReqrepManager.ReqrepType rt,
			  int mid, PType prot, MemBlock payload, ISender ret_path,
			  ReqrepManager.Statistics statistics, object state)
  {
    RpcRequestState rs = (RpcRequestState) state;
    //ISender target = rs.RpcTarget;
    Channel bq = rs.Results;
    if( bq != null ) {
      object data = AdrConverter.Deserialize(payload);
      RpcResult res = new RpcResult(ret_path, data, statistics);
      //handle possible exception:
      try {
        bq.Enqueue(res);
        //Keep listening unless the queue is closed
        return (!bq.Closed);
      }
      catch(System.InvalidOperationException) {
        //The queue is closed, stop listening for more results:
        return false;
      }
    }
    else {
      //If they didn't even pass us a queue, I guess they didn't want to
      //listen too long
      return false;
    }
  }