public static Task <string> GetTask(FutureString fu) { TaskCompletionSource <string> tcs = new TaskCompletionSource <string>(); if (fu.status() == FutureStatus.Invalid) { tcs.SetException(new FirebaseException(0, "Asynchronous operation was not started.")); return(tcs.Task); } fu.SetOnCompletionCallback(delegate { if (fu.status() == FutureStatus.Invalid) { tcs.SetCanceled(); } else { int num = fu.error(); if (num != 0) { tcs.SetException(new FirebaseException(num, fu.error_message())); } else { tcs.SetResult(fu.result()); } } fu.Dispose(); }); return(tcs.Task); }
internal static HandleRef getCPtr(FutureString obj) { return((obj != null) ? obj.swigCPtr : new HandleRef(null, IntPtr.Zero)); }