public void Close() { if (m_stream != null) { m_stream.Close(); m_stream = null; m_memoryStream.Close(); m_memoryStream = null; } }
public RIFStorage(IStreamHandler streamHandler, int bufferPageSize, int bufferPageCount, int tempStreamSize, ISpaceManager spaceManager, IScalabilityObjectCreator appObjectCreator, IReferenceCreator appReferenceCreator, GlobalIDOwnerCollection globalIdsFromOtherStream, bool fromExistingStream, int rifCompatVersion) { m_streamCreator = streamHandler; m_scalabilityCache = null; m_bufferPageSize = bufferPageSize; m_bufferPageCount = bufferPageCount; m_tempStreamSize = tempStreamSize; m_stream = null; m_spaceManager = spaceManager; m_unifiedObjectCreator = new UnifiedObjectCreator(appObjectCreator, appReferenceCreator); m_referenceCreator = new UnifiedReferenceCreator(appReferenceCreator); m_fromExistingStream = fromExistingStream; m_globalIdsFromOtherStream = globalIdsFromOtherStream; m_rifCompatVersion = rifCompatVersion; }
private void SetupStorage() { if (m_stream == null) { Stream stream = m_streamCreator.OpenStream(); m_streamCreator = null; m_stream = new PageBufferedStream(stream, m_bufferPageSize, m_bufferPageCount); m_stream.FreezePageAllocations = m_freezeAllocations; List <Declaration> declarations = m_unifiedObjectCreator.GetDeclarations(); m_memoryStream = new MemoryStream(m_tempStreamSize); m_writer = new IntermediateFormatWriter(m_memoryStream, declarations, m_scalabilityCache, m_rifCompatVersion); if (m_fromExistingStream) { m_spaceManager.StreamEnd = m_stream.Length; m_reader = new IntermediateFormatReader(m_stream, m_unifiedObjectCreator, m_globalIdsFromOtherStream, m_scalabilityCache, declarations, IntermediateFormatVersion.Current, PersistenceFlags.Seekable); } else { m_spaceManager.StreamEnd = m_stream.Position; m_reader = new IntermediateFormatReader(m_stream, m_unifiedObjectCreator, m_globalIdsFromOtherStream, m_scalabilityCache, declarations, IntermediateFormatVersion.Current, PersistenceFlags.Seekable); } } }