Exemple #1
0
 /// <summary>
 /// TBD
 /// </summary>
 /// <param name="f">TBD</param>
 /// <param name="completionPromise">TBD</param>
 /// <param name="bufferSize">TBD</param>
 /// <param name="fileMode">TBD</param>
 public FileSubscriber(FileInfo f, TaskCompletionSource <IOResult> completionPromise, int bufferSize, FileMode fileMode)
 {
     _f = f;
     _completionPromise = completionPromise;
     _fileMode          = fileMode;
     _log             = Context.GetLogger();
     _requestStrategy = new WatermarkRequestStrategy(highWatermark: bufferSize);
 }
Exemple #2
0
 public OutputStreamSubscriber(Stream outputStream, TaskCompletionSource <IOResult> completionPromise, int bufferSize, bool autoFlush)
 {
     _outputStream      = outputStream;
     _completionPromise = completionPromise;
     _autoFlush         = autoFlush;
     RequestStrategy    = new WatermarkRequestStrategy(highWatermark: bufferSize);
     _log = Context.GetLogger();
 }
Exemple #3
0
        /// <summary>
        /// TBD
        /// </summary>
        /// <param name="ref">TBD</param>
        /// <param name="highWatermark">TBD</param>
        /// <param name="onCompleteMessage">TBD</param>
        public ActorRefSinkActor(IActorRef @ref, int highWatermark, object onCompleteMessage)
        {
            Ref               = @ref;
            HighWatermark     = highWatermark;
            OnCompleteMessage = onCompleteMessage;
            RequestStrategy   = new WatermarkRequestStrategy(highWatermark);

            Context.Watch(Ref);
        }
Exemple #4
0
        public void Provided_RequestStrategies_should_implement_Watermark_correctly()
        {
            var strat = new WatermarkRequestStrategy(highWatermark: 10);

            strat.RequestDemand(0).Should().Be(10);
            strat.RequestDemand(9).Should().Be(0);
            strat.RequestDemand(6).Should().Be(0);
            strat.RequestDemand(5).Should().Be(0);
            strat.RequestDemand(4).Should().Be(6);
        }
Exemple #5
0
 /// <summary>
 /// TBD
 /// </summary>
 /// <param name="f">TBD</param>
 /// <param name="completionPromise">TBD</param>
 /// <param name="bufferSize">TBD</param>
 /// <param name="startPosition">TBD</param>
 /// <param name="fileMode">TBD</param>
 /// <param name="autoFlush"></param>
 /// <param name="flushCommand"></param>
 public FileSubscriber(
     FileInfo f,
     TaskCompletionSource <IOResult> completionPromise,
     int bufferSize,
     long startPosition,
     FileMode fileMode,
     bool autoFlush,
     object flushCommand)
 {
     _f = f;
     _completionPromise = completionPromise;
     _startPosition     = startPosition;
     _fileMode          = fileMode;
     _autoFlush         = autoFlush;
     _flushCommand      = flushCommand;
     _log             = Context.GetLogger();
     _requestStrategy = new WatermarkRequestStrategy(highWatermark: bufferSize);
 }
Exemple #6
0
        /// <summary>
        /// TBD
        /// </summary>
        /// <param name="f">TBD</param>
        /// <param name="completionPromise">TBD</param>
        /// <param name="bufferSize">TBD</param>
        /// <param name="startPosition">TBD</param>
        /// <param name="fileMode">TBD</param>
        /// <param name="autoFlush"></param>
        /// <param name="flushSignaler"></param>
        public FileSubscriber(
            FileInfo f,
            TaskCompletionSource <IOResult> completionPromise,
            int bufferSize,
            long startPosition,
            FileMode fileMode,
            bool autoFlush,
            FlushSignaler flushSignaler)
        {
            _f = f;
            _completionPromise = completionPromise;
            _startPosition     = startPosition;
            _fileMode          = fileMode;
            _autoFlush         = autoFlush;
            _log             = Context.GetLogger();
            _requestStrategy = new WatermarkRequestStrategy(highWatermark: bufferSize);

            if (flushSignaler != null)
            {
                flushSignaler.FileSubscriber = Self;
            }
        }