public static Chunk FromCompletedFile(string filename, ChunkManager chunkManager, ChunkManagerConfig config, bool isMemoryChunk) { var chunk = new Chunk(filename, chunkManager, config, isMemoryChunk); try { chunk.InitCompleted(); } catch (OutOfMemoryException) { chunk.Dispose(); throw; } catch (Exception ex) { _logger.Error(string.Format("Chunk {0} init from completed file failed.", chunk), ex); chunk.Dispose(); throw; } return(chunk); }
public static Chunk FromOngoingFile <T>(string filename, ChunkManager chunkManager, ChunkManagerConfig config, Func <byte[], T> readRecordFunc, bool isMemoryChunk) where T : ILogRecord { var chunk = new Chunk(filename, chunkManager, config, isMemoryChunk); try { chunk.InitOngoing(readRecordFunc); } catch (OutOfMemoryException) { chunk.Dispose(); throw; } catch (Exception ex) { _logger.Error(string.Format("Chunk {0} init from ongoing file failed.", chunk), ex); chunk.Dispose(); throw; } return(chunk); }
public static Chunk CreateNew(string filename, int chunkNumber, ChunkManager chunkManager, ChunkManagerConfig config, bool isMemoryChunk) { var chunk = new Chunk(filename, chunkManager, config, isMemoryChunk); try { chunk.InitNew(chunkNumber); } catch (OutOfMemoryException) { chunk.Dispose(); throw; } catch (Exception ex) { _logger.Error(string.Format("Chunk {0} create failed.", chunk), ex); chunk.Dispose(); throw; } return(chunk); }