//
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
//
using System.Threading;
using Microsoft.SqlServer.Management.Common;
using Microsoft.SqlServer.Management.SmoMetadataProvider;
using Microsoft.SqlServer.Management.SqlParser.Binder;
using Microsoft.SqlServer.Management.SqlParser.Common;
using Microsoft.SqlServer.Management.SqlParser.MetadataProvider;
using Microsoft.SqlServer.Management.SqlParser.Parser;
namespace Microsoft.SqlTools.CoreServices.LanguageServices
{
///
/// The context used for binding requests
///
public interface IBindingContext
{
///
/// Gets or sets a flag indicating if the context is connected
///
bool IsConnected { get; set; }
///
/// Gets or sets the binding server connection
///
ServerConnection ServerConnection { get; set; }
///
/// Gets or sets the metadata display info provider
///
MetadataDisplayInfoProvider MetadataDisplayInfoProvider { get; set; }
///
/// Gets or sets the SMO metadata provider
///
SmoMetadataProvider SmoMetadataProvider { get; set; }
///
/// Gets or sets the binder
///
IBinder Binder { get; set; }
///
/// Gets the binding lock object
///
ManualResetEvent BindingLock { get; }
///
/// Gets or sets the binding operation timeout in milliseconds
///
int BindingTimeout { get; set; }
///
/// Gets or sets the current connection parse options
///
ParseOptions ParseOptions { get; }
///
/// Gets or sets the current connection server version
///
ServerVersion ServerVersion { get; }
///
/// Gets or sets the database engine type
///
DatabaseEngineType DatabaseEngineType { get; }
///
/// Gets or sets the T-SQL version
///
TransactSqlVersion TransactSqlVersion { get; }
///
/// Gets or sets the database compatibility level
///
DatabaseCompatibilityLevel DatabaseCompatibilityLevel { get; }
}
}