/* * Copyright (c) 2019 ETH Zürich, Educational Development and Technology (LET) * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ namespace SafeExamBrowser.Contracts.Applications { /// <summary> /// Defines an identifier which uniquely identifies an <see cref="IApplicationInstance"/> in the context of a (third-party) application. /// </summary> public abstract class InstanceIdentifier { /// <summary> /// Determines whether two identifiers are equal (i.e. whether they identify the same <see cref="IApplicationInstance"/>). /// </summary> public static bool operator ==(InstanceIdentifier a, InstanceIdentifier b) => Equals(a, b); /// <summary> /// Determines whether two identifiers are different (i.e. whether they identify different <see cref="IApplicationInstance"/>s). /// </summary> public static bool operator !=(InstanceIdentifier a, InstanceIdentifier b) => !Equals(a, b); /// <summary> /// Indicates whether the given object is an <see cref="InstanceIdentifier"/> for the same <see cref="IApplicationInstance"/>. /// </summary> public abstract override bool Equals(object other); /// <summary> /// Returns a hash code for the identifier. /// </summary> public abstract override int GetHashCode(); /// <summary> /// Returns a human-readable string representation of the identifier. /// </summary> public abstract override string ToString(); } }