private void Write(string pathFile, IReadQueue <ByteBlock> queue, Action <BinaryWriter, ByteBlock> writing) { try { using (BinaryWriter binaryWriter = new BinaryWriter(File.Create(pathFile))) { while (queue.Count > 0 || !queue.IsEnqueueStoped) { if (_zipController.IsCancelled) { throw new AbortedOperationException($"Write file {pathFile}"); } var block = queue.Dequeue(); if (block == null) { continue; } writing(binaryWriter, block); } } } catch (Exception ex) { LoggerProvider.Logger().Error($"Error. Writing the file: {ex.Message}"); } }
public QueueProcessorNode( IReadQueue <TRequestType> requestQueue, IGenericFactory <IMessageProcessingLogic <TRequestType> > logicFactory) { this.requestQueue = requestQueue; this.logicFactory = logicFactory; this.requestQueue.QueueMessageHandlerEvent += this.HandleMessageEvent; }
public void WriteDecompressedFile(string destinationFile, IReadQueue <ByteBlock> queue) { void writing(BinaryWriter binaryWriter, ByteBlock block) { binaryWriter.Write(block.Bytes, 0, block.Bytes.Length); } Write(destinationFile, queue, writing); }
public void WriteCompressedFile(string destinationFile, IReadQueue <ByteBlock> queue) { void writing(BinaryWriter binaryWriter, ByteBlock block) { BitConverter.GetBytes(block.Bytes.Length).CopyTo(block.Bytes, 4); binaryWriter.Write(block.Bytes, 0, block.Bytes.Length); } Write(destinationFile, queue, writing); }
public WritableQueueProcessorNode( ILogger logger, IReadQueue <TRequestType> requestQueue, IGenericFactory <IMessageProcessingLogic <TRequestType> > logicFactory, IWriteQueueFactory <TRequestType> writeQueueFactory) : base(requestQueue, logicFactory) { this.writeQueueFactory = writeQueueFactory; this.WriteQueue = this.writeQueueFactory.Create(); }
public NamedPipesWriteQueue() { _clientStream = new NamedPipeClientStream(Constants.ThisMachineServerName, Constants.PipeName, PipeDirection.Out); _timer = new Timer(WriteToQueue); _initTime = DateTime.Now; var inProcQueue = new InProcQueue(); _readQueue = inProcQueue; _writeQueue = inProcQueue; Trace("Starting up."); ResetTimer(); }
public void DispatchMessages(IReadQueue readQueue) { if (readQueue == null) { throw new ArgumentNullException("readQueue"); } object message; while (readQueue.TryDequeue(out message)) { var messageType = message.GetType(); var dispatchMethod = DispatchMessageOfTypeMethod.MakeGenericMethod(messageType); dispatchMethod.Invoke(this, new[] { message }); _applicationEventDispatcher.DispatchApplicationEvents(); } _applicationEventDispatcher.DispatchApplicationEvents(); }
void WriteToQueue(object state) { try { if (!_clientStream.IsConnected) { _clientStream.Connect((int)_connectionRetryInterval.TotalMilliseconds); } object message; while (_readQueue.TryDequeue(out message)) { var ms = new MemoryStream(); _formatter.Serialize(ms, message); var bytes = ms.ToArray(); _clientStream.Write(bytes, 0, bytes.Length); _clientStream.Flush(); } ResetTimer(); } catch (TimeoutException timeoutException) { Trace("Could not connect to profiler: {0}", timeoutException.Message); if (DateTime.Now - _initTime < _giveUpInterval) { ResetTimer(); } else { Trace("Connection attempt threshold exceeded; detaching event queue and giving up."); var nullQueue = new NullQueue(); _readQueue = nullQueue; _writeQueue = nullQueue; Dispose(); } } catch (Exception exception) { Trace("Error communicating with profiler, giving up: {0}", exception.Message); } }
void WriteToQueue(object state) { try { if (!_clientStream.IsConnected) _clientStream.Connect((int)_connectionRetryInterval.TotalMilliseconds); object message; while (_readQueue.TryDequeue(out message)) { var ms = new MemoryStream(); _formatter.Serialize(ms, message); var bytes = ms.ToArray(); _clientStream.Write(bytes, 0, bytes.Length); _clientStream.Flush(); } ResetTimer(); } catch (TimeoutException timeoutException) { Trace("Could not connect to profiler: {0}", timeoutException.Message); if (DateTime.Now - _initTime < _giveUpInterval) { ResetTimer(); } else { Trace("Connection attempt threshold exceeded; detaching event queue and giving up."); var nullQueue = new NullQueue(); _readQueue = nullQueue; _writeQueue = nullQueue; Dispose(); } } catch (Exception exception) { Trace("Error communicating with profiler, giving up: {0}", exception.Message); } }