/// <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); }
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(); }
/// <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); }
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); }
/// <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); }
/// <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; } }