public static Task WaitToBeReceivedAsync(this Tracking tracking, Postman postman) => postman.WaitToBeReceivedAsync(tracking);
public static void WaitToBeReceived(this Tracking tracking, Postman postman) => postman.WaitToBeReceived(tracking);
public static void WaitForDelivery(this Tracking tracking, Postman postman) => postman.WaitForDelivery(tracking);
public static Task WaitForDeliveryAsync(this Tracking tracking, Postman postman) => postman.WaitForDeliveryAsync(tracking);
TaskCompletionSource <MessageClass> ReceiveCompletionSource(Tracking key) => _receiveQueue.GetOrAdd(key, _ => new TaskCompletionSource <MessageClass>());