Documentation Coverage Report
Current view: top level - Cqrs/Commands - IPublishAndWaitCommandPublisher.cs Hit Total Coverage
Version: 2.2 Artefacts: 6 6 100.0 %
Date: 2018-08-07 15:04:50

          Line data    Source code
       1             : #region Copyright
       2             : // // -----------------------------------------------------------------------
       3             : // // <copyright company="Chinchilla Software Limited">
       4             : // //   Copyright Chinchilla Software Limited. All rights reserved.
       5             : // // </copyright>
       6             : // // -----------------------------------------------------------------------
       7             : #endregion
       8             : 
       9             : using System;
      10             : using System.Collections.Generic;
      11             : using Cqrs.Events;
      12             : 
      13             : namespace Cqrs.Commands
      14             : {
      15             :         /// <summary>
      16             :         /// Publishes an <see cref="ICommand{TAuthenticationToken}"/>
      17             :         /// </summary>
      18             :         /// <typeparam name="TAuthenticationToken">The <see cref="Type"/> of the authentication token.</typeparam>
      19             :         public interface IPublishAndWaitCommandPublisher<TAuthenticationToken> : ICommandPublisher<TAuthenticationToken>
      20             :         {
      21             :                 /// <summary>
      22             :                 /// Publishes the provided <paramref name="command"></paramref> and waits for an event of <typeparamref name="TEvent"/>
      23             :                 /// </summary>
      24             :                 /// <param name="command">The <typeparamref name="TCommand"/> to publish.</param>
      25             :                 /// <param name="eventReceiver">If provided, is the <see cref="IEventReceiver{TAuthenticationToken}" /> that the event is expected to be returned on.</param>
      26           1 :                 TEvent PublishAndWait<TCommand, TEvent>(TCommand command, IEventReceiver<TAuthenticationToken> eventReceiver = null)
      27             :                         where TCommand : ICommand<TAuthenticationToken>;
      28             : 
      29             :                 /// <summary>
      30             :                 /// Publishes the provided <paramref name="command"></paramref> and waits for an event of <typeparamref name="TEvent"/> or exits if the specified timeout is expired.
      31             :                 /// </summary>
      32             :                 /// <param name="command">The <typeparamref name="TCommand"/> to publish.</param>
      33             :                 /// <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to wait indefinitely.</param>
      34             :                 /// <param name="eventReceiver">If provided, is the <see cref="IEventReceiver{TAuthenticationToken}" /> that the event is expected to be returned on.</param>
      35           1 :                 TEvent PublishAndWait<TCommand, TEvent>(TCommand command, int millisecondsTimeout, IEventReceiver<TAuthenticationToken> eventReceiver = null)
      36             :                         where TCommand : ICommand<TAuthenticationToken>;
      37             : 
      38             :                 /// <summary>
      39             :                 /// Publishes the provided <paramref name="command"></paramref> and waits for an event of <typeparamref name="TEvent"/> or exits if the specified timeout is expired.
      40             :                 /// </summary>
      41             :                 /// <param name="command">The <typeparamref name="TCommand"/> to publish.</param>
      42             :                 /// <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely.</param>
      43             :                 /// <param name="eventReceiver">If provided, is the <see cref="IEventReceiver{TAuthenticationToken}" /> that the event is expected to be returned on.</param>
      44           1 :                 TEvent PublishAndWait<TCommand, TEvent>(TCommand command, TimeSpan timeout, IEventReceiver<TAuthenticationToken> eventReceiver = null)
      45             :                         where TCommand : ICommand<TAuthenticationToken>;
      46             : 
      47             :                 /// <summary>
      48             :                 /// Publishes the provided <paramref name="command"></paramref> and waits until the specified condition is satisfied an event of <typeparamref name="TEvent"/>
      49             :                 /// </summary>
      50             :                 /// <param name="command">The <typeparamref name="TCommand"/> to publish.</param>
      51             :                 /// <param name="condition">A delegate to be executed over and over until it returns the <typeparamref name="TEvent"/> that is desired, return null to keep trying.</param>
      52             :                 /// <param name="eventReceiver">If provided, is the <see cref="IEventReceiver{TAuthenticationToken}" /> that the event is expected to be returned on.</param>
      53           1 :                 TEvent PublishAndWait<TCommand, TEvent>(TCommand command, Func<IEnumerable<IEvent<TAuthenticationToken>>, TEvent> condition, IEventReceiver<TAuthenticationToken> eventReceiver = null)
      54             :                         where TCommand : ICommand<TAuthenticationToken>;
      55             : 
      56             :                 /// <summary>
      57             :                 /// Publishes the provided <paramref name="command"></paramref> and waits for an event of <typeparamref name="TEvent"/> or exits if the specified timeout is expired.
      58             :                 /// </summary>
      59             :                 /// <param name="command">The <typeparamref name="TCommand"/> to publish.</param>
      60             :                 /// <param name="condition">A delegate to be executed over and over until it returns the <typeparamref name="TEvent"/> that is desired, return null to keep trying.</param>
      61             :                 /// <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to wait indefinitely.</param>
      62             :                 /// <param name="eventReceiver">If provided, is the <see cref="IEventReceiver{TAuthenticationToken}" /> that the event is expected to be returned on.</param>
      63           1 :                 TEvent PublishAndWait<TCommand, TEvent>(TCommand command, Func<IEnumerable<IEvent<TAuthenticationToken>>, TEvent> condition, int millisecondsTimeout, IEventReceiver<TAuthenticationToken> eventReceiver = null)
      64             :                         where TCommand : ICommand<TAuthenticationToken>;
      65             : 
      66             :                 /// <summary>
      67             :                 /// Publishes the provided <paramref name="command"></paramref> and waits for an event of <typeparamref name="TEvent"/> or exits if the specified timeout is expired.
      68             :                 /// </summary>
      69             :                 /// <param name="command">The <typeparamref name="TCommand"/> to publish.</param>
      70             :                 /// <param name="condition">A delegate to be executed over and over until it returns the <typeparamref name="TEvent"/> that is desired, return null to keep trying.</param>
      71             :                 /// <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely.</param>
      72             :                 /// <param name="eventReceiver">If provided, is the <see cref="IEventReceiver{TAuthenticationToken}" /> that the event is expected to be returned on.</param>
      73           1 :                 TEvent PublishAndWait<TCommand, TEvent>(TCommand command, Func<IEnumerable<IEvent<TAuthenticationToken>>, TEvent> condition, TimeSpan timeout, IEventReceiver<TAuthenticationToken> eventReceiver = null)
      74             :                         where TCommand : ICommand<TAuthenticationToken>;
      75             :         }
      76             : }

Generated by: LCOV version 1.12