public RAMOutputStream(RAMFile f) { file = f; // make sure that we switch to the // first needed buffer lazily currentBufferIndex = -1; currentBuffer = null; }
/// <summary> /// Creates a new, empty file in the directory with the given name. Returns a stream writing this file. </summary> public override IndexOutput CreateOutput(string name, IOContext context) { EnsureOpen(); RAMFile file = NewRAMFile(); if (m_fileMap.TryRemove(name, out RAMFile existing) && existing != null) { m_sizeInBytes.AddAndGet(-existing.m_sizeInBytes); existing.directory = null; } m_fileMap[name] = file; return(new RAMOutputStream(file)); }
public RAMInputStream(string name, RAMFile f) : base("RAMInputStream(name=" + name + ")") { file = f; length = file.length; if (length / BUFFER_SIZE >= int.MaxValue) { throw new IOException("RAMInputStream too large length=" + length + ": " + name); } // make sure that we switch to the // first needed buffer lazily currentBufferIndex = -1; currentBuffer = null; }