예제 #1
0
 /// <summary>
 /// Query queue keys opened at server side
 /// </summary>
 /// <param name="gk">A callback for tracking a list of key names</param>
 /// <param name="discarded">a callback for tracking cancel or socket closed event</param>
 /// <returns>true for sending the request successfully, and false for failure</returns>
 public virtual bool GetKeys(DGetKeys gk, DDiscarded discarded)
 {
     return(SendRequest(idGetKeys, (ar) =>
     {
         CUQueue q = ar.UQueue;
         if (gk != null)
         {
             uint size;
             q.Load(out size);
             string[] v = new string[size];
             for (uint n = 0; n < size; ++n)
             {
                 byte[] bytes;
                 q.Load(out bytes);
                 if (bytes != null)
                 {
                     v[n] = Encoding.UTF8.GetString(bytes, 0, bytes.Length);
                 }
             }
             gk((CAsyncQueue)ar.AsyncServiceHandler, v);
         }
         else
         {
             q.SetSize(0);
         }
     }, discarded, (DOnExceptionFromServer)null));
 }
예제 #2
0
 /// <summary>
 /// Query queue keys opened at server side
 /// </summary>
 /// <param name="gk">A callback for tracking a list of key names</param>
 /// <returns>true for sending the request successfully, and false for failure</returns>
 public bool GetKeys(DGetKeys gk)
 {
     return SendRequest(idGetKeys, (ar) =>
     {
         if (gk != null)
         {
             uint size;
             ar.Load(out size);
             string[] v = new string[size];
             for (uint n = 0; n < size; ++n)
             {
                 byte[] bytes;
                 ar.Load(out bytes);
                 if (bytes != null)
                     v[n] = Encoding.UTF8.GetString(bytes, 0, bytes.Length);
             }
             gk(v);
         }
         else
         {
             ar.UQueue.SetSize(0);
         }
     });
 }
예제 #3
0
 /// <summary>
 /// Query queue keys opened at server side
 /// </summary>
 /// <param name="gk">A callback for tracking a list of key names</param>
 /// <returns>true for sending the request successfully, and false for failure</returns>
 public bool GetKeys(DGetKeys gk)
 {
     return(GetKeys(gk, null));
 }