//-----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation.
//
//-----------------------------------------------------------------------
namespace Microsoft.Isam.Esent.Interop.Vista
{
using System;
#if !MANAGEDESENT_ON_WSA
///
/// Options for .
///
[Flags]
public enum SnapshotEndGrbit
{
///
/// Default options.
///
None = 0,
///
/// The snapshot session aborted.
///
AbortSnapshot = 0x1,
}
///
/// Options for .
///
[Flags]
public enum SnapshotPrepareInstanceGrbit
{
///
/// Default options.
///
None = 0,
}
///
/// Options for
/// and .
///
[Flags]
public enum SnapshotTruncateLogGrbit
{
///
/// No truncation will occur.
///
None = 0,
///
/// All the databases are attached so the storage engine can compute
/// and do the log truncation.
///
AllDatabasesSnapshot = 0x1,
}
///
/// Options for .
///
[Flags]
public enum SnapshotGetFreezeInfoGrbit
{
///
/// Default options.
///
None = 0,
}
///
/// Information levels for .
///
[Flags]
public enum JET_InstanceMiscInfo
{
///
/// Get the signature of the transaction log associated with this sequence.
///
LogSignature = 0,
}
#endif // !MANAGEDESENT_ON_WSA
///
/// Grbits that have been added to the Vista version of ESENT.
///
public static class VistaGrbits
{
///
/// Specifying this flag for an index that has more than one key column
/// that is a multi-valued column will result in an index entry being
/// created for each result of a cross product of all the values in
/// those key columns. Otherwise, the index would only have one entry
/// for each multi-value in the most significant key column that is a
/// multi-valued column and each of those index entries would use the
/// first multi-value from any other key columns that are multi-valued columns.
///
/// For example, if you specified this flag for an index over column
/// A that has the values "red" and "blue" and over column B that has
/// the values "1" and "2" then the following index entries would be
/// created: "red", "1"; "red", "2"; "blue", "1"; "blue", "2". Otherwise,
/// the following index entries would be created: "red", "1"; "blue", "1".
///
///
public const CreateIndexGrbit IndexCrossProduct = (CreateIndexGrbit)0x4000;
///
/// Specifying this flag will cause any update to the index that would
/// result in a truncated key to fail with .
/// Otherwise, keys will be silently truncated.
///
public const CreateIndexGrbit IndexDisallowTruncation = (CreateIndexGrbit)0x10000;
///
/// Index over multiple multi-valued columns but only with values of same itagSequence.
///
public const CreateIndexGrbit IndexNestedTable = (CreateIndexGrbit)0x20000;
#if !MANAGEDESENT_ON_WSA
///
/// The engine can mark the database headers as appropriate (for example,
/// a full backup completed), even though the call to truncate was not completed.
///
public const EndExternalBackupGrbit TruncateDone = (EndExternalBackupGrbit)0x100;
#endif // !MANAGEDESENT_ON_WSA
///
/// Perform recovery, but halt at the Undo phase. Allows whatever logs are present to
/// be replayed, then later additional logs can be copied and replayed.
///
public const InitGrbit RecoveryWithoutUndo = (InitGrbit)0x8;
///
/// On successful soft recovery, truncate log files.
///
public const InitGrbit TruncateLogsAfterRecovery = (InitGrbit)0x00000010;
///
/// Missing database map entry default to same location.
///
public const InitGrbit ReplayMissingMapEntryDB = (InitGrbit)0x00000020;
///
/// Transaction logs must exist in the log file directory
/// (i.e. can't auto-start a new stream).
///
public const InitGrbit LogStreamMustExist = (InitGrbit)0x40;
#if !MANAGEDESENT_ON_WSA
///
/// The snapshot session continues after JetOSSnapshotThaw and will
/// require a JetOSSnapshotEnd function call.
///
public const SnapshotPrepareGrbit ContinueAfterThaw = (SnapshotPrepareGrbit)0x4;
#endif // !MANAGEDESENT_ON_WSA
///
/// Specifying this flag will cause the index to use the maximum key size
/// specified in the cbKeyMost field in the structure. Otherwise, the
/// index will use JET_cbKeyMost (255) as its maximum key size.
///
///
/// Set internally when the NATIVE_INDEXCREATE structure is generated.
///
internal const CreateIndexGrbit IndexKeyMost = (CreateIndexGrbit)0x8000;
///
/// LCID field of JET_INDEXCREATE actually points to a JET_UNICODEINDEX
/// struct to allow user-defined LCMapString() flags.
///
internal const CreateIndexGrbit IndexUnicode = (CreateIndexGrbit)0x00000800;
}
}