//-----------------------------------------------------------------------
// 
//     Copyright (c) Microsoft Corporation.
// 
//-----------------------------------------------------------------------
namespace Microsoft.Isam.Esent.Interop.Server2003
{
    /// 
    /// APIs that have been added to the Windows Server 2003 version of ESENT.
    /// 
    public static class Server2003Api
    {
#if !MANAGEDESENT_ON_WSA
        /// 
        /// Notifies the engine that it can resume normal IO operations after a
        /// freeze period ended with a failed snapshot.
        /// 
        /// Identifier of the snapshot session.
        /// Options for this call.
        public static void JetOSSnapshotAbort(JET_OSSNAPID snapid, SnapshotAbortGrbit grbit)
        {
            Api.Check(Api.Impl.JetOSSnapshotAbort(snapid, grbit));
        }
#endif // !MANAGEDESENT_ON_WSA
        /// 
        /// The JetUpdate function performs an update operation including inserting a new row into
        /// a table or updating an existing row. Deleting a table row is performed by calling
        /// .
        /// 
        /// The session which started the update.
        /// The cursor to update. An update should be prepared.
        /// Returns the bookmark of the updated record. This can be null.
        /// The size of the bookmark buffer.
        /// Returns the actual size of the bookmark.
        /// Update options.
        /// 
        /// JetUpdate is the final step in performing an insert or an update. The update is begun by
        /// calling  and then by calling
        /// 
        /// one or more times to set the record state. Finally, 
        /// is called to complete the update operation. Indexes are updated only by JetUpdate or and not during JetSetColumn.
        /// 
        public static void JetUpdate2(JET_SESID sesid, JET_TABLEID tableid, byte[] bookmark, int bookmarkSize, out int actualBookmarkSize, UpdateGrbit grbit)
        {
            Api.Check(Api.Impl.JetUpdate2(sesid, tableid, bookmark, bookmarkSize, out actualBookmarkSize, grbit));
        }
    }
}