/*++ Copyright (c) 2012 Microsoft Corporation Module Name: Version.cs Abstract: Z3 Managed API: Version information Author: Christoph Wintersteiger (cwinter) 2012-03-16 Notes: --*/ using System; using System.Diagnostics.Contracts; namespace Microsoft.Z3 { /// /// Version information. /// /// Note that this class is static. [ContractVerification(true)] public static class Version { static Version() { } /// /// The major version /// public static uint Major { get { uint major = 0, minor = 0, build = 0, revision = 0; Native.Z3_get_version(ref major, ref minor, ref build, ref revision); return major; } } /// /// The minor version /// public static uint Minor { get { uint major = 0, minor = 0, build = 0, revision = 0; Native.Z3_get_version(ref major, ref minor, ref build, ref revision); return minor; } } /// /// The build version /// public static uint Build { get { uint major = 0, minor = 0, build = 0, revision = 0; Native.Z3_get_version(ref major, ref minor, ref build, ref revision); return build; } } /// /// The revision /// public static uint Revision { get { uint major = 0, minor = 0, build = 0, revision = 0; Native.Z3_get_version(ref major, ref minor, ref build, ref revision); return revision; } } /// /// A string representation of the version information. /// new public static string ToString() { Contract.Ensures(Contract.Result() != null); uint major = 0, minor = 0, build = 0, revision = 0; Native.Z3_get_version(ref major, ref minor, ref build, ref revision); return major.ToString() + "." + minor.ToString() + "." + build.ToString() + "." + revision.ToString(); } } }