//-----------------------------------------------------------------------
// 
//     Copyright (c) Microsoft Corporation.
// 
//-----------------------------------------------------------------------
namespace Microsoft.Isam.Esent.Interop.Windows81
{
    using System;
    using Microsoft.Isam.Esent.Interop.Windows8;
    /// 
    /// Options for .
    /// 
    [Flags]
    public enum ShrinkDatabaseGrbit
    {
        /// 
        /// Does not reduce the size of the database during normal operations.
        /// 
        Off = 0x0,
        /// 
        /// Turns on the database shrinking functionality. If this parameter is not
        /// set, then  will be unable to reclaim
        /// space to the file system.
        /// Uses the file system's Sparse Files feature to release space
        /// in the middle of a file. When enough rows or tables get free up by
        /// the Version Store Cleanup task, and space is reclaimed, the database
        /// engine will attempt to return it to the file system, via sparse files.
        /// Sparse files are currently only available on NTFS and ReFS file systems.
        /// 
        On = 0x1,
        /// 
        /// After space is release from a table to a the root Available Extent, the database
        /// engine will attempt to release the space back to the file system. This parameter
        /// requires that  is also specified.
        /// 
        Realtime = 0x2,
    }
    /// 
    /// Options that have been introduced in Windows 8.1.
    /// 
    public static class Windows81Grbits
    {
        /// 
        /// Only shrink the database to the desired size.
        /// If the resize call would grow the database, do nothing.
        /// In order to use this functionality, 
        /// must be set to . Otherwise, an exception may
        /// be thrown.
        /// 
        public const ResizeDatabaseGrbit OnlyShrink = (ResizeDatabaseGrbit)0x2;
    }
}