internal ClientRequestContext GetRequestContext(ClientTransport transport) { Contract.Requires(transport != null); Contract.Ensures(Contract.Result <ClientRequestContext>() != null); var result = RequestContextPool.Borrow(); result.SetTransport(transport); result.RenewSessionId(); return(result); }
/// <summary> /// Returns the request context to the pool. /// </summary> /// <param name="context">The context to the pool.</param> /// <exception cref="ArgumentNullException"> /// <paramref name="context"/> is <c>null</c>. /// </exception> protected internal void ReturnRequestContext(ClientRequestContext context) { if (context == null) { throw new ArgumentNullException(nameof(context)); } Contract.EndContractBlock(); context.Clear(); context.UnboundTransport(); RequestContextPool.Return(context); }