Beispiel #1
0
        public static IConcurrentWriter <T> CreateWriter <T>(string Path, IConcurrentOutput <T> Producer)
        {
            var writer = new ConcurrentWriter <T>(Path);

            writer.InputFrom(Producer);
            writer.ObserveCollection(Producer);
            return(writer);
        }
Beispiel #2
0
 /// <summary>
 /// Subcsribes <paramref name="ObjectThatConsumesItems"/> to <paramref name="ObjectThatProducesItems"/>, so that when <paramref name="ObjectThatProducesItems"/> produces items <paramref name="ObjectThatConsumesItems"/> begins consuming
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="ObjectThatConsumesItems"></param>
 /// <param name="ObjectThatProducesItems"></param>
 public static void ObserveCollection <T>(this IConcurrentInvokable <T> ObjectThatConsumesItems, IConcurrentOutput <T> ObjectThatProducesItems)
 {
     ObjectThatProducesItems.HookEvents(ObjectThatConsumesItems);
 }
Beispiel #3
0
 public static void StopObserving <T>(this IConcurrentInvokable <T> ObjectThatConsumesItems, IConcurrentOutput <T> ObjectThatProducesItems)
 {
     ObjectThatProducesItems.UnHookEvents(ObjectThatConsumesItems);
 }
Beispiel #4
0
 /// <summary>
 /// Adds the ResultCollection of the <paramref name="Output"/> object to the Collection of the <paramref name="Input"/> multi-consumer
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="Input"></param>
 /// <param name="Output"></param>
 public static void InputFrom <T, U>(this IConcurrentMultiConsumer <T, U> Input, IConcurrentOutput <T> Output)
 {
     Input.Collections.Add(Output.ResultCollection);
 }
Beispiel #5
0
 /// <summary>
 /// Hooks the Collection of <paramref name="Input"/> to the ResultCollection of <paramref name="Output"/>
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="Input"></param>
 /// <param name="Output"></param>
 public static void InputFrom <T>(this IConcurrentInput <T> Input, IConcurrentOutput <T> Output)
 {
     Input.Collection = Output.ResultCollection;
 }
Beispiel #6
0
 /// <summary>
 /// Hooks the ResultCollection of Output to the Collection of Input
 /// </summary>
 /// <typeparam name="TResult"></typeparam>
 /// <param name="Output"></param>
 /// <param name="Input"></param>
 public static void OutputTo <TResult>(this IConcurrentOutput <TResult> Output, IConcurrentInput <TResult> Input)
 {
     Output.ResultCollection = Input.Collection;
 }