Beispiel #1
0
 internal override void _handleData(S inputEvent, _EventSink <T> sink)
 {
     try {
         foreach (T value in _expand(inputEvent))
         {
             sink._add(value);
         }
     }
     catch (Exception e) {
         // If either _expand or iterating the generated iterator throws,
         // we abort the iteration.
         _stream._addErrorWithReplacement(sink, e, e.StackTrace);
     }
 }
Beispiel #2
0
        internal override void _handleData(S inputEvent, _EventSink <T> sink)
        {
            T outputEvent;

            try {
                outputEvent = _transform(inputEvent);
            }
            catch (Exception e) {
                _stream._addErrorWithReplacement(sink, e, e.StackTrace);
                return;
            }

            sink._add(outputEvent);
        }
Beispiel #3
0
        internal override void _handleData(T inputEvent, _EventSink <T> sink)
        {
            bool satisfies;

            try {
                satisfies = _test(inputEvent);
            }
            catch (Exception e) {
                _stream._addErrorWithReplacement(sink, e, e.StackTrace);
                return;
            }

            if (satisfies)
            {
                sink._add(inputEvent);
            }
        }
Beispiel #4
0
        internal override void _handleData(T inputEvent, _EventSink <T> sink)
        {
            _StateStreamSubscription <T> subscription = (_StateStreamSubscription <T>)sink;
            int count = subscription._count;

            if (count > 0)
            {
                sink._add(inputEvent);
                count -= 1;
                subscription._count = count;
                if (count == 0)
                {
                    // Closing also unsubscribes all subscribers, which unsubscribes
                    // this from source.
                    sink._close();
                }
            }
        }
Beispiel #5
0
 public override void add(T data)
 {
     _sink._add(data);
 }
Beispiel #6
0
        // Override the following methods in subclasses to change the behavior.

        internal virtual void _handleData(S data, _EventSink <T> sink)
        {
            sink._add((T)(object)data);
        }