Microsoft.Isam.Esent.Interop.Implementation.JetApi.DetermineCapabilities C# (CSharp) Method

DetermineCapabilities() private method

Calculates the capabilities of the current Esent version.
private DetermineCapabilities ( ) : void
return void
        private void DetermineCapabilities()
        {
            const int Server2003BuildNumber = 2700;
            const int VisaBuildNumber = 6000;
            const int Windows7BuildNumber = 7000; // includes beta as well as RTM

            // Create new capabilities, set as all false. This will allow
            // us to call into Esent.
            this.Capabilities = new JetCapabilities { ColumnsKeyMost = 12 };

            var version = this.GetVersionFromEsent();
            var buildNumber = (int)((version & 0xFFFFFF) >> 8);

            Trace.WriteLineIf(
                this.traceSwitch.TraceVerbose,
                String.Format(CultureInfo.InvariantCulture, "Version = {0}, BuildNumber = {1}", version, buildNumber));

            if (buildNumber >= Server2003BuildNumber)
            {
                Trace.WriteLineIf(this.traceSwitch.TraceVerbose, "Supports Server 2003 features");
                this.Capabilities.SupportsServer2003Features = true;
            }

            if (buildNumber >= VisaBuildNumber)
            {
                Trace.WriteLineIf(this.traceSwitch.TraceVerbose, "Supports Vista features");
                this.Capabilities.SupportsVistaFeatures = true;
                Trace.WriteLineIf(this.traceSwitch.TraceVerbose, "Supports Unicode paths");
                this.Capabilities.SupportsUnicodePaths = true;
                Trace.WriteLineIf(this.traceSwitch.TraceVerbose, "Supports large keys");
                this.Capabilities.SupportsLargeKeys = true;
                Trace.WriteLineIf(this.traceSwitch.TraceVerbose, "Supports 16-column keys");
                this.Capabilities.ColumnsKeyMost = 16;
            }

            if (buildNumber >= Windows7BuildNumber)
            {
                Trace.WriteLineIf(this.traceSwitch.TraceVerbose, "Supports Windows 7 features");
                this.Capabilities.SupportsWindows7Features = true;
            }
        }