Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
 public FileHeader(long activeIndex, StoreFileState fileState)
 {
     ActiveIndex = activeIndex;
     FileState   = fileState;
 }