//-----------------------------------------------------------------------
// 
//     Copyright (c) Microsoft Corporation.
// 
//-----------------------------------------------------------------------
namespace Microsoft.Isam.Esent.Interop.Implementation
{
    using Microsoft.Isam.Esent.Interop.Windows10;
    using Microsoft.Isam.Esent.Interop.Windows8;
    /// 
    /// This interface describes all the Windows10 methods which have a
    /// P/Invoke implementation. Concrete instances of this interface provide
    /// methods that call ESENT.
    /// 
    internal partial interface IJetApi
    {
        #region Session Parameters
        /// 
        /// Sets a parameter on the provided session state, used for the lifetime of this session or until reset.
        /// 
        /// The session to set the parameter on.
        /// The ID of the session parameter to retrieve.
        /// An operation context to retrieve.
        /// 
        /// An error code.
        int JetGetSessionParameter(
            JET_SESID sesid,
            JET_sesparam sesparamid,
            out JET_OPERATIONCONTEXT operationContext);
        /// 
        /// Sets a parameter on the provided session state, used for the lifetime of this session or until reset.
        /// 
        /// The session to set the parameter on.
        /// The ID of the session parameter to set.
        /// An operation context to set.
        /// An error code.
        int JetSetSessionParameter(
            JET_SESID sesid,
            JET_sesparam sesparamid,
            JET_OPERATIONCONTEXT operationContext);
        #endregion
        #region Sessions
        /// 
        /// Retrieves performance information from the database engine for the
        /// current thread. Multiple calls can be used to collect statistics
        /// that reflect the activity of the database engine on this thread
        /// between those calls. 
        /// 
        /// 
        /// Returns the thread statistics.
        /// 
        /// An error code if the operation fails.
        int JetGetThreadStats(out JET_THREADSTATS2 threadstats);
        #endregion
    }
}