/// <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)); }
/// <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); } }); }
/// <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)); }