/// <summary> /// Изменить состояние файла. Позиция в файле сохраняется /// </summary> protected static void AtomicChangeStoreState(FileStream stream, StoreFileState newState) { Contract.Requires(stream != null); long initPos = stream.Position; byte[] data = new byte[1]; data[0] = (byte)newState; try { AcquireHeaderLock(stream); stream.Seek(0, SeekOrigin.Begin); stream.Write(data, 0, data.Length); stream.Flush(true); } finally { ReleaseHeaderLock(stream); } stream.Seek(initPos, SeekOrigin.Begin); }
public FileHeader(long activeIndex, StoreFileState fileState) { ActiveIndex = activeIndex; FileState = fileState; }