summaryrefslogtreecommitdiff
path: root/src/binder/inc/assemblyversion.inl
diff options
context:
space:
mode:
Diffstat (limited to 'src/binder/inc/assemblyversion.inl')
-rw-r--r--src/binder/inc/assemblyversion.inl184
1 files changed, 184 insertions, 0 deletions
diff --git a/src/binder/inc/assemblyversion.inl b/src/binder/inc/assemblyversion.inl
new file mode 100644
index 0000000000..a42990934d
--- /dev/null
+++ b/src/binder/inc/assemblyversion.inl
@@ -0,0 +1,184 @@
+//
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+//
+// ============================================================
+//
+// AssemblyVersion.inl
+//
+
+
+//
+// Implements the inline methods of AssemblyVersion
+//
+// ============================================================
+
+#ifndef __BINDER__ASSEMBLY_VERSION_INL__
+#define __BINDER__ASSEMBLY_VERSION_INL__
+
+AssemblyVersion::AssemblyVersion()
+{
+ m_dwMajor = m_dwMinor = m_dwBuild = m_dwRevision = static_cast<DWORD>(-1);
+}
+
+AssemblyVersion::~AssemblyVersion()
+{
+ // Noting to do here
+}
+
+DWORD AssemblyVersion::GetMajor()
+{
+ return m_dwMajor;
+}
+
+DWORD AssemblyVersion::GetMinor()
+{
+ return m_dwMinor;
+}
+
+DWORD AssemblyVersion::GetBuild()
+{
+ return m_dwBuild;
+}
+
+DWORD AssemblyVersion::GetRevision()
+{
+ return m_dwRevision;
+}
+
+void AssemblyVersion::SetFeatureVersion(DWORD dwMajor,
+ DWORD dwMinor)
+{
+ m_dwMajor = dwMajor;
+ m_dwMinor = dwMinor;
+}
+
+void AssemblyVersion::SetServiceVersion(DWORD dwBuild,
+ DWORD dwRevision)
+{
+ m_dwBuild = dwBuild;
+ m_dwRevision = dwRevision;
+}
+
+BOOL AssemblyVersion::SetVersion(LPCWSTR pwzVersionStr)
+{
+ SmallStackSString versionString(pwzVersionStr);
+
+ return TextualIdentityParser::ParseVersion(versionString, this);
+}
+
+void AssemblyVersion::SetVersion(AssemblyVersion *pAssemblyVersion)
+{
+ m_dwMajor = pAssemblyVersion->GetMajor();
+ m_dwMinor = pAssemblyVersion->GetMinor();
+ m_dwBuild = pAssemblyVersion->GetBuild();
+ m_dwRevision = pAssemblyVersion->GetRevision();
+}
+
+BOOL AssemblyVersion::IsLargerFeatureVersion(AssemblyVersion *pAssemblyVersion)
+{
+ BOOL result = FALSE;
+
+ if (GetMajor() > pAssemblyVersion->GetMajor())
+ {
+ result = TRUE;
+ }
+ else if ((GetMajor() == pAssemblyVersion->GetMajor()) &&
+ (GetMinor() > pAssemblyVersion->GetMinor()))
+ {
+ result = TRUE;
+ }
+
+ return result;
+}
+
+BOOL AssemblyVersion::IsEqualFeatureVersion(AssemblyVersion *pAssemblyVersion)
+{
+ BOOL result = FALSE;
+
+ if ((GetMajor() == pAssemblyVersion->GetMajor()) &&
+ (GetMinor() == pAssemblyVersion->GetMinor()))
+ {
+ result = TRUE;
+ }
+
+ return result;
+}
+
+BOOL AssemblyVersion::IsSmallerFeatureVersion(AssemblyVersion *pAssemblyVersion)
+{
+ BOOL result = FALSE;
+
+ if (GetMajor() < pAssemblyVersion->GetMajor())
+ {
+ result = TRUE;
+ }
+ else if ((GetMajor() == pAssemblyVersion->GetMajor()) &&
+ (GetMinor() < pAssemblyVersion->GetMinor()))
+ {
+ result = TRUE;
+ }
+
+ return result;
+}
+
+BOOL AssemblyVersion::IsEqualServiceVersion(AssemblyVersion *pAssemblyVersion)
+{
+ BOOL result = FALSE;
+
+ if ((GetBuild() == pAssemblyVersion->GetBuild()) &&
+ (GetRevision() == pAssemblyVersion->GetRevision()))
+ {
+ result = TRUE;
+ }
+
+ return result;
+}
+
+BOOL AssemblyVersion::IsLargerServiceVersion(AssemblyVersion *pAssemblyVersion)
+{
+ BOOL result = FALSE;
+
+ if (GetBuild() > pAssemblyVersion->GetBuild())
+ {
+ result = TRUE;
+ }
+ else if ((GetBuild() == pAssemblyVersion->GetBuild()) &&
+ (GetRevision() > pAssemblyVersion->GetRevision()))
+ {
+ result = TRUE;
+ }
+
+ return result;
+}
+
+BOOL AssemblyVersion::Equals(AssemblyVersion *pAssemblyVersion)
+{
+ BOOL result = FALSE;
+ if ((GetMajor() == pAssemblyVersion->GetMajor()) &&
+ (GetMinor() == pAssemblyVersion->GetMinor()) &&
+ (GetBuild() == pAssemblyVersion->GetBuild()) &&
+ (GetRevision() == pAssemblyVersion->GetRevision()))
+ {
+ result = TRUE;
+ }
+ return result;
+}
+
+BOOL AssemblyVersion::IsSmallerOrEqual(AssemblyVersion *pAssemblyVersion)
+{
+ return (Equals(pAssemblyVersion) ||
+ IsSmallerFeatureVersion(pAssemblyVersion) ||
+ (IsEqualFeatureVersion(pAssemblyVersion) &&
+ !IsLargerServiceVersion(pAssemblyVersion)));
+}
+
+BOOL AssemblyVersion::IsLargerOrEqual(AssemblyVersion *pAssemblyVersion)
+{
+ return (Equals(pAssemblyVersion) ||
+ IsLargerFeatureVersion(pAssemblyVersion) ||
+ (IsEqualFeatureVersion(pAssemblyVersion) &&
+ IsLargerServiceVersion(pAssemblyVersion)));
+}
+
+#endif